none
COMO HACER QUE EL COMPILADOR IGNORE ALGUN OTRO PROCEDIMIENTO POR EJECUTARSE? RRS feed

  • Pregunta

  • ESTOY HACIENDO UNA APLICACION EN SILVERLIGHT EN EL CUAL TENGO UN RECTANGULO EN EL CUAL QUIERO APLICARLE DOS ANIMACIONES (CON FOTOGRAMA CLAVE) DIFERENTES LAS CUALES INICIAN AL REALIZARSE UN EVENTO. CADA EVENTO TIENE SU PROPIA ANIMACION. CUANDO PASA EL PUNTERO SOBRE EL RECTANGULO Y CUANDO SALE, TIENE LA MISMA ANIMACION. Y AL HACER CLICK TIENE OTRA ANIMACION. MI PREGUNTA ES COMO HACER PARA QUE AL HACER CLICK Y LA SEGUNDA ANIMACION SE EFECTUE, YA NO SE EFECTUE LA PRIMERA ANIMACION AL DESPLAZAR EL CURSOR FUERA DEL RECTANGULO EN CUESTION. NECESITO QUE EL COMPILADOR IGNORE EL EVENTO "MOUSE ENTER" Y "MOUSE LEAVE" AL MISMO TIEMPO AL EJECUTARSE EL EVENTO "MOUSEDOWN LEFT". O QUE DUERMA ALGUN PROCESO EN EL QUE ESOS EVENTOS LLAMEN A UN SUB PROCESO QUE INICIE LA ANIMACION DE DICHOS EVENTOS... POR FAVOR SI ALGUIEN SABE COMO HACERLO AYUDEME.
    sábado, 2 de enero de 2010 15:13

Todas las respuestas

  • BUENO AMIGOS SOY YO OTRA VEZ... PERO LES TENGO LA SOLUCION. LA VERDAD ES BASTANTE SENCILLO Y NO SE COMO NO SE ME OCURRIO ANTES, BUENO AQUI ESTA PARA EL QUE AL IGUAL QUE YO NECESITE ESTA INFORMACION:

    EL ASUNTO ES QUITARLE LOS CONTROLADORES DE EVENTO A LOS CONTROLES U OBJETOS AL CUAL QUEREMOS QUE DEJE DE FUNCIONAR, PARA ESTO USAMOS LA CLAUSULA "HANDLES" (MANEJADOR, CONTROLADOR EN ESPAÑOL) Y LAS INSTRUCCIONES "REMOVEHANDLER" Y "ADDHANDLER".

    LO QUE HACEMOS ES ESTO, TENEMOS UN OBJETO "RECTANGLE" LLAMADO "PANEL1" EL CUAL TIENE UN PROCESO QUE RESPONDE AL EVENTO "MOUSE ENTER":

    Private Sub Panel1_MouseEnter (By val....) Handles Panel1.MouseEnter '<---este es nuestro controlador de evento
          
           'algun evento aqui

    End Sub

    Y TENEMOS OTRO PROCESO QUE SE DEBE EJECUTAR EN EL MISMO OBJETO "RECTANGLE" LLAMADO "PANEL1" PERO ESTE DEBE RESPONDER AL EVENTO "MOUSEDOWN LEFT":

    Private Sub Panel1_MouseDownLeft (By Val....) Handles Panel1.MouseDownLeft

           'algun evento aqui

    End Sub

    AHORA BIEN, SI QUEREMOS QUE EL PRIMER EVENTO "Panel1_MouseEnter" DEJE DE FUNCIONAR AL EJECUTARSE EL SEGUNDO EVENTO "Panel1_MouseDownLeft", LO QUE TENEMOS ES QUE REMOVERLE LOS CONTROLADORES DE EVENTO AL PRIMER EVENTO "Panel_MouseEnter" Y PARA ELLO INTRODUCIMOS EL SIGUIENTE CODIGO EM EL EVENTO "Panel1_MouseDownLeft":

          RemoveHandler Panel1.MouseEnter, AddressOf Panel1_MouseEnter

    OBSERVE QUE SEGUIDO DE LA INSTRUCCION "REMOVEHANDLER" PONEMOS EL CONTROLADOR DEL EVENTO QUE VAMOS A REMOVER, Y DESPUES DE LA INSTRUCCION "ADDRESSOF" COMO BIEN LO DICE LA PALABRA EN ESPAÑOL LA "DIRECCION" DEL CONTROLADOR, ES DECIR EL EVENTO AL QUE PERTENECE. QUEDARIA ALGO COMO ESTO:

    Private Sub Panel1_MouseDownLeft (By Val....) Handles Panel1.MouseDownLeft
          
           RemoveHandler Panel1.MouseEnter, AddressOf Panel1_MouseEnter

           'algun evento aqui
          
    End Sub

    OBVIAMENTE DEBEMOS VOLVER A AGREGARLE LOS CONTROLADORES SI QUEREMOS QUE VUELVA A FUNCIONAR EL PROCESO. ESTO LO LOGRAMOS CON LA INSTRUCCION "ADDHANDLER":

           AddHandler Panel1.MouseEnter, AddressOf Panel1_MouseEnter

    ESPERO QUE ALGUIEN SE BENEFICIE DE ESTO... HASTA LUEGO
    domingo, 10 de enero de 2010 14:18