onClipEvent (enterFrame) desde un botón...
Hola a todos:
El tema es así. Tengo una movie que bajo un onClipEvent (enterFrame) va cambiando dinámicamente su valor alpha. Según tengo entendido la única forma de que lo haga cíclicamente, es con este evento. Por lo que en cada ciclo de hago consultar si el valor es menor a 100 y le voy agregando uno. Hasta ahí, todo bien funciona perfecto. El tema es que no quiero que eso ocurra automáticamente sino que pase cuando pulso un botón (o movie con botón, da igual). No logré encontrar la forma de hacerlo. Lo declaré como función y con el botón llamé a esa función, pero como solo ocurre un ciclo on (release), sube el alpha 1 punto con cada click, no loopea.
Debe ser una pavada, pero no logro sacar como hacerlo. Si alguien sabe la solución y me lo pasa, mil gracias.
Saludos.
Usuario desconocido
Excelente, era lo que precisaba. Lo que me faltaba era:
miboton.onPress = function() {
_root.miclip.onEnterFrame = function()
Mil gracias!!!
cadrilo
Bien
Lo puedes hacer de muchas maneras pero creo que esta te pued ir bien:
Tienes un botón llamemosle "miboton" y un clip "miclip". Lo puedes hacer de la siguiente forma (supongamos que tanto el boton como el clip están en el nivel principal _root):
<code>miboton.onPress = function() {
_root.miclip.onEnterFrame = function() {
if (this._alpha<100) {
this._alpha += 5;
}
else {
delete this.onEnterFrame;
}
};
};</code>
Lo que hace este código es lo siguiente: cada vez que clikeas el boton estás definiendo un evento onEnterFrame asociado a "miclip". Lo importante aquí es que el evento onPress del botón solo ejecuta la acción una sola vez, en la que se lanza el evento onEnterFrame. Éste último si se ejecuta indefinidamente con lo cual logramos subir el valor del alpha hasta el 100.
Finalmente hay un detalle importante, cuando llegamos al valor final del alpha no necesitamos que se se siga ejecutando el onEnterFrame, así que lo matamos con la última acción: delete this.onEnterFrame y así evitamos que el procesador haga acciones innecesrias que podrían saturar el proceso.
Espero haberte servido de ayuda.
saludos
Usuario desconocido
Estoy usando Flash MX 2004.
Gracias
cadrilo
Hola
¿que versión de Flash usas?