Comunidad de diseño web y desarrollo en internet online

puedo acceder a mc getChildAt(); pero NO getChildByName();

Citar            
MensajeEscrito el 07 May 2009 02:43 am
Esto no lo entiendo,

Código :

var _rect:rectangle1 = new rectangle1();
_stageRef.addChild(_rect);
_stageRef.getChildAt(4).x=220;
_stageRef.getChildByName("_rect").y=440;

Se crea al objeto, se coloca en el stage, se mueve a la posicion 'x', y por ultimo tira un error

Código :

TypeError: Error #1009: Cannot access a property or method of a null object reference.

Es decir, no esta reconociendo la ultima linea. Cuango hago un

Código :

trace(_stageRef.getChildByName("_rect"));
me da "null" y no al objeto 'rectangle1'


Y estoy en blanco, alguna idea? agradecere cualquier respuesta.

Por cpucpu

82 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 May 2009 06:48 am
"_rect" es una VARIABLE que hace referencia a tu "rectangle1". Así que podrías poner(*)

Código ActionScript :

_rect.x=220
_rect.y=440

El nombre de instancia será algo como "instance1" (pruebaló haciendo un

Código ActionScript :

trace(_rectangle.name)

getChildByName devuelve una instancia de un displayObject que tiene la "propiedad" "name". Vamos

Código ActionScript :

var _rect:rectangle1 = new rectangle1();
//<---si queremos usar getChildByName, le damos un nombre----->//
_rect.name="rect"  //<--el nombre puede coincidir o no con el nombre de la variable

_stageRef.addChild(_rect);
//ahora sí podemos hacer
_stageRef.getChildByName("rect").y=440;  //<--he elegido que el nombre no coincida con el nombre de variable
                                    //por claridad, pero le puedes dar el mismo nombre


(*)Depende de dónde declares la variable será accesible siempre por ese nombre de variable o sólo dentro de la función donde declares dicha variable, p.e.

Código ActionScript :

var _rect:rectangle1;  //<---variable definida FUERA de cualquier función
crear();
comprobar();

function crear(){
   _rect= new rectangle1();  //<---le damos valor
   var _otrorect:rectangle=new rectangle1(); //<--variable definida DENTRO de una función

  trace(_rect) //<---devuelve valor
  trace(_otrorect) //<---devuelve valor porque está DENTRO de la función

}
function comprobar(){
  trace(_rect) //<---devuelve valor
  trace(_otrorect) //<---NO devuelve valor
}

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 May 2009 08:44 pm
Exelente tip!
Con eso de que a los assets displayObject se les define una clase, luego se instancia tal clase, y se agrega a un contenedor, se olvidan facilmente a las instancias "clasicas".

Que raro que no haya encontrado esta info antes, nisiquiera en los tutoriales basicos de AS3 que consulte, Gracias.

Por cpucpu

82 de clabLevel



 

firefox

 

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