Estoy intentando crearme una clase, que me genere una galeria a traves de un XML, ya he logrado que desde Main.as , realice la llamada, y aparezcan en pantalla.
El problema está en que no me mantiene las posiciones que estan en la clase. Si pruebo la clase con un archivo fla independiente , y escrito lo mismo en la TimeLine, aparece todo ordenado y colocado, cuando realizo la llamada al mismo codigo convertido en clase, me genera la galeria pero cada mc, encima del anterior mc.
Os dejo la clase y aver si me podeis decir donde está el error , muchas gracias.
Código as:
Ver original
package eu.clases{ import fl.controls.ProgressBar; import fl.transitions.Tween; import fl.transitions.easing.*; import fl.transitions.TweenEvent; import flash.text.TextFieldType; import flash.utils.Timer; import flash.display.Shape; import flash.display.GradientType; import flash.geom.Matrix; import flash.events.KeyboardEvent; import flash.ui.Keyboard; import flash.display.SimpleButton; import flash.events.MouseEvent; import flash.display.Shape; import flash.display.Graphics; import flash.display.Stage; import flash.display.MovieClip; import flash.display.Sprite; import flash.display.Loader; import flash.events.*; import flash.net.URLRequest; import flash.net.URLLoader; public class CrearGaleria extends MovieClip { var columns:Number; var my_x:Number; var my_y:Number; var my_thumb_width:Number; var my_thumb_height:Number; var my_images:XMLList; var my_total:Number; var container_mc:MovieClip; var preloaders_mc:MovieClip; var full_mc:MovieClip; //var galeria:String = new String; var x_counter:Number=0; var y_counter:Number=0; var my_tweens:Array=[]; var container_mc_tween:Tween; var full_tween:Tween; var myXMLLoader:URLLoader=new URLLoader ; private var req:URLRequest; // Constants: // Public Properties: // Private Properties: // Initialization: public function CrearGaleria(galeria):void { myXMLLoader = new URLLoader(new URLRequest(galeria)); myXMLLoader.addEventListener(Event.COMPLETE, processXML); } function setMyXMLLoader(galeria) { trace("set1"); myXMLLoader.load(new URLRequest(galeria)); trace("set2"); myXMLLoader.addEventListener(Event.COMPLETE,processXML); trace("set3"); } // Public Methods: function processXML(e:Event):void { var myXML:XML=new XML(e.target.data); columns=myXML.@COLUMNS; my_x=myXML.@XPOSITION; my_y=myXML.@YPOSITION; my_thumb_width=myXML.@WIDTH; my_thumb_height=myXML.@HEIGHT; my_images=myXML.IMAGE; my_total=my_images.length(); createContainer(); callThumbs(); myXMLLoader.removeEventListener(Event.COMPLETE,processXML); myXMLLoader=null; } function createContainer():void{ container_mc=new MovieClip ; container_mc.x=my_x; container_mc.y=my_y; addChild(container_mc); trace(container_mc.parent); container_mc.addEventListener(MouseEvent.CLICK,callFull); container_mc.addEventListener(MouseEvent.MOUSE_OVER,onOver); container_mc.addEventListener(MouseEvent.MOUSE_OUT,onOut); container_mc.buttonMode=true; preloaders_mc=new MovieClip ; preloaders_mc.x=container_mc.x; preloaders_mc.y=container_mc.y; container_mc.addChild(preloaders_mc); trace("add3"); } function callThumbs():void { for (var i:Number=0; i<my_total; i++) { var thumb_url=my_images[i].@THUMB; trace("callThums"+i); var thumb_loader=new Loader ; thumb_loader.load(new URLRequest(thumb_url)); thumb_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,thumbLoaded); thumb_loader.name=i; thumb_loader.x=my_thumb_width+10*x_counter; thumb_loader.y=my_thumb_height+10*y_counter; if (x_counter+1<columns) { x_counter++; } else { x_counter=0; y_counter++; } var preloader_pb:ProgressBar=new ProgressBar ; preloader_pb.source=thumb_loader.contentLoaderInfo; preloader_pb.x=thumb_loader.x; preloader_pb.y=thumb_loader.y; preloader_pb.width=my_thumb_width; preloader_pb.height=my_thumb_height; preloaders_mc.addChild(preloader_pb); preloader_pb.addEventListener(Event.COMPLETE,donePb); } } function thumbLoaded(e:Event):void { var my_thumb:Loader=Loader(e.target.loader); container_mc.addChild(my_thumb); my_tweens[Number(my_thumb.name)]=new Tween(my_thumb,"alpha",Strong.easeIn,0,1,0.5,true); my_thumb.contentLoaderInfo.removeEventListener(Event.COMPLETE,thumbLoaded); } function callFull(e:MouseEvent):void { var full_loader:Loader=new Loader ; var full_url=my_images[e.target.name].@FULL; full_loader.load(new URLRequest(full_url)); full_loader.contentLoaderInfo.addEventListener(Event.INIT,fullLoaded); var full_pb:ProgressBar=new ProgressBar ; full_pb.source=full_loader.contentLoaderInfo; full_pb.x=stage.stageWidth-full_pb.width/2; full_pb.y=stage.stageHeight-full_pb.height/2; preloaders_mc.addChild(full_pb); full_pb.addEventListener(Event.COMPLETE,donePb); container_mc.removeEventListener(MouseEvent.CLICK,callFull); container_mc.buttonMode=false; container_mc.removeEventListener(MouseEvent.MOUSE_OVER,onOver); container_mc.removeEventListener(MouseEvent.MOUSE_OUT,onOut); container_mc_tween=new Tween(container_mc,"alpha",Strong.easeIn,1,0.5,0.5,true); } function fullLoaded(e:Event):void { full_mc=new MovieClip ; full_mc.buttonMode=true; addChild(full_mc); var my_loader:Loader=Loader(e.target.loader); full_mc.addChild(my_loader); full_tween=new Tween(my_loader,"alpha",Strong.easeIn,0,1,0.5,true); my_loader.x=stage.stageWidth-my_loader.width/2; my_loader.y=stage.stageHeight-my_loader.height/2; my_loader.addEventListener(MouseEvent.CLICK,removeFull); my_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,fullLoaded); } function removeFull(e:MouseEvent):void { var my_loader:Loader=Loader(e.currentTarget); full_tween=new Tween(my_loader,"alpha",Strong.easeOut,1,0,0.5,true); full_tween.addEventListener(TweenEvent.MOTION_FINISH,tweenFinished); container_mc_tween=new Tween(container_mc,"alpha",Strong.easeOut,0.5,1,0.5,true); } function donePb(e:Event):void { var my_pb:ProgressBar=ProgressBar(e.target); preloaders_mc.removeChild(my_pb); my_pb.removeEventListener(Event.COMPLETE,donePb); } function tweenFinished(e:TweenEvent):void { var my_loader:Loader=Loader(e.target.obj); my_loader.unload(); full_mc.removeChild(my_loader);// This line was removeChid(my_loader), just add full_mc before it. removeChild(full_mc); full_mc=null; container_mc.addEventListener(MouseEvent.CLICK,callFull); container_mc.buttonMode=true; container_mc.addEventListener(MouseEvent.MOUSE_OVER,onOver); container_mc.addEventListener(MouseEvent.MOUSE_OUT,onOut); var my_tween:Tween=Tween(e.target); my_tween.removeEventListener(TweenEvent.MOTION_FINISH,tweenFinished); } function onOver(e:MouseEvent):void { var my_thumb:Loader=Loader(e.target); my_thumb.alpha=0.5; } function onOut(e:MouseEvent):void { var my_thumb:Loader=Loader(e.target); my_thumb.alpha=1; } // Protected Methods: } }
Muchas gracias, de antemano.