gpt4 book ai didi

actionscript-3 - Event.MOUSE_LEAVE 在 AS3 中不起作用

转载 作者:行者123 更新时间:2023-12-04 04:31:55 24 4
gpt4 key购买 nike

我只是将这个 super 简单的代码示例放入 Flash CS4 IDE 框架脚本中,但它没有在控制台中输出任何内容。我只是将鼠标悬停在窗口上,没有点击任何东西,什么也没有发生。为什么这不像我预期的那样工作?

stage.addEventListener(Event.MOUSE_LEAVE, traceMouse);

function traceMouse(Evt:Event):void
{
trace("Mouse Left Stage");
}

______________________________________________________

[编辑] 我发现 Event.MOUSE_LEAVE 毫无用处。首先,它在测试环境中不起作用(至少在 Mac OS X 的 Flash CS4 上)。其次,如果 MouseEvent.MOUSE_DOWN 当前处于事件状态,它不会触发:

Flash CS4 Professional ActionScript 3.0 语言引用:

Updated 8/11/09: Added qualification that event is not fired when button is pressed.1

在我的特定情况下,我希望在拖动对象时触发 MOUSE_LEAVE,以便在用户将他/她的鼠标指针拖离舞台时触发 stopDrag()。因为那是不可能的,所以我决定在实际对象上使用 MOUSE_OUT 而不是在对象的父级或舞台上使用 MOUSE_LEAVE。

 private function mouseDownHandler(evt:MouseEvent):void
{
object.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
object.startDrag(false, pullBounds);
}

private function mouseUpHandler(evt:MouseEvent):void
{
object.removeEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
object.stopDrag();
}

private function mouseOutHandler(evt:MouseEvent):void
{
object.stopDrag();
}

最佳答案

这里有一些额外的棘手的事情要知道(在浏览器中运行时):

一件奇怪的事情是,在 Chrome + Firefox 中,MOUSE_LEAVE 事件没有为 WMODE 发送。 OPAQUETRANSPARENT。它只是不触发 - 鼠标向下或向上。

使用 WINDOW 它工作正常。那个花了我很长时间才发现!呃... http://bugs.adobe.com/jira/browse/FP-892


其次,确保您使用 Event 作为您的 Event.MOUSE_LEAVE 处理程序的参数类型,而不是 MouseEvent。如果您尝试使用 e:MouseEvent 处理 MOUSE_LEAVE,您将收到一个您可能永远不会看到的错误(除非您使用调试 flash 播放器)。这是一个很容易犯的错误,因为您可能将所有其他处理程序指向同一个方法。

这是我所做的:(只需从 mouseLeave(e:Event)

调用我的主要 endDrag
stage.addEventListener(MouseEvent.MOUSE_MOVE, drag);
stage.addEventListener(MouseEvent.MOUSE_UP, endDrag);
stage.addEventListener(Event.DEACTIVATE, endDrag);
stage.addEventListener(Event.MOUSE_LEAVE, mouseLeave);

private function mouseLeave(e:Event):void
{
endDrag(new MouseEvent("MOUSE_LEAVE"));
}

public function endDrag(evt:MouseEvent):void
{
/// handle end drag
}

关于actionscript-3 - Event.MOUSE_LEAVE 在 AS3 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2595995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com