Comunidad de diseño web y desarrollo en internet online

Duplicate movie clip y asignar AS

Citar            
MensajeEscrito el 13 Jul 2007 06:50 pm
Buenas..

Tengo una duda que me esta acomplejando un pequeño proyecto, espero alguien pueda ayudar.

Tengo un pequeño flash en el que estoy haciendo pruebas
y esta formado asi...

1- Hay un clip de pelicula en el escenraio "Clip0".
1.1 - dentro de este hay un texto dinamico "txt"
1.2 - tambien hay un boton "boton"
2- al lado del "clip0" tengo un texto dinamico "cambiarlo"


Lo que quiero hacer es duplicar el Clip0 3 veces para generar
clip0
clip1
clip2
clip3

y asignarle a cada uno de los botones que estan dentro de este una accion diferente... pero muy similar...

Y tengo este codigo para hacerlo:

Código :


/* tomo valor _x del MC a copiar  (clip0)*/
xt = getProperty(clip0, _x);

/* for para 3 clip1,clip2,clip3, */
for (i=1; i<=3; i++) {
   
   /* nuevo nombre clipN*/
   newName = "clip"+i; 
   
   /* 
   clip0 se copia y se crea uno con el nombre clipN en 
   la capa 999+i (para que no se reemplase)
   */
   clip0.duplicateMovieClip(newName,999+i);
   
   /* 
   eval para asiganar la _x al nuevo clip
   eval: suma strings y los deja como un nombre de instancia
   */
   eval("clip"+i)._x = xt+(100*i);
   
   /* le asigno un texto a cada simbolo para testear */
   eval("clip"+i).txt.text="hola"+i;
   
   /* aqui quiero asignar una accion a los clip0 clip1 clip2 ... */
   eval("clip"+i).boton.onRelease=function(){
      cambiarlo.text="texto "+ i;
      }
}


asi que esty testeando haciendo que al presionar:

Código :

clip0.boton.onRelease=function(){
cambiarlo.text="Texto " + i;
}


obteniendo como resultado que el texto "cambiarlo" cambie segun el boton que presione...

pero no me funciona.
lo que pasa es que en los tres ultimos botones "clip1.boton" "clip2.boton" "clip3.boton"
el AS queda = osea que obtengo como resultado que el texto "cambiarlo solo diga" 'Texto 4'
con cualquier boton que presione.

Aqui dejo mi .fla http://www.chileskate.com/duplicador.fla
y el ejemplo del .swf http://www.chileskate.com/duplicador.swf
porsi alguien me puede ayudar

gracias

Por egosk8

1 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 13 Jul 2007 07:29 pm
Tenés que armar un prototipo que tome como parámetro el texto que le querés poner. Ese texto lo tomás de un Array, por ejemplo, para el clip1 el índe 1 del Array, para el 2, el 2, etc.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 13 Jul 2007 08:50 pm
prototipo ??
eso es una funcion?

la verdad eske estoy probando con onRelease para asigar texto... pero s solo para probar,
lo que enverdad necesito es poner un mi_mc.Loadmovie("pelicula"+i);

no se si a lo que te refieres tambien me servira para eso.

Por egosk8

1 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 14 Jul 2007 12:58 am
Aquí está el código corregido pero se puede hacer más sencillo. Los textos los saca del Array textos_A.

Código :

/*Array con los textos a poner*/
var textos_A:Array = Array("Texto 0", "Texto uno", "Texto 2", "Texto III");

/* tomo valor _x del MC a copiar  (clip0)*/
xt = getProperty(clip0, _x);

/* for para 3 clip1,clip2,clip3, */
for (i=1; i<=3; i++) {

   /* nuevo nombre clipN*/
   newName = "clip"+i;

   /* 
      clip0 se copia y se crea uno con el nombre clipN en 
      la capa 999+i (para que no se reemplase)
      */
   clip0.duplicateMovieClip(newName,999+i);

   /* 
      eval para asiganar la _x al nuevo clip
      eval: suma strings y los deja como un nombre de instancia
      */
   eval("clip"+i)._x = xt+(100*i);

   /* le asigno un texto a cada simbolo para testear */
   eval("clip"+i).txt.text = "hola"+i;

   /* le puedes asignar una propiedad a cada clip, en este caso el index para el Array de textos */
   eval("clip"+i).idx = i;

   /* aqui quiero asignar una accion a los clip0 <= este no clip1 clip2 clip3 */
   eval("clip"+i).boton.onRelease = function() {
      this._parent.cambiarlo.text = textos_A[this._parent.idx];//se usa this._parent debido que el scope lo tiene el boton y necesitamos el clip
   };
}
/* pero antes ponerle la propiedad idx a clip0 */
clip0.idx = 0;

/* aqui clip0 <= ahora si */
clip0.boton.onRelease = function() {
   this._parent.cambiarlo.text = textos_A[this._parent.idx];//se usa this._parent debido que el scope lo tiene el boton y necesitamos el clip
};


Saludos

Por MDCLXVI

6 de clabLevel



Genero:Masculino  

México

firefox

 

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