Comunidad de diseño web y desarrollo en internet online

crear un MovieClip y asignarle sus propias funciones

Citar            
MensajeEscrito el 22 Sep 2009 04:17 pm
Seguramente sea algo muy simple pero me gustaría me ayudaran con el código. Me explico:
yo creo un movieclip con un nombre determinado

Código ActionScript :

_root.createEmptyMovieClip(foto0);

después le asigno el nombre de instancia

Código ActionScript :

_root.diapo0._name="foto0";


lo que quiero hacer es que la siguiente funcion, sólo esté disponible para el movie clip que acabo de crear

Código ActionScript :

      onMouseDown = function ()
      {
         foto0._x=338;
         foto0._y=198;
         foto0._xscale = 100;//al 100%
         foto0._yscale = 100;//al 100%
      }


lo que yo hago es poner el nombre de la instancia antes del onMouseDown pero no se si es correcto

Código ActionScript :

foto0.onMouseDown = function ()
      {
         foto0._x=338;
         foto0._y=198;
         foto0._xscale = 100;//al 100%
         foto0._yscale = 100;//al 100%
      }


la razón por la que quiero que esta función solo valga para este movie clip es porque quiero crear varias funciones iguales para un nº determinado de movieclip (foto0, foto1, foto2 y foto3) y por lo tanto lo que haría sería repetir el mismo código pero cambiando el nombre del objeto.

Por Lehalel

Claber

9 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Sep 2009 06:10 pm
Si miras en la ayuda de createEmptyMovieClip,

my_mc.createEmptyMovieClip(instanceName:String, depth:Number) : MovieClip

verás que el primer parámetro es un string que representa el nombre, el segundo la profundidad, y con una mirada aún mas profunda verás que devuelve una referencia al clip creado. Así puedes hacer:

Código ActionScript :

var foto:MovieClip = _root.createEmptyMovieClip("cualquiernombre");
foto.onMouseDown = function (){
  //lo que sea
}


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Sep 2009 10:54 am

solisarg escribió:

Si miras en la ayuda de createEmptyMovieClip,

my_mc.createEmptyMovieClip(instanceName:String, depth:Number) : MovieClip

verás que el primer parámetro es un string que representa el nombre, el segundo la profundidad, y con una mirada aún mas profunda verás que devuelve una referencia al clip creado. Así puedes hacer:

Código ActionScript :

var foto:MovieClip = _root.createEmptyMovieClip("cualquiernombre");
foto.onMouseDown = function (){
  //lo que sea
}


Jorge


lo que hago ahora es crear 5 de forma dinámica de la siguiente manera:

Código ActionScript :

for (i=0;i<=4;i++) 
{
_root.createEmptyMovieClip("foto"+i, i+100);
}


luego les establezco el nombre de instancia a los 5

Código ActionScript :

_root.foto0._name=foto0;
_root.foto1._name=foto1;
_root.foto2._name=foto2;
_root.foto3._name=foto3;
_root.foto4._name=foto4;


lo que quiero es poder decirle a cada clip su función aunque en realidad es la misma para todos.
ahora el código que tengo es:

Código ActionScript :

onMouseDown = function ()
      {
         foto0._x=338;
         foto0._y=198;
         foto0._xscale = 100;//al 100%
         foto0._yscale = 100;//al 100%
      }

pero claro, con esto lo que pasa es que al hacer click, aumenta el clip "foto0". yo lo que quiero es que si hago click en foto0, aumente foto0, si hago click en foto1, aumente foto1, etc.
Por lo tanto deseo poder establacerle a cada clip su función escribiendo la misma para cada uno pero cambiando el nombre. lo he intentado de la siguiente manera pero no funciona:

Código ActionScript :

foto0.onMouseDown = function ()
      {
         foto0._x=338;
         foto0._y=198;
         foto0._xscale = 100;//al 100%
         foto0._yscale = 100;//al 100%
      }

quizá podría crear alguna función global para todos que al hacer clic sobre cada clip, envie el nombre de este a la función para que ejecute el proceso pero no se cómo es la estructura en actionscript para realizarlo. Gracias

Por Lehalel

Claber

9 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Sep 2009 11:08 am
Volviste a repetir la explicación de tu primer POST, ¿no leíste mi respuesta o no la entendiste?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Sep 2009 10:00 pm
lo uso pero no funciona de la forma que lo pongo, te adjunto el codigo:

Código ActionScript :

for (i=0;i<=4;i++) 
{
item = _root["foto"+i];
var item:MovieClip = _root.createEmptyMovieClip("foto"+i, i+100); 
item.onMouseDown = function (){ 
item._x=338;
item._y=198;
item._xscale = 100;//al 100%
item._yscale = 100;//al 100%
}
};

Por Lehalel

Claber

9 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Sep 2009 10:56 am
Sería:

Código ActionScript :

for (i=0;i<=4;i++)  { 
    var item:MovieClip = _root.createEmptyMovieClip("foto"+i, i+100);  
    item.onPress = function (){  
           this._x=338; 
           this._y=198; 
           this._xscale = 100;//al 100% 
           this._yscale = 100;//al 100% 
  } 
};


Igual a medida que le vas dando se ponen uno encima del otro ... y se están creando uno encima del otro (en la coordenada 0,0)

Jorge
Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 28 Sep 2009 10:39 am

solisarg escribió:

Sería:

Código ActionScript :

for (i=0;i<=4;i++)  { 
    var item:MovieClip = _root.createEmptyMovieClip("foto"+i, i+100);  
    item.onPress = function (){  
           this._x=338; 
           this._y=198; 
           this._xscale = 100;//al 100% 
           this._yscale = 100;//al 100% 
  } 
};


Igual a medida que le vas dando se ponen uno encima del otro ... y se están creando uno encima del otro (en la coordenada 0,0)

Jorge
Jorge

los movieclip los crea correctamente pero no ejecuta la función "on Press"...

Por Lehalel

Claber

9 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Sep 2009 11:26 am
Hay una diferencia entre no la ejecuta y no hace lo que quiero. Primero verifica si la ejecuta agregando un trace:

Código ActionScript :

item.onPress = function (){   
    trace("onPress en "+this)
    ....
}


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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