AS3: MOUSE_OUT nicht feuern, wenn sich der Mauszeiger verlässt die Bühne

Ich entwickle eine website mit nav-Elemente bedecken die ganze Bühne, von oben nach unten (siehe geänderte Bild unten) und es ist ziemlich einfach für den Benutzer zum verlassen der Bühne mit Ihrer Maus, ohne die Auslösung der MouseEvent.MOUSE_OUT Veranstaltungen erforderlich, um "abzuschalten", sagte nav-Elemente.

Soll ich mich mit Event.MOUSE_LEAVE zu erkennen, wenn die Maus die Bühne verlassen hat, und schalten Sie alle aktiviert nav-Elemente? Das ist das, was ich versucht zu tun, aber hatten Probleme, bekomme keine Ausgabe von meinem Zuhörer. Irgendwelche Ideen?

alt-text http://marcysutton.com/blog/wp-content/uploads/2010/01/redpropeller.png

Klasse, verbunden mit einem movieclip in der Flash-IDE, ist dies die richtige syntax für die Registrierung einer Event.MOUSE_LEAVE Zuhörer? Es scheint nicht, irgendetwas zu tun, egal, was ich Tue. Ist es ein Fall, wo ich das einbetten des Films in einem browser an, dass das Ereignis ausgelöst?

this.stage.addEventListener(Event.MOUSE_LEAVE, mouseLeaveListener);

Hier ist mein MainNav.Klasse:

package com.redpropeller {

import com.greensock.*;
import com.greensock.plugins.*;
import flash.display.*;
import flash.text.*;
import flash.events.*;

public class MainNav extends MovieClip { //MainNav is a movieclip in the IDE

    public var colors:Array;

    public function MainNav():void {
        colors = new Array(0xee3124, 0xc72a1f, 0xa62c24, 0x912923, 0x7e221c);
        TweenPlugin.activate([TintPlugin]);

        //trying to target stage through this object
        this.stage.addEventListener(Event.MOUSE_LEAVE, mouseLeaveListener);

        for(var i:Number=0; i<this.numChildren; i++){
            var n = this.getChildAt(i);
            n.useHandCursor = true;
            n.buttonMode = true;

            n.addEventListener(MouseEvent.MOUSE_OVER, navBtnOn);
            n.addEventListener(MouseEvent.MOUSE_OUT, navBtnOff);
        }
    }
    public function mouseLeaveListener(e:Event):void {
        trace('mouseleave'); //nothing ever happens

    }
    private function navBtnOn(e:MouseEvent):void {
        TweenLite.to(e.currentTarget.bar_mc, 0.01, {tint:0x333333});
    }
    private function navBtnOff(e:MouseEvent):void {
        TweenLite.to(e.currentTarget.bar_mc, 0.01,
            {tint:uint(colors[this.getChildIndex(MovieClip(e.currentTarget))])});
            //changes color back to specific tint
    }
}

}
  • was ist mit Grafik? hat Ihr hosting-service wieder ein paar zufällige Foto?
  • Ich fühlte mich seltsam, über die Buchung der tatsächlichen Ausführung vor Ort gestartet hatte.... ersetzt mit einer besseren Grafik.
InformationsquelleAutor Marcy Sutton | 2010-01-05
Schreibe einen Kommentar