Cerrar Bienvenido
Cerrar Registrate

Ya somos 1.500.516 Forros navegando...

3033 usuarios conectados | 1.500.516 forros | 367.001 temas | 4.380.133 mensajes | seremos forros, pero somos una bocha

[ActionScript] anular evento despues de otro en el foro de Programación:


Chicos, me dirijo a ustedes con una consulta q me trae de malas: Resulta q para una actualización de mi sitio, necesito hacer q un rollOver se repita nomal HASTA q se presione ese botón;una vez el boton haya sido presionado, ese rollOver no se vuelva a repetir... osea, q el evento de rollOver desaparezca. Calculo q con una función booleana se podría llegar a hacer, aunq no estoy completamente seguro. Claro q necesito q el botón siga funcionando, pero q el rollOver no se repita si el botón ya fué presionado la 1ra vez. Eso es todo; espero q ...

 
LinkBack Herramientas Buscar en este tema
Viejo 29.03.07, 17:40
Chicos, me dirijo a ustedes con una consulta q me trae de malas:

Resulta q para una actualización de mi sitio, necesito hacer q un rollOver se repita nomal HASTA q se presione ese botón;una vez el boton haya sido presionado, ese rollOver no se vuelva a repetir... osea, q el evento de rollOver desaparezca.

Calculo q con una función booleana se podría llegar a hacer, aunq no estoy completamente seguro.
Claro q necesito q el botón siga funcionando, pero q el rollOver no se repita si el botón ya fué presionado la 1ra vez.

Eso es todo; espero q me puedan ayudar. Muchas gracias!

Viejo 29.03.07, 19:52
Originalmente publicado por Curt Wild Ver mensaje
Chicos, me dirijo a ustedes con una consulta q me trae de malas:

Resulta q para una actualización de mi sitio, necesito hacer q un rollOver se repita nomal HASTA q se presione ese botón;una vez el boton haya sido presionado, ese rollOver no se vuelva a repetir... osea, q el evento de rollOver desaparezca.

Calculo q con una función booleana se podría llegar a hacer, aunq no estoy completamente seguro.
Claro q necesito q el botón siga funcionando, pero q el rollOver no se repita si el botón ya fué presionado la 1ra vez.

Eso es todo; espero q me puedan ayudar. Muchas gracias!
Que tal un poco de AS?

Si entiendo bien, lo que vos queres es algo como:

En un frame fuera del boton:

Rolled = false;

En el boton:

[al apretar el boton]{

(ejecutar lo tuyo)
}

[on rollOver]{

si Rolled es = a false {

//activar el efecto de roll over
// Rolled = true;
}
}

Prefiero no darte AS porque no se como lo escribiste, a quen nivel estas y es mejor aprenderlo uno mismo

En fin, es algo asi.

PD. Primer post en elForro
Viejo 29.03.07, 20:31
Originalmente publicado por missing_cipher Ver mensaje
Que tal un poco de AS?

Si entiendo bien, lo que vos queres es algo como:

En un frame fuera del boton:

Rolled = false;

En el boton:

[al apretar el boton]{

(ejecutar lo tuyo)
}

[on rollOver]{

si Rolled es = a false {

//activar el efecto de roll over
// Rolled = true;
}
}

Prefiero no darte AS porque no se como lo escribiste, a quen nivel estas y es mejor aprenderlo uno mismo

En fin, es algo asi.

PD. Primer post en elForro
Gracias x responderme!

De hecho lo solucioné así:

En el keyframe donde está el boton:
btn1.onRollOut = function () {
btn1.gotoAndStop(1);
}

btn1.onRollOver = function () {
btn1.gotoAndStop(2);
}


btn1.onRelease = function () {
delete this.onRollOut;
delete this.onRollOver;
btn1.gotoAndStop(3);
contenedor.loadMovie("vida.swf");
}

Claro q el boton tiene nombre de instancia btn1

Ahora bien, lo q NO quiero hacer es tener q poner ese codigo y modificarle el btn1 (cambiandolo a btn2 o btn3 según corresponda) x cada boton q tenga en la película.
Necesito armar un código q me tome la funcion para cada boton con solamente cambiarle el nombre de unstancia al boton, y NO agregando más código al keyframe.
Esto tambien se entendio ?

Viejo 29.03.07, 21:37
Originalmente publicado por Curt Wild Ver mensaje
Gracias x responderme!

De hecho lo solucioné así:

En el keyframe donde está el boton:
btn1.onRollOut = function () {
btn1.gotoAndStop(1);
}

btn1.onRollOver = function () {
btn1.gotoAndStop(2);
}


btn1.onRelease = function () {
delete this.onRollOut;
delete this.onRollOver;
btn1.gotoAndStop(3);
contenedor.loadMovie("vida.swf");
}

Claro q el boton tiene nombre de instancia btn1

Ahora bien, lo q NO quiero hacer es tener q poner ese codigo y modificarle el btn1 (cambiandolo a btn2 o btn3 según corresponda) x cada boton q tenga en la película.
Necesito armar un código q me tome la funcion para cada boton con solamente cambiarle el nombre de unstancia al boton, y NO agregando más código al keyframe.
Esto tambien se entendio ?
haha, si, te entendi.
Y es facil, create una function:

miFuncion(boton){

boton.onRollOut = function () {
boton.gotoAndStop(1);
}

boton.onRollOver = function () {
boton.gotoAndStop(2);
}


boton.onRelease = function () {
delete this.onRollOut;
delete this.onRollOver;
boton.gotoAndStop(3);
contenedor.loadMovie("vida.swf");
}
}

Despues cuando quieras ejecutar tu funcion solo tenes que poner:

miFuncion("tu boton");

y listo.

Suerte man.
00100101001101100110010000100101001101100011100100 100101001101110011001100100101
00110111001100110010010100110110001110010010010100 110110011001010010010100110110
00110111001001010011010101100110001001010011011000 110011001001010011011000111001
00100101001101110011000000100101001101100011100000 100101001101100011010100100101
0011011100110010

Viejo 29.03.07, 22:02
Originalmente publicado por missing_cipher Ver mensaje
haha, si, te entendi.
Y es facil, create una function:

miFuncion(boton){

boton.onRollOut = function () {
boton.gotoAndStop(1);
}

boton.onRollOver = function () {
boton.gotoAndStop(2);
}


boton.onRelease = function () {
delete this.onRollOut;
delete this.onRollOver;
boton.gotoAndStop(3);
contenedor.loadMovie("vida.swf");
}
}

Despues cuando quieras ejecutar tu funcion solo tenes que poner:

miFuncion("tu boton");

y listo.

Suerte man.
No logro hacer q me funcione...

Veamos; en el keyframe tengo:

function accion (boton){

boton.onRollOut = function () {
boton.gotoAndStop(1);
}

boton.onRollOver = function () {
boton.gotoAndStop(2);
}


boton.onRelease = function () {
delete this.onRollOut;
delete this.onRollOver;
boton.gotoAndStop(3);
contenedor.loadMovie("vida.swf");
}
}


Y en cada boton tengo:
accion("btn1");

El nombre de instancia es btn1 para ese boton, pero no me funciona


PD: cabe destacar q los botones son MCs

Viejo 29.03.07, 23:10
Tengo una mejor... los botones todos se llaman con el mismo patrón, no? "btn1", "btn2", "btn3", etc?

Bueno, sin funciones extras, hacé esto:
Código:
for(var i:Number= 0; i < cantBotones; i++){
   var boton:MovieClip= _root["btn" + i];
   boton.onRollOut = function () {
      this.gotoAndStop(1);
   }
 
   boton.onRollOver = function () {
      this.gotoAndStop(2);
   }
 
 
   boton.onRelease = function () {
      this.onRollOut= null;
      this.onRollOver= null;
      this.gotoAndStop(3);
      contenedor.loadMovie("vida.swf");
   }
} 
Por supuesto, cantBotones es una variable que tiene la cantidad de botones que tenés... si no lo sabés podés: O bien poner un número exageradamente alto, como 1000 (total, si el botón no existe, AS pasa por alto esa iteración), o usar el otro for:
Código:
for(var mc in _root){
   if(typeof(_root[mc]) == "movieclip" && _root[mc]._name.substr(3) == "btn"){
      // con esto tenés que _root[mc] va a iterar sobre cada botón
      var boton:MovieClip= _root[mc];
      // Repetí todo el código anterior
   }
}
 
Te modifiqué el "delete this.onRollOver" por "this.onRollOver= null" simplemente porque lo considero más correcto... está en vos dejarlo como está o hacer la modificación...

Por cierto... estoy asumiendo que los botones están en la raíz... si llegan a estar todos dentro de un contenedor basta cambiar _root["btn" + i] por contenedor_mc["btn" + i]

Viejo 29.03.07, 23:25
Subte! gracias a Dios et conectaste!
Agregame al msn webon!

Viejo 29.03.07, 23:29
jeje, parece que la tenes mas clara Subte

Mejor asi, aprendo de apaso yo!

hehe
00100101001101100110010000100101001101100011100100 100101001101110011001100100101
00110111001100110010010100110110001110010010010100 110110011001010010010100110110
00110111001001010011010101100110001001010011011000 110011001001010011011000111001
00100101001101110011000000100101001101100011100000 100101001101100011010100100101
0011011100110010

Viejo 29.03.07, 23:56
Entonces aclaro acá también algo que le dije a Curt...
La función que vos le pasaste, missing, funciona perfecto... pero a él no le anduvo porque la llamó con una cadena de texto... es decir, en lugar de accion("btn1"); tendría que haber hecho accion(btn1); para pasar la referencia al botón, y no su nombre...

Viejo 30.03.07, 17:29
Ah, bien

Sabia que no estaba loco! haha

Bueno, suerte curt.
00100101001101100110010000100101001101100011100100 100101001101110011001100100101
00110111001100110010010100110110001110010010010100 110110011001010010010100110110
00110111001001010011010101100110001001010011011000 110011001001010011011000111001
00100101001101110011000000100101001101100011100000 100101001101100011010100100101
0011011100110010


Herramientas Buscar en este tema
Buscar en este tema:

Búsqueda avanzada
Este tema está relacionado con otros ya publicados en el sitio. Podés visitarlos ahora!
Tema Foro Último mensaje
[EVENTO] Ki Matsuri Comics, Manga y Animé 10.06.07 23:48
CONVOCATORIA - Evento De Paintball // Reuniones y Salidas 14.03.07 20:02
ActionScript Programación 28.09.06 20:17
[evento] Fin De Semana Ska Recitales y Eventos 28.06.06 11:28
Evento, recital, ni a los tobillos (Les Luthiers) Recitales y Eventos 15.06.06 03:11

Iniciar Sesion

Recordarme
ElServer