Flash - Ejecutar un clip, como botón

 
Vista:

Ejecutar un clip, como botón

Publicado por Cristóbal (2 intervenciones) el 12/03/2007 17:12:49
Buenas tardes,

Tengo el siguiente problema, que ya no se como resolver.
Tengo creado un clip para usarlo como botón, he creado la animación de rollOver y rollOut, y funciona perfectamente.

El problema es que dentro del clip he incluido varios botones, con sus eventos correspondientes. Por lo que he podido leer en algún foro el problema esta en que los eventos del clip no deja que se ejecute los de los botones, he probado varias opciones, como anular los botones, pero no consigo que funcione.

Por favor si puedes ayúdame a solucionar este problemilla.

Otra cosilla como veréis, por mi problema soy nuevo es esto de ActionScript, y tengo también la siguiente duda, cuando se hace referencia a MC A que se refiere?

Sin más un saludo y muchas gracias por tu ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ejecutar un clip, como botón

Publicado por Isidoro (38 intervenciones) el 14/03/2007 11:12:58
Hola,
por lo que cuentas en tu mensaje deduzco que lo que pretendes es crear un clip que haga una animación cuando pasas el ratón por encima de él, y a su vez dentro de este clip hay varios botones con sus propias acciones, no?
Creo que puedes lograr eso de la siguiente manera:

(Por cierto, MC es la abreviatura de Movie Clip. Además, cuando insertes un MC dentro de la escena principal, es aconsejable que le des un nombre de instancia que acabe con _mc (ejemplo: sprite_mc))

Primero crea un nuevo clip de película dentro de la biblioteca (no lo crees dentro de la escena principal, sino dentro del panel de la derecha, donde están los elementos de la biblioteca, y haz la animación que quieres que vaya a realizar. Ten en cuenta que tienes que crear, por ejemplo, desde el fotograma 1 al 6 la animación que hará cuando el ratón esté sobre el MC, y desde el 7 al 11 la animación que hará cuando muevas el ratón fuera del MC. Además la imagen del fotograma 1 y del 11 tienen que ser iguales para que al terminar la animación vuelva a su forma original. Los fotogramas 6 y 11 tienen que ser fotogramas clave (si no fuese, así no te dejaría insertar Acciones en ellos), y dentro de los fotogramas 1,6 y 11 introduce las siguientes acciones:

stop();

En segundo lugar crea un botón dentro de la biblioteca, como antes, con sus imágenes para Reposo, Sobre, ...

Ahora vete a la escena principal (pulsando sobre el botón que tiene forma de claqueta de cine), y dentro de la escena arrastra el MC que creaste, y arrastra también el botón (coloca el botón encima del MC). Ahora seleccionas con el botón derecho del ratón la imagen del MC que está en la escena principal y dentro del menú que se abre elige Acciones e insertas el siguiente código:

on(rollOver) {
gotoAndPlay(2);
}
on(rollOut) {
gotoAndPlay(7);
}

Con esto, al pasar el puntero sobre el MC reproducirá la animación que hiciste desde el fotograma 2 hasta el 6 (donde pusiste un stop();), y al salir del MC se reproducirá desde el 7 hasta el 11.

Ahora selecciona con el botón derecho del ratón el botón y selecciona Acciones, donde pondrás lo siguiente:

on(release) {
// aquí va el código que se ejecutará al soltar el botón
}

Espero que te sirva de algo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar un clip, como botón

Publicado por cristóbal (2 intervenciones) el 15/03/2007 11:28:35
Buenas Isidro.

Lo he resuelto de la siguiente manera, siguiendo las pautas que me has indicado.
He creado dos MC uno con la animación que tiene que realizar al pasar el Mouse y el otro MC incluyéndole un botón transparente y el MC creado antes, en el botón transparente le he incluido el código de abajo
Todavía no entiendo por que al pulsar sobre el no va a la escena que quiero, así que lo he resuelto haciéndole una etiqueta y en la etiquita le he puesto a la escena que quiero que vaya.
Seguramente no será la forma correcta de hacerlo, pero me funciona, que al fin y al cabo es lo que quiero.
Espero haberme expresado bien y que me entiendas, ya que me queda mucho por aprender.

Un saludo y te agradezco mucho tu ayuda

Código puesto en el botón transparente :

//asignamos la acción del Over para que actue sobre nuestro movieclip
//que queremos reproducir
on (rollOver) {
mc_sectores.onEnterFrame = function () {
//le decimos a ese MC que si se encuentra en cualquier número frame
//diferente a 41, avance al siguiente; es decir, si está en el 1
//avanzará al 2, después al 3...y asi sucesivamente

if (this._currentframe != 20) {
this.nextFrame();
}
//usando el "else" tomamos la comparativa que nos acomoda, que es "==".
//le decimos a ese MC que si se encuentra en el frame 41 se detenga
//y borre el "onEnterFrame"

else {
this.stop();
delete this["onEnterFrame"];
} // end if
};
}

//asignamos la accion del RollOut para que actue sobre nuestro movieclip
//que queremos reproducir
on (rollOut) {
mc_sectores.onEnterFrame = function () {
//le decimos a ese MC que si se encuentra en cualquier número frame
//diferente a 1, retroceda al anterior; es decir, si está en el 41
//regresará al 40, después al 39...y así continuamente.

if (this._currentframe != 1) {
this.prevFrame();
}
//usando el "else" tomamos la comparativa que nos acomoda, que es "==".
//le decimos a ese MC que si se encuentra en el frame 1 se detenga
//y borre el "onEnterFrame"

else {
this.stop();
delete this["onEnterFrame"];
} // end if
};

}
on (release) {
tellTarget("_root"){
gotoAndPlay("sectores");
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar un clip, como botón

Publicado por Isidoro (38 intervenciones) el 16/03/2007 10:06:52
Hola,
yo tampoco llevo demasiado tiempo en esto del Flash, y de hecho entré por primera vez en este foro hace dos meses para preguntar por un problema parecido al que tú tienes ahora con la instrucción gotoAndPlay (mi problema es que en Flash Lite no me reconoce las variables, tipo gotoAndPlay(numFotograma)). Me ha parecido muy original la forma en que has resuelto el tema de la animación rollOver, eso de avanzar o retroceder un fotograma, así te ahorras el dibujar una animación de ida y otra de vuelta, y como tú dices, quizá haya otra forma de hacerlo pero el script funciona, que es lo que interesa (por ahora, que estamos aprendiendo). Lo único que te aconsejaría es evitar el uso de la instrucción tellTarget, porque esa función está desfasada desde la versión 5 de Flash. Si buscas en la propia ayuda del Macromedia Flash encontrarás información sobre cómo sustituír esta instrucción por la notación con puntos,. Me parece que sería así, pero no me hagas mucho caso:

on (release) {
_root.gotoAndPlay("sectores");
}

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar