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:
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: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 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.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'); }
Mi spiegate cosa devo fare per mettere il maledetto preload e come evitare il blocco del menu?
![]()
![]()
![]()

  
					
					
					
						
  Rispondi quotando
						