Foros Programación Cliente

AS2. Botón dentro de clip

9 9 Respuestas Jueves 5 de febrero, 2009
Hola a todos,

Tengo un problema de AS2 que no se como solucionar. tengo un movieClip, que al pasar el mouse sobre el gira sobre si mismo mostrado la cara opuesta y en está cara opuesta hay un menú con diferentes botones. El problema que tengo es que para hacer que el movieClip gire al pasar por encima de él he de aplicarle una acción (onRollOver), y esto hace que anule a los bonotes que hay dentro.

He probado con hitTest peor no he conseguido que funcione. Alguien sabe como conseguir esto?

Gracias.
Xavi
Registrado desde 28/10/03
Número de posts: 102
  • Avatar de janedoe janedoe Registrado desde 27/10/08 / Número de posts: 10
    prueba a con esto...

    on (rollOver)
    {
    this.gotoAndPlay("s1");
    }
    on (releaseOutside, rollOut)
    {
    this.gotoAndPlay("s2");
    }

    en el "s1" y "s2", son nombres de instancias, se lo pones a un keyframe en blanco

    saludos, espero que te ayude.
    Publicado hace 3 años
  • Avatar de xavixaf xavixaf Registrado desde 28/10/03 / Número de posts: 102
    Gracias Janedoe,

    El código que me has enviado es que ya he utilizado y no me funciona, el problema es que tengo un boton dentor de un movieClip, Al movieClip principal le aplico un código como el que me has enviado, pero eso hace que el boton de dentro quede desabilitado.

    Gracias y un saludo.
    Xavi
    Publicado hace 3 años
  • Avatar de Odrakir Odrakir Registrado desde 07/07/04 / Número de posts: 1030
    Eso es algo muy común, que afortunadamente en AS3 no pasa.

    Si con el hitTest no lo solucionas, lo que podrías hacer es que el rollOver del contenedor, en lugar de aplicárselo al contenedor, se lo aplicas a un clip que esté dentro del mismo y ocupe toda su superficie. Es decir, un clip que será hermano de los otros botones, así no los anularía.

    Saludos.
    Publicado hace 3 años
  • Avatar de xavixaf xavixaf Registrado desde 28/10/03 / Número de posts: 102
    Gracias Odrakir,

    He probado poniendo el boton transparente dentro del clip principal y debajo de los demás botones, pero en cuanto me pongo encima de unos de los botones de encima, actua como si hubiese hecho un rollOut y falla de nuevo.

    No me podía imaginar cuando pensé en esto que iba a ser tan complicado...

    Gracias.
    Xavi
    Publicado hace 3 años
  • Avatar de ilm ilm Registrado desde 22/10/08 / Número de posts: 38
    Quizá puedas dividir el clip en capas, una con los botones y otra con el resto, y ese "resto" es lo que programas para que responda al rollover y al rollout, y cuando ha girado lo pones en _visible=false para que deje de responder al rollover y al rollout. La programación desde ese subclip se referiría al conjunto de él más los botones para que giren, haciendo referencia con parent. No sé si me he conseguido explicar o lo he liado más
    _ _ _ _ _ _ _ _ _ _ _
    Diseño y desarrollo multimedia
    Publicado hace 3 años
  • Avatar de Odrakir Odrakir Registrado desde 07/07/04 / Número de posts: 1030
    Perdona, tienes razón, hace tanto que no me encuentro con algo así que se me había olvidado (para que luego digan que el AS3 es más dificil :P)

    Qué tal andas de inglés? http://www.senocular.com/flash/tutorials/buttoncapturing/
    Publicado hace 3 años
  • Avatar de Presbyopia Presbyopia Registrado desde 07/12/05 / Número de posts: 97

    Odrakir

    Perdona, tienes razón, hace tanto que no me encuentro con algo así que se me había olvidado (para que luego digan que el AS3 es más dificil :P)

    Qué tal andas de inglés? http://www.senocular.com/flash/tutorials/buttoncapturing/


    Odrakir, tu anterior imagen molaba mas broda!
    Publicado hace 3 años
  • Avatar de Ventd'Aval Ventd'Aval Registrado desde 28/05/04 / Número de posts: 787
    lo otro que se solia hacer con as2, es que el rollover se auto-borraba, y luego, para detectar el rollOut, se creaba un enterFrame que iba revisando el hitTest, algo asi:
    function resetBoton() {
    boton._alpha=50;
    boton.onRollOver = function() {
    delete this.onRollOver;
    this._alpha=100;
    this.onEnterFrame = function() {
    if (!this.hitTest(_xmouse, _ymouse, true)) {
    delete this.onEnterFrame;
    resetBoton();
    }
    };
    };
    }

    Saludos...
    Publicado hace 3 años
  • Avatar de xavixaf xavixaf Registrado desde 28/10/03 / Número de posts: 102
    Gracias Presbyopia,

    Revisando el link que me has enviado he conseguido que funcione cuando aprieto o suelto el mouse, con el siguiente códido utilizando onMouseDown o onMouseOut, pero no consigo hacerlo que funcione solo al pasar por encima o salirme de encima del clip. Con que propiedad se podría hacer???:
    menu01.onMouseDown = function(){
    if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
    trace ("funciona");
    menu01.flipNav.flipNext();
    }
    }

    ###

    Gracias Ventd'aval,

    He probado de aplicar el cogido que me has enviado pero no he conseguido que me funcione, como debería aplicarlo exactametne??

    Gracias.
    Xavi
    Publicado hace 3 años