Comunidad de diseño web y desarrollo en internet online

Como llamar a una funcion de un objeto desde un onPress?

Citar            
MensajeEscrito el 06 Ago 2008 06:49 pm
Tengo un problema:
Vereis, creo un objeto basado en una clase en la que hay 2 funciones (A y B).
La funcion A crea un movieclip vacio, lo rellena con un dibujo y despues le añade al movieclip creado una funcion onPress.
La funcion onPress funciona perfectamente, pero no se como hacer para llamar (desde el onPress) a la funcion B.

No se si me explico, pero si no, decirlo y pongo el codigo.

Por X-TUS

94 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Ago 2008 08:39 pm
Depende del scope del clip creado. Si la clase desciende de MovieClip, y el clip fue creado en el scope de la clase, puedes intentar _parent.B()
Si en el onPress pones un trace(this) te canta donde está el clip

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 07 Ago 2008 03:38 am
ya intenté con y sin _parent, con y sin this...
Al poner en el onPress trace(this); me sale la ruta del mc, no el nombre del objeto ni su ruta...
Lo del scope, no se que es, sorry...

Te pongo el código a ver si sacas algo en claro, jejeje
Esto esta en el AS del frame

Código :

var ArrayAux = new Object;
   for(aux = 0; aux < CantidadElementosMenu; aux++)
   {
      this.createEmptyMovieClip("mcElemento" + aux, this.getNextHighestDepth());
      ArrayAux["Elemento" + aux] = new MenuDiamante(this["mcElemento" + aux],aux * 50, 225);
   }

y esto en un archivo aparte para las clases

Código :

dynamic class MenuDiamante
{
private var mc:MovieClip;
...
function MenuDiamante(ruta:MovieClip, auxX:Number, auxY:Number)
{
   mc = ruta;
   mc.createEmptyMovieClip("Borde", this.getNextHighestDepth());
   ...
   mc.onPress = function()
   {
      trace("Entra en onPress");
      desplazar();
   }
}
public function desplazar()
{
   trace("Entra en desplazar");
   ...
}
}

Por X-TUS

94 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Ago 2008 10:08 am
Usa el atajo fácil

Código :

mc.ref = this
mc.onPress = function() {
    this.ref.desplazar();
}


No es un canto a la elegancia pero funciona.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 07 Ago 2008 11:56 am
Joder, muchas gracias. No se me habia ocurrido.
Es verdad que elegante no es, pero cuando llevas tanto tiempo dandole vueltas sin resultado, la elegancia pasa a un segundo plano, jejejeje.
Muchas gracias de nuevo.

Por X-TUS

94 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Ago 2008 12:43 pm

Código :

mc.ref = this;
trace(this);//LINEA AÑADIDA
mc.onPress = function() {
    this.ref.desplazar();
}

He añadido el trace que ves ahí, para ver si podia ver la localizacion del objeto y no tener que hacer una asignacion a mc.ref y ejecutar desplazar directamente. Pero en el trace me aparece

Código :

[object Object]

Supongo que eso es pq es un objeto, pero no deberia de aparecerme la ruta en la que esta ese objeto? O esque los objetos no tienen rutas?

Un saludo

Por X-TUS

94 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Ago 2008 01:01 pm
Las clases en AS2 se reportan como Object, en AS3 te saldría el nombre de la clase

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 07 Ago 2008 01:07 pm
Ah vale, gracias por la aclaracion.

Por X-TUS

94 de clabLevel



 

firefox

 

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