Comunidad de diseño web y desarrollo en internet online

Problema con duplicación de MovieClips

Citar            
MensajeEscrito el 28 Jul 2010 11:08 pm
Hola, soy nuevo en el foro y en ActionScript 3 (Antes usaba AS 2). Bueno, la cosa es que estoy haciendo un simple juego y tengo una clase que representa las plataformas (Hace que cuando el personaje lo choque deje de caer), pero la cuestión es que necesito que se generen estas plataformas al azar (En distintas ubicaciones y distintos tamaños). Y no solo esto, sino que las plataformas se tienen que ir moviendo para una dirección.
Probé lo siguiente:

Código ActionScript :

for(var i = 0; i < 50; i++){
     this['piso' +i] = new pared;
     addChild(this['piso' +i]);
}


Esa es la función dibujar() que se inicia cuando empieza el programa, tiene más cosas (Como definir un X y un Y para el objeto) pero no son de importancia, esto es lo que genera problemas.
Cuando lo ejecuto me aparece:

Salida escribió:

ReferenceError: Error #1056: No se puede crear la propiedad piso0 en juego.
at juego/::dibujar()
at juego$iinit()
TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.
at pared/::colisiones()


Este último TypeError se repite infinitas veces.

Espero que puedan ayudarme, desde ya les agradezco.


Saludos.

Por facu16

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 30 Jul 2010 02:04 am
Prueba algo así:

Código ActionScript :

for(var i = 0; i < 50; i++){
     var piso:pared = new pared();
     piso.name = 'piso' +i
      addChild(piso);
}


Luego cuando quieras accederlo usa

this.getChildByName()

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 30 Jul 2010 09:59 pm
como pusiste tu código, intentar crear una variable piso1, piso2, etc en el escenario.
Ésto da error porque las variables deben estar declaradas previamente.

puede funcionar decalarar un arreglo.

Código ActionScript :

private var pisos:Array;


en la función que corre al iniciar, haces tu ciclo

Código ActionScript :

{
  pisos =new Array ();
  var piso:Pared;
  for (var a:uint=0; a<50; a++){
    piso =new Pared ();  //en cada ciclo, piso va a ser una instancia nueva. Checa que hay paréntesis en Pared ()
    this.addChild (piso);
    pisos.push (piso);  //agregamos nuestra instancia en el arreglo pisos.
  }
}
//Al final del ciclo pisos es una lista de las instancias que creamos.

Debes estar actualizamo sobre las diferencias que hay entre el linkage de AS2 y dar un nombre de clase en AS3. Porque tiene que ver con el TypeError que recibes.

Suerte

Por leoncitoamx

Claber

206 de clabLevel

2 tutoriales

 

Puebla, México

firefox
Citar            
MensajeEscrito el 01 Ago 2010 07:23 pm
Muchas gracias a los dos, para lo que yo necesito me funcionó con lo que me recomendó solisarg. Lo otro no lo probé porque ya está solucionado pero igualmente gracias por el aporte leoncitoamx.

Saludos.

Por facu16

1 de clabLevel



 

chrome

 

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