Salve sto allestendo un sito con ridimensionamento dinamico in as3.
Il sito è composto cosi :
MENU.SWF
Livello 1 (foto_dx) : Contiene un movieclip vuoto preso dalla libreria con ancoraggio in basso a destra e posizionato nello stage.
Livello 2 (menu) : Contiene un movieclip pieno preso dalla libreria contenente il menù con ancoraggio in basso a sinistra.
Livello 3 (as) : Contiene gli actionscript.
Quando avvio il filmato il menu viene richiamato dalla libreria dell'swf menu_mc e si posiziona in basso in basso a sinistra.
E fino a qui tutto ok....
Comedetto prima ho creato un movieclip (foto_mc) nella libreria e posizionato sullo stage con ancoraggio in basso a destra e adesso vorrei inserirci dentro un swf esterno (foto_dx.swf) che poi tramite script si ridimensiona in automatico.
Ho scritto lo script ma non funziona...o meglio non mi da errori ma non mi fa comparire neanche il filamato, come se il movie non mi si allargasse per contenere il filamato.
infatti se faccio un trace del width e height rimane sempre 0 e 0.
questo è lo script :
Alexcodice:import fl.transitions.Tween; import fl.transitions.easing.*; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.*; stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; //assegno la funzione al gestore evento //funzione per gestire il resize //(e=null di default per evitare errori a runtime) stage.addEventListener(Event.RESIZE, resizeListener); //stage.dispatchEvent(new Event(Event.RESIZE)); // MOVIECLIP ESTERNO var str_navigation:String = ""; var str_navigation_active:String = ""; var mLoader:Loader = new Loader(); var mRequest:URLRequest = new URLRequest("foto_dx.swf"); mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler); //mLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler); mLoader.load(mRequest); //valorizzo la variale str_navigation con l'url interno.swf str_navigation = mRequest.url; //dichiaro le variabili di larghezza e altezza sia della foto che della menu var foto_width:Number=foto_mc.width; var foto_height:Number=foto_mc.height; var menu_width:Number=menu_mc.width; var menu_height:Number=menu_mc.height; function resizeListener(e:Event=null):void{ trace("stageWidth: " + stage.stageWidth + " stageHeight: " + stage.stageHeight); var number_width:Number=foto_mc.width; var number_height:Number=foto_mc.height; var screen_base_width:Number=1675; var screen_base_height:Number=900; var screen_stage_width:Number=stage.stageWidth; var screen_stage_height:Number=stage.stageHeight; var rapporto:Number=screen_stage_width/screen_base_width; var rapporto_x:Number=screen_stage_width/screen_base_width; var rapporto_y:Number=screen_stage_height/screen_base_height; menu_mc.width=menu_width*rapporto; menu_mc.height=menu_height*rapporto; foto_mc.width=foto_width*rapporto; foto_mc.height=foto_height*rapporto; foto_mc.x = stage.stageWidth; foto_mc.y = stage.stageHeight - menu_mc.height; menu_mc.x = 0; menu_mc.y = stage.stageHeight; } resizeListener(); function onCompleteHandler(loadEvent:Event) { //controllo : il movie clip attivo è diverso da quello che sto caricando? if (str_navigation_active != str_navigation) { //controllo che nello stage ci sia caricato un swf esterno se si lo rimuovo if (foto_mc.numChildren > 0) { try { foto_mc.removeChildAt(0); } catch (e:Error) { //trace(e); } } // var swf_esterno=loadEvent.currentTarget.content; foto_mc.addChildAt(swf_esterno, 0); str_navigation_active = str_navigation; } }

Rispondi quotando