Comunidad de diseño web y desarrollo en internet online

llamar a una funcion desde un clip y solo para este

Citar            
MensajeEscrito el 22 Nov 2007 04:07 pm
Hola,

supogo que es simple pero no doy con ello.

Tego varios mc en una misma capa que todos tiene que hacer la misma accion pero con diferente valor.

Como puedo llamar, desde cada mc, a una funcion que esta en un fotograma sin que me afecte a todos los otros mc.

gracias

Por loponti

51 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Nov 2007 04:10 pm
Postea el código de la función a ver lo que hace (no olvides postearlo entre etiquetas [*code] [*/code], sin los asteriscos).

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 22 Nov 2007 04:57 pm
perdona, no entiendo que queieres decir con "postear" ni lo de las etiquetas CODE ¿me estás hablando de actionScript?

Por loponti

51 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Nov 2007 05:17 pm
quiero decir que escribas acá el código, y cuando lo hagas, que sea de esta manera:
[*code]
Tu código...
[*/code]
(Sin los asteriscos)

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 22 Nov 2007 08:19 pm
Perona!
en el fotograma

Código :

mi_mc1.valor = 5;

en mi_mc1

Código :

onClipEvent (enterFrame){
   _alpha+=valor;
   if(_alpha<=10){
      valor*=-1
   }
   if(_alpha>=100){
      valor*=-1;
   }
}


Tego unos 30 mc en el escenario y lo que pretendo es que todos hagan _alpha pero con distinta velocidad. Mi intención era crear una funcion y que "valor" lo pudiera poner como parametro de la funcion cambiandolo desde cada mc.

No se, supongo que no me se explicar demasiado.
Salud y gracias

Por loponti

51 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Nov 2007 08:34 pm
Entonces crea un función y pásale el movieClip y "valor" como parámetros:

Código :

function cambiaAlfa(destino_mc:MovieClip, valor:Number):Void{
   with(destino_mc){
      onEnterFrame = function(){
         _alpha+=valor;
         if(_alpha<=10){
            valor*=-1
         }
      if(_alpha>=100){
         valor*=-1;
      }
   }
}

(Nota: tienes que optimizar ese código)
Y lo llamas desde el movieClip:

Código :

on(release){
   cambiaAlpha(this, 10);
}


Es sólo una guía, pero por ahí van los tiros. (y)

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 22 Nov 2007 09:32 pm
perdona de nuevo.

No me funciona. He corregido tres cosillas; la llave final en el codigo del fotograma, el on por el onClipEvent y el nombre de la funcion en el clip Pero no se porque no funciona.

Por loponti

51 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 23 Nov 2007 03:48 pm
Yo si se porque no funciona, porque valor debe estar asociado al movieclip:

Código :

function cambiaAlfa(destino_mc:MovieClip, valor:Number):Void{
     destino_mc.valor = valor;
     destino_mc.onEnterFrame = function(){
          this._alpha += this.valor;
          if(this._alpha<=10){
               this.valor*=-1
          }
          if(this._alpha>=100){
               this.valor*=-1;
          }
     }
}

crea un arreglo bidimensional que contenga el nombre de tus movieclips y la velocidad con que cambian de alpha:

Código :

arrClips = [["mcPedro", 5], ["mcPablo", 4], ["mcJose", 3], ["mcJuan", 6]]; // aqui incluyes todos tus movieclips
for (i=0; i<= arrClips.length; i++) {
     cambiaAlfa(arrClips[i][0], arrClips[i][1]);
}

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 23 Nov 2007 04:39 pm
:crap: Lo siento amigo, soy un poco novato y alguna cosa debo hacer mal porque sigue sin funcionarme.
Supongo que tanto la funcion como el array tengo que ponerlos en el fotograma y el clip sin codigo.
Si no és así te agradeceré que me heches un cable mas preciso.

Por loponti

51 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 23 Nov 2007 05:15 pm
Si, la función la debes de poner en el fotograma de la linea de tiempo principal, y todos los clips sin codigo en la misma linea de tiempo principal, pero asegurate de ponerles "nombres de instancia" iguales a los nombres que pongas en el arreglo.

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 23 Nov 2007 07:56 pm
lo siento pero no me funciona. lo tengo todo en una capa y en un solo fotograma en el cual pongo todo el codigo

Código :

function cambiaAlfa(destino_mc:MovieClip, valor:Number):Void{
     destino_mc.valor = valor;
     destino_mc.onEnterFrame = function(){
          this._alpha += this.valor;
          if(this._alpha<=10){
               this.valor*=-1
          }
          if(this._alpha>=100){
               this.valor*=-1;
          }
     }
}
arrClips = [["clip1", 5], ["clip2", 4], ["clip3", 3], ["clip4", 6]]; // aqui incluyes todos tus movieclips
for (i=0; i<= arrClips.length; i++) {
     cambiaAlfa(arrClips[i][0], arrClips[i][1], arrClips[i][3], arrClips[i][4]);
}


los mc son clip1, clip2,...
y dentro de los mc no hay nada (por si te sirve de algo mi actionScript es el 2)
supongo que algo mal hago. Gracias de nuevo.

Por loponti

51 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 26 Nov 2007 01:32 pm
corrigelo asi:

Código :

arrClips = [[clip1, 5], [clip2, 4], [clip3, 3], [clip4, 6]]; // movieclips sin comillas
for (i=0; i<= arrClips.length; i++) {
   cambiaAlfa(arrClips[i][0], arrClips[i][1]); // a esta linea no le hagas ningun cambio
}

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 27 Nov 2007 08:29 am
Gracias gabynufe,

ahora va perfecto

Por loponti

51 de clabLevel



Genero:Masculino  

firefox

 

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