Comunidad de diseño web y desarrollo en internet online

Eliminar EventMouse dentro de un EventMouse

Citar            
MensajeEscrito el 31 Ago 2009 10:59 am
Buenas a todos

Me gustaria que al hacer click en mi clip,se eliminara el evento( MOUSE_OVER).Puesto de la siguiente manera,me aparece un error de acceso a una propiedad overInfo no definida.¿Como podria solucionarlo?

gracias

Código ActionScript :


contenedor.infografia.addEventListener(MouseEvent.MOUSE_OVER,overInfo);
               function overInfo(){
                                                                  escalar(contenedor.infografia,20,20)
                                                                  }

contenedor.infografia.addEventListener(MouseEvent.CLICK,movInfo);
               
               function movInfo(){
 
                                       contenedor.infografia.removeEventListener(MouseEvent.MOUSE_OVER,overInfo);
                     
                                                                  }

Por muse

50 de clabLevel



 

firefox
Citar            
MensajeEscrito el 31 Ago 2009 06:23 pm
Hola,
prueba a pasar el evento como parámetro en los handler de las funciones de evento:

Código ActionScript :

contenedor.infografia.addEventListener(MouseEvent.MOUSE_OVER, overInfo);
function overInfo(event:MouseEvent):void
{
   escalar(contenedor.infografia, 20, 20);
}

contenedor.infografia.addEventListener(MouseEvent.CLICK, movInfo);
function movInfo(event:MouseEvent):void
{
   contenedor.infografia.removeEventListener(MouseEvent.MOUSE_OVER, overInfo);
}

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Sep 2009 07:51 am
Gracias por responder isidoro,

Nada,he probado y me sigue poniendo el mismo error:Acceso a una propiedad overInfo no definida.Creo que el problema esta en la funcion overInfo,que tendria que ser una funcion publica,para poder acceder a ella desde cualquier sitio.Pero no lo tengo claro,las funciones es una de las cosas basicas de as que me tenia que haber quedado claro desde el principio.

Saludos

Por muse

50 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Sep 2009 10:45 am
Pero tu código está dentro de una clase?
Si es así, deberías especificar si el método es público o privado (por defecto todos los métodos en as3 son internal, pero es muy recomendable que siempre lo especifiques explícitamente). Si vas a llamar al método overInfo desde fuera de la clase tiene que ser public, pero si la llamada se va a hacer siempre dentro de la clase no hace falta que sea público.

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 02 Sep 2009 07:51 am
Si ,esta dentro de una clase.En realidad tengo esta estructura:

Código ActionScript :

package  {

public class Main extends MovieClip    {
                               public function Main () { 
//aqui se encuentra toda mi web,con todos sus eventos e historias.

                                                                }
                                                      }
               }


Todo está dentro de la funcion public function Main ,dentro de esta,creo mas funciones pero no especifico si es public o private.

saludos

Por muse

50 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Sep 2009 12:47 pm
Si todo está en Main, no hace falta que sean public, pero eso sí, no se ponen dentro de la función Main, sino fuera:

Código ActionScript :

package
{
   import flash.display.MovieClip;
   import flash.events.MouseEvent;
   
   public class Main extends MovieClip
   {
      public function Main()
      {
         contenedor.infografia.addEventListener(MouseEvent.MOUSE_OVER, overInfo); 
         contenedor.infografia.addEventListener(MouseEvent.CLICK, movInfo);
      }
      
      private function overInfo(event:MouseEvent):void
      {
         escalar(contenedor.infografia, 20, 20);
      }
      
      private function movInfo(event:MouseEvent):void
      {
         contenedor.infografia.removeEventListener(MouseEvent.MOUSE_OVER, overInfo);
      }
   }
}

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 03 Sep 2009 01:12 pm
ok!lo entendi,muchas gracias isidoro

Por muse

50 de clabLevel



 

firefox

 

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