Vi prego gentilmente di aiutarmi con l'as3 perchè solo da pochi giorni ho deciso di passare a questo tipo di codice.

In questo sito qui tutto funziona, ma non riesco a modificare la classe associata per inserire un preload iniziale, si tratta di 300kb di swf ma per evitare disagi alle connessioni lente vorrei fare come facevo in as2.

Questo è il codice as della classe che controlla il menu:

codice:
package
{
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
	
	public class Main extends MovieClip
	{
		private var menu_array:Array;
		private var section_array:Array;
		
		private var currentSection:int=0;
		private var nextSection:int;
		
		public function Main()
		{
			init();
		}
		
		private function init():void
		{
			menu_array=new Array(menu_mc.menu1_mc,menu_mc.menu2_mc,menu_mc.menu3_mc,menu_mc.menu4_mc,menu_mc.menu5_mc);
			section_array=new Array(section1_mc,section2_mc,section3_mc,section4_mc,section5_mc);
			
			stage.frameRate=31;
			
			stopAll();
			
			addMenuEvents();
			
			hideCurrentSection();
		}
		
		private function stopAll():void
		{
			for(var i:int=0;i < menu_array.length;i++)
			{
				menu_array[i].stop();
				section_array[i].stop();
			}
		}
		
		private function addMenuEvents():void
		{
			for(var i:int=0;i < menu_array.length;i++)
			{
				menu_array[i].mouseChildren=false;
				menu_array[i].buttonMode=true;
				
				menu_array[i].id=i;
				menu_array[i].isPressed=false;
				
				menu_array[i].addEventListener(MouseEvent.MOUSE_OVER,setOver);
				menu_array[i].addEventListener(MouseEvent.MOUSE_OUT,setOut);
				menu_array[i].addEventListener(MouseEvent.MOUSE_DOWN,setDown);
				menu_array[i].addEventListener(MouseEvent.MOUSE_UP,setUp);
			}
		}
		
		private function setOver(evt:MouseEvent):void
		{
			if(evt.target.isPressed==false)
				evt.target.gotoAndStop(2);
		}
		
		private function setOut(evt:MouseEvent):void
		{
			if(evt.target.isPressed==false)
				evt.target.gotoAndStop(1);
		}
		
		private function setDown(evt:MouseEvent):void
		{
			nextSection=evt.target.id;
			checkState(evt.target.id);
			
			evt.target.gotoAndStop(3);
			hideCurrentSection();
			
			currentSection=evt.target.id;
		}
		private function setUp(evt:MouseEvent):void
		{
			if(evt.target.isPressed==false)
				evt.target.gotoAndStop(1);
		}
		
		private function checkState(n:int):void
		{
			for(var i:int=0;i < menu_array.length;i++)
			{
				if(i==n)
					menu_array[i].isPressed=true;
				else
				{
					menu_array[i].isPressed=false;
					menu_array[i].gotoAndStop(1);
				}
			}
		}
		
		private function hideCurrentSection():void
		{
			section_array[currentSection].gotoAndPlay(31);
			showSection();
		}
		
		private function showSection():void
		{
			section_array[nextSection].gotoAndPlay(2);
		}
	}
}
Il sito è tutto su un keyframe, ora se provo a spostare il contenuto sul keyframe 2, e su un unico keyframe vuoto (il primo), metto questo codice:

codice:
stop();
//stage.frameRate=31;
this.addEventListener(Event.ENTER_FRAME,checkProgress);

function checkProgress(_progress:Event):void
{
	var bytes_loaded:Number=_progress.target.loaderInfo.bytesLoaded;
	var bytes_total:Number=_progress.target.loaderInfo.bytesTotal;
	var percent:Number=Math.round(bytes_loaded/bytes_total*100);
	info_txt.text=percent.toString()+' %';
	if(percent>=100)
	{
		this.removeEventListener(Event.ENTER_FRAME,checkProgress);
		this.gotoAndPlay(2);
		lets_go();
	}
}

function lets_go():void
{
	trace('ready to start');
}
il filmato rimane in stop sul fotogramma 1 non andando al 2, ma non solo, anche se provo a non mettere il preload spostando tutto sul fotogramma 2 e lasciando il primo vuoto, il menu va di nuovo in loop senza poterlo selezionare.

Mi spiegate cosa devo fare per mettere il maledetto preload e come evitare il blocco del menu?