Por un lado tengo en el .fla definidos 10 MovieClip que son simplemente un cuadrado colocados en la posición exacta donde tendremos que ir depositando las imágenes en su lugar correcto.
Además tengo los 10 movieClip cargados con las 10 imágenes.
El problema es a la hora de parar, es decir, dentro de la función soltar, no hay manera de que entre en el if porque la variable myTarget siempre es null; myTarget= getChildByName(myTargetName); no encuentra el movieclip que coindide con el nombre y que es donde tiene que hacer el stop.
El código es el siguiente, no entiendo que hago mal y porque no funciona el getChildByName:
Código ActionScript :
package { import flash.display.Sprite; import flash.display.DisplayObject; import flash.events.MouseEvent; import flash.geom.Point; import flash.display.*; import flash.events.*; public class MoverAlimentos extends Sprite { public var clip:MovieClip = new MovieClip(); public var startX:Number; public var startY:Number; public var counter:Number = 0; public var myTarget:DisplayObject; public function MoverAlimentos(queAlimento){ clip=queAlimento; trace("clip:"+clip.name); clip.addEventListener(MouseEvent.MOUSE_DOWN, arrastrar); clip.addEventListener(MouseEvent.MOUSE_UP, soltar); clip.buttonMode=true; } private function arrastrar(event:Event):void { clip.startDrag(); //clip.parent.addChild(clip); startX = event.target.x; startY = event.target.y; } private function soltar(event:Event):void { clip.stopDrag(); var myTargetName:String = "target" + event.target.name; myTarget= getChildByName(myTargetName); trace("myTarget:"+myTarget); if (event.target.dropTarget != null && event.target.dropTarget.parent == myTarget){ trace("entro en el if"); event.target.removeEventListener(MouseEvent.MOUSE_DOWN, arrastrar); event.target.removeEventListener(MouseEvent.MOUSE_UP, soltar); event.target.buttonMode = false; event.target.x = myTarget.x; event.target.y = myTarget.y; counter++; } else { event.target.x = startX; event.target.y = startY; } } }
En el fichero .fla incluyo esto para llamar a la función.
Código ActionScript :
import MoverAlimentos; var ali0:MoverAlimentos=new MoverAlimentos(mc0); var ali0:MoverAlimentos=new MoverAlimentos(mc1); var ali0:MoverAlimentos=new MoverAlimentos(mc2); var ali0:MoverAlimentos=new MoverAlimentos(mc3);
Alguien me puede decir que estoy haciendo mal, por que no funciona, alguna idea de como hacerlo?
Es que no se como acceder a los MovieClip o botones creados en el .fla de manera gráfica para ser utilizados en la clase o a la inversa, utilizar valores de las clases en el código del .fla.
Alguien me puede ayudar, por favor?? Gracias
Saludos