Código ActionScript :
import flash.display.MovieClip; import flash.events.*; import flash.net.*; //Carga de XML var myXML:XML = new XML(); var XML_URL:String = "sounds.xml"; var myXMLURL:URLRequest = new URLRequest(XML_URL); var myLoader:URLLoader = new URLLoader(myXMLURL); myLoader.addEventListener("complete", xmlLoaded); var array_init_x:Array = [450,450,450];// posicion superior de circulos y cuadrados eje X var array_init_y:Array = [100,150,200];// posicion superior de circulos y cuadrados eje Y var hitTest_id_y:Array = [350,400,450];// posicion "barra" inferior en el eje Y var hitTest_id_x:Number = 40;// posicion "barra" inferior en el eje X var array_flecha_izq_x:Array = [410,410,410];// posicion X flecha izquierda var array_flecha_izq_y:Array = [100,150,200];// posicion Y flecha izquierda var array_flecha_der_y:Array = [100,150,200];// posicion X flecha derecha var array_flecha_der_x:Array = [750,750,750];// posicion Y flecha derecha var n:int = 0;// Variable para ciclo for global var i:int = 0;// Variable para ciclo for anidado var contadorFX:int; var contadorScratch:int; var contadorLoops:int; var tmp:MovieClip; var hit:MovieClip; var cont:MovieClip; var fle_izq:MovieClip; var fle_der:MovieClip; //Funcion que se ejecuta cuando termina la descarga. function xmlLoaded(event:Event):void { myXML = XML(myLoader.data);//Carga datos al objeto XML var array_length:Array = new Array();//Crea instancia Array array_length.push(myXML.fx.sonido.length()); //Carga numero de datos de FX en Array (array_length); array_length.push(myXML.scratch.sonido.length()); //Carga numero de datos de Scratch en Array (array_length); array_length.push(myXML.loops.sonido.length()); //Carga numero de datos de Loops en Array (array_length;//array_length = [9,6,6]; // Ciclo que toma como variable de restriccion el numero de nodos en el XML for (n = 0; n < array_length.length; n++) { //Flechas for (i = 0; i < array_length[n]; i++) { fle_izq = new flecha_izquierda(); fle_izq.x = array_flecha_izq_x[n]; fle_izq.y = array_flecha_izq_y[n]; fle_der = new flecha_derecha(); fle_der.x = array_flecha_der_x[n]; fle_der.y = array_flecha_der_y[n]; addChild(fle_izq); addChild(fle_der); fle_izq.buttonMode = true; fle_der.buttonMode = true; } //Cuadrados for (i = 0; i < array_length[n]; i++) { cont = new forma_(n + 1); cont.x = array_init_x[n] + (cont.width + 5) * i; cont.y = array_init_y[n]; cont.startX = cont.x; cont.startY = cont.y; addChild(cont); } //Circulos for (i = 0; i < array_length[n]; i++) { tmp = new audio(n + 1); tmp.x = array_init_x[n] + (tmp.width + 7) * i; tmp.y = array_init_y[n]; tmp.startX = tmp.x; tmp.startY = tmp.y; tmp.buttonMode = true; addChild(tmp); if (n == 0) { tmp.name = (myXML.fx.sonido.@id[i]); contadorFX++; } if (n == 1) { tmp.name = (myXML.scratch.sonido.@id[i]); contadorScratch++; } if (n == 2) { tmp.name = (myXML.loops.sonido.@id[i]); contadorLoops++; } } //Barra Inferior for (i=0; i < 120; i++) { hit = new hitTest(n + 1); hit.x = hitTest_id_x + (hit.width) * i; hit.y = hitTest_id_y[n]; addChild(hit); } } trace(contadorFX); trace(contadorScratch); trace(contadorLoops); }
Tengo otras clases AS pero la que necesito arreglar es esta
Código ActionScript :
package { //Clase para los circulitos import flash.display.*; import flash.events.MouseEvent; public class audio extends MovieClip { public var id_audio:Number; public var startX:Number; public var startY:Number; var clon:MovieClip; var tmp:MovieClip; public function audio(id:Number):void { //constructor id_audio = id; addEventListener(MouseEvent.MOUSE_DOWN,mdown); addEventListener(MouseEvent.MOUSE_UP,mUp); } public function mdown(e:MouseEvent):void { e.currentTarget.startDrag(); e.target.parent.addChild(e.target); } public function mUp(e:MouseEvent):void { e.currentTarget.stopDrag(); //e.target.x = startX; //e.target.y = startY; if (e.currentTarget.id_audio == 1 && e.target.dropTarget.parent.id_hit == 1) { var enLaPista = e.target.dropTarget.parent; e.target.x = enLaPista.x; e.target.y = enLaPista.y; trace("circulo toco linea de tiempo (id = id_hit = 1)"); trace(e.target.name); } else { if (e.currentTarget.id_audio == 2 && e.target.dropTarget.parent.id_hit == 2) { var enLaPista2 = e.target.dropTarget.parent; e.target.x = enLaPista2.x; e.target.y = enLaPista2.y; trace("circulo toco linea de tiempo (id = id_hit = 2)"); trace(e.target.name); } else { if (e.currentTarget.id_audio == 3 && e.target.dropTarget.parent.id_hit == 3) { var enLaPista3 = e.target.dropTarget.parent; e.target.x = enLaPista3.x; e.target.y = enLaPista3.y; trace("circulo toco linea de tiempo (id = id_hit = 3)"); trace(e.target.name); } else { e.currentTarget.x = startX; e.currentTarget.y = startY; } } } } } }
Sé que en esta parte debo eliminar el currentTarget, pero no sé como hacerlo, alguna sugerencia?
Código ActionScript :
else { e.currentTarget.x = startX; e.currentTarget.y = startY; }
Gracias por cualquier sugerencia