Comunidad de diseño web y desarrollo en internet online

Los Objetos refernciados desde un XML no se puede reutilizar

Citar            
MensajeEscrito el 19 Nov 2011 01:27 am
Holas, me gustaria charlar de programacion, es algo basico, es solo pragramilla de memoria.
Lo que tenia planeado hacer es crear desde codigo, sprites o mc, que me sirvan para utilizarlos a gusto.. cargados mediante un array, directamente del XML y de la memoria.Al final de su uso, se autodestruyen (pero ese es otro tema). La duda que tengo, es que al hacer referencia por medio del array, el objeto es unico.. osea no lo puedo referenciar en otro mc o sprite porque se pasa. :D De todas formas dejo el codigo

Código ActionScript :

 //Main Class
...
import com.greensock.loading.*;
import com.greensock.events.LoaderEvent;
...
private var _store : Array ;
...
private function createObject() : void {
//Esta clase carga un xml en nodos tipo Array
   LoaderMax.activate([ImageLoader]);
   _loader = new XMLLoader("xml/data.xml", {name:"xmlDoc", onProgress:progressHandler, onComplete:completeHandler, onError:errorHandler});
   _loader.load();
}
private function completeHandler(event : LoaderEvent) : void {
   _store = event.target.getChildren(); //aca el array _store se iguala al array XML ya cargado
   dosomething(); //aca iria un try o un if para decirle que se ejecute si no esta vacio
}
private function dosomething():void 
{ //Aca creo los objetos y asignos propiedades
   var Objeto1:esfera = new esfera();
   var Objeto2:esfera = new esfera();
   var Objeto3:esfera = new esfera();
   addproperties(Objeto1,0,100,30);
   addproperties(Objeto2,100, 0, 3);
   addproperties(Objeto3,200, 0, 4);
}
private function addproperties(obj:Object,X:int=0,Y:int=0,num:uint=1):void 
{ //Aca utilizo las caractericas del objecto
   obj.Circunferencia = _store[0].content as Sprite;
   obj.Numeros = _store[num].content as Sprite;
   addChild(obj.object);
   obj.x = X;
   obj.y = Y;
}

//Object Class
//Esta es la clase del objeto, es abstracta. Toma los parametros que recibe y los emplea 
...
private var _rueda : Sprite = null;
private var _cuadro : Sprite = null;
...
public function get object():Sprite { return this; }
public function set Circunferencia(_rueda : Sprite) : void { this._rueda = _rueda; }
public function get Circunferencia() : Sprite { return _rueda; }
public function set Numeros(_cuadro : Sprite) : void {   this._cuadro = _cuadro;   }
public function get Numeros() : Sprite { return _cuadro;}
...//hace otras cosas
//XML
<?xml version='1.0' encoding='iso-8859-1'?>
<data>
    <ImageLoader name="circle_mc" url="img/Kjsd_00.png" load="true"/>
    <ImageLoader name="number01_mc" url="img/Kjsd_01.png" load="true"/>
    <ImageLoader name="number02_mc" url="img/Kjsd_02.png" load="true"/>
...
</data>
Y bueno, se aceptan criticas acerca del codigo tambien, todo sea para mejorar

Por chino2040

54 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Nov 2011 06:03 am
Edito
Lease Object Class como la clase esfera..
Estaba pensando masomenos cual es basicamente el problema, por alguna razon tengo una variable dinamica, y necesito convertirla en un clase y asi poder generar objetos. pasa que es eso, quiero decir no puede haber un efecto antes que una causa, no puedo clonar un objecto que en el momento no existe... y eso es.. creo
Saludos! XDXD thks Ahi!

Por chino2040

54 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.