javascript - Flash:即使在舞台/浏览器之外,也可以在单击并拖动(向下移动)后跟踪鼠标位置?

标签 javascript flash actionscript mouse position

在以下情况下,从 Adob​​e Flash 跟踪鼠标位置的正确方法是什么:

  1. 开始在 Flash 应用程序中拖动(MOUSE_DOWN 事件),
  2. 将鼠标拖到应用程序或什至浏览器窗口外(一个 MOUSE_MOVE 事件),并且
  3. 释放鼠标按钮(MOUSE_UP 事件)?

例如(假设 Stack Overflow 是一个 Flash 应用程序):

enter image description here

在应用程序中,我可以使用 MOUSE_MOVE 事件监听器跟踪鼠标的 X 和 Y 位置,但是当它离开浏览器时我会丢失它...

那么,无论鼠标走到哪里,我该如何跟踪鼠标的位置?

一个很好的例子,试试Google Finance .尝试拖动图表;如果您将鼠标移出浏览器窗口,它仍会四处拖动,而当您释放鼠标时,鼠标将在浏览器之外。

另外,查看 KOKO KAKA ;如果您单击滚动条(使浏览器窗口非常小)并移出浏览器窗口,滚动条将像真实滚动条一样移动。

我相信两者都有效,因为 MOUSE_DOWN 事件“捕获”了鼠标,允许 Flash 应用程序跟踪鼠标的位置,即使它在浏览器之外也是如此。

您如何才能像这样保持事件触发?

谢谢! ♥

最佳答案

这可以使用 MouseEvent.MOUSE_MOVE 事件。将这段代码放在 fla 的第一帧上,该 fla 具有一个实例名称为“output”的 Dynamic TextField,在舞台上。

import flash.events.MouseEvent;

stage.addEventListener( MouseEvent.MOUSE_DOWN, onMouseDownHandler );
stage.addEventListener( MouseEvent.MOUSE_UP, onMouseUpHandler );

function onMouseDownHandler ( evt : MouseEvent ) : void
{
    outputText( "Mouse Down" );
    stage.addEventListener( MouseEvent.MOUSE_MOVE, onMouseMoveHandler );
}

function onMouseUpHandler ( evt : MouseEvent ) : void
{
    outputText( "Mouse Up" );
    stage.removeEventListener( MouseEvent.MOUSE_MOVE, onMouseMoveHandler );
}

function onMouseMoveHandler ( evt : MouseEvent ) : void
{
    outputText( "Mouse move" );
    outputText( "Mouse Y: " + mouseY );
    outputText( "Mouse X: " + mouseX );
}

function outputText ( outputString : String ) : void
{
    output.appendText( "\n" + outputString );
}

单击并将鼠标拖出屏幕,您将看到移动事件被触发,您可以获取鼠标的 x 和 y 位置。我在独立的 swf 和浏览器中对此进行了测试。

关于javascript - Flash:即使在舞台/浏览器之外,也可以在单击并拖动(向下移动)后跟踪鼠标位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5032058/

相关文章:

flash - 仅流式传输Flash视频的音频

c - Linux下C中如何确定USB存储(U盘) 'device path'

Javascript canvas.toDataUrl() 将图片发送到新窗口中的 <img> 元素

javascript - 在javascript中同步运行ajax请求?

apache-flex - 可选择使用 Flash 10.2 光标,同时仍与 Flash 10.0 兼容?

actionscript - 如何在flex的控制台中禁用警告(尤其是绑定(bind)警告)(带有flex插件的eclipse)

actionscript-3 - 在 Actionscript 3 中将秒数转换为分秒数

c# - 简单 3d 应用程序的最简单方法

javascript - 选择一个元素而不选择父元素

javascript - Javascript html 中的 Windows 身份验证