Comunidad de diseño web y desarrollo en internet online

Evento onRelease + keypress (tal vez sea un bug??)

Citar            
MensajeEscrito el 12 Feb 2006 06:22 am
Hola, soy nuevo en la comunidad, hoy programando en AS como siempre descubri algo curioso que puede resultar bastante molesto.

Código :

_root.createEmptyMovieClip("mc", 0);
with (_root.mc) {
   beginFill(0xFF8800);
   moveTo(10, 10);
   lineTo(100, 10);
   lineTo(100, 100);
   lineTo(10, 100);
   lineTo(10, 10);
   endFill();
}
_root.mc.onPress = function() {
   trace("Press");
};
_root.mc.onRelease = function() {
   trace("Release");
};


Es un codigo sencillo, se crea un movie clip con el nombre de instancia "mc", luego se dibuja un cuadrado y se indica que hacer en los eventos Press y Release...
Si mantenemos apretado el click del mouse sobre el cuadrado se imprime en el output "Press", cuando lo soltamos "Release"
Pero el problema ocurre cuando pulsamos alguna tecla luego de haber hecho click, si movemos el mouse sobre el objeto manteniendo el click y una tecla apretada, los eventos onPress y onRelease ocurren una y otra vez :crap: (los eventos ocurren con + o - frecuencia dependiendo de la velocidad de fotogramas)
No se como solucionarlo!!!!!!
Si alguien sabe como evitar esto por favor escriba! :wink:

Desde ya muchas gracias!!!

Por thejack

4 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 12 Feb 2006 08:31 am
Tienes razón, en este tipo de situaciones, ajusta las cosas a tus necesidades. Relativamente si es un bug, pero lo que pasa es que al presionar una tecla el objeto pierde el focus, y creo que eso confunde a los eventos.

Pero como todo, tiene solución, algo rapidisimo que se me ocurre es esto, no tengo flash ahorita abierto, pero debe funcionar.

Código :

createEmptyMovieClip("mc", 0);
with (mc) {
   beginFill(0xFF8800);
   moveTo(10, 10);
   lineTo(100, 10);
   lineTo(100, 100);
   lineTo(10, 100);
   lineTo(10, 10);
   endFill();
}
mc.activo = false;
mc.onRollOver = function() {
   this.activo = true;
};
mc.onReleaseOutside = mc.onRollOut = function() {
   this.activo = false;
};
mc.onMouseDown = function() {
   if (this.activo) {
      trace("Hola");
   }
};
mc.onMouseUp = function() {
   if (this.activo) {
      trace("Adios");
   }
};
:wink:


Por favor lee las reglas del foro, tu foto es muy grande. ^^

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 12 Feb 2006 01:37 pm
(perdon por lo de la foto :P)

Muchas gracias Dano, la solucion que usaste es valida...aunque, note que ese error solo ocurre cuando pruebo la pelicula desde el flash, si lo hago con el flash player no :S, tal vez tenga que ver con deshabilitar los metodos abreviados del teclado o algo por el estilo.... de todos modos GRACAIS! ;)

Por thejack

4 de clabLevel



Genero:Masculino  

firefox

 

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