检测鼠标离开Movie的动作

作者:袖梨 2022-07-02

在以前的AS版本中,你无法做到检测鼠标是否还在Flash Movie上。因此影片不能检测到用户是否在关注着当前的Movie。另外一个问题是,如果使用了自定义的鼠标样式,在鼠标移出Movie后,自定义的鼠标还是继续停留在影片上,而不能正确的显示鼠标当前的位置。

现在,AS3允许你通过监听stage的mouseLeave行为来捕获鼠标移出Movie的动作。mouseLeave行为在鼠标移出Movie的时候执行。但是现在并没有mouseEnter事件,不过你可以通过使用mouseMove来设置。

下面的例子中使用了一个方框来作为自定义的鼠标:

package { 
    import flash.display.Sprite; 
    import flash.events.Event; 
    import flash.events.MouseEvent; 
    import flash.ui.Mouse; 
     
    public class Test extends Sprite { 
         
        private var cursor:Sprite = new Sprite(); 
         
        public function Test() { 
            cursor.graphics.beginFill(0xFF); 
            cursor.graphics.drawRect(0, 0, 25, 25); 
            addChild(cursor); 
             
            stage.addEventListener(Event.MOUSE_LEAVE, cursorHide); 
            stage.addEventListener(MouseEvent.MOUSE_MOVE, cursorFollow); 
            Mouse.hide(); 
        } 
         
        public function cursorHide(evt:Event):void { 
            cursor.visible = false; 
        } 
         
        public function cursorFollow(evt:MouseEvent):void { 
            if (!cursor.visible) cursor.visible = true; 
            cursor.x = stage.mouseX; 
            cursor.y = stage.mouseY; 
            evt.updateAfterEvent(); 
        } 
    } 
}

当鼠标离开Movie的时候,鼠标指针将被隐藏。当鼠标再次移动到Movie上的时候,mouseMove会被执行,然后显示鼠标。

相关文章

精彩推荐