Comunidad de diseño web y desarrollo en internet online

Llamar a un MovieClip desde un Array

Citar            
MensajeEscrito el 04 Sep 2014 10:26 am
Tengo varios movieClips creados y colocados en el stage, y en un momento dado, quiero mandar la película a la linea de tiempo de uno de ellos. Creé un array (llamado lista) con los nombres de los movieClips y en un determinado momento pongo el siguiente código:
lista[1].gotoAndPlay("Verde");
Mi intención evidentemente es que vaya al movieClip que tengo guardado en el array lista en la posición 1, pero no me funciona, me da el siguiente error: value is not a function.
¿Cómo podría solucionarlo?

Por Xaora

30 de clabLevel



 

chrome
Citar            
MensajeEscrito el 04 Sep 2014 12:33 pm
Si en la lista guardas los nombres como String no funcionara, tienes que guardar la referencia, es decir si se llama miClip, en la lista no pongas "miClip"
Luego si es AS3, tienes que hacer un cast a MovieClip

(lista[1] as MovieClip).gotoAndPlay("Verde");

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 04 Sep 2014 12:49 pm
Si en el array no guardo los nombres de instancia, ¿qué guardo? No sé como poner la referencia.
Gracias

Por Xaora

30 de clabLevel



 

chrome
Citar            
MensajeEscrito el 04 Sep 2014 01:39 pm
Si el MC esta en el escenario y se llama miClip, pones eso

[miClip, miOtroClip, ....]

Si los no estan en el escenario .. de que forma los instancias?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 04 Sep 2014 03:09 pm
Los MC están en el escenario, los nombres de instancia son: pregunta1, pregunta2, pregunta3,...
Creé un array que es el siguiente:
var lista:Array = new Array(pregunta1, pregunta2, pregunta3,...., pregunta20);
Luego trato de llamar a un MC en concreto así:
(lista[numCompuestos] as MovieClip).gotoAndStop("Rojo");
numCompuestos es una variable que tiene un número almacenado. Y no me va, el error que me pone es el siguiente:
TypeError: Error #1009: Cannot access a property or method of a null object reference
No sé qué estoy haciendo mal.
Muchas gracias!

Por Xaora

30 de clabLevel



 

chrome
Citar            
MensajeEscrito el 04 Sep 2014 03:39 pm
Posiblemente el MC no esta en el escenario al momento de llamarlo, trazalo a ver que sale

trace("El MovieClip es "+lista[numCompuestos])

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 04 Sep 2014 04:24 pm
Si hago el trace pone: El MovieClip es null. Pero sí que está en el escenario. Está en el escenario desde el principio.
Si hago un trace con los elementos del array sin comillas, me pone null siempre, si pongo comillas me pone el nombre del elemento.
Además si pongo: lista1.gotoAndPlay("Verde"); funciona sin problema, por lo tanto el MC está.

Por Xaora

30 de clabLevel



 

chrome
Citar            
MensajeEscrito el 04 Sep 2014 04:55 pm
Tiene que estar en el escenario al momento de crear el array, sino la referencia no existe. Si lo que quieres es usar el nombre como string, tienes que hacer

(this.getChildByName(lista[numCompuestos]) as MovieClip).gotoAndStop("Rojo");

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 04 Sep 2014 08:19 pm
Ahora sí que me va.
Muchas gracias!

Por Xaora

30 de clabLevel



 

chrome

 

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