Javascript Flash:在点击并拖动(向下移动)后跟踪鼠标位置,甚至在舞台/浏览器之外?
当有人出现以下情况时,从Adobe Flash跟踪鼠标位置的正确方法是什么:Javascript Flash:在点击并拖动(向下移动)后跟踪鼠标位置,甚至在舞台/浏览器之外?,javascript,flash,actionscript,mouse,position,Javascript,Flash,Actionscript,Mouse,Position,当有人出现以下情况时,从Adobe Flash跟踪鼠标位置的正确方法是什么: 在Flash应用程序中开始拖动(鼠标按下事件) 将鼠标拖到应用程序甚至浏览器窗口之外(鼠标移动事件),然后 释放鼠标按钮(鼠标启动事件) 例如(假设堆栈溢出是一个Flash应用程序): 在应用程序中,我可以用鼠标移动事件监听器跟踪鼠标的X和Y位置,但当它离开浏览器时,我会丢失它 那么,无论鼠标移动到哪里,我如何跟踪它的位置呢 举个好例子,试试看。尝试拖动图表;如果将鼠标移出浏览器窗口,它仍然会四处拖动,释放鼠标时,鼠
谢谢!♥ 你不能-当鼠标离开flash区域时,你可以使用鼠标离开监听器获取,但当鼠标在浏览器视口(甚至工具栏、状态栏等)之外时,你不能通过JavaScript或flash获取鼠标位置 这可以通过MouseEvent.MOUSE\u MOVE事件实现。将此代码放在fla的第一个帧上,其中包含一个动态文本字段,该字段在舞台上的实例名为“output”
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和浏览器中对此进行了测试。怎么做?(试着拖动图表;如果你移动鼠标太多,图表仍然会拖来拖去,当你释放时,你的鼠标会在浏览器之外)。@Alexandra-不错。希望有人知道。@Kriem-我相信它只起作用,因为鼠标按下事件“捕获”鼠标,允许Flash应用程序跟踪鼠标的位置,即使它在浏览器之外。好吧,该死的热-我猜我被证明是错的-这有助于解决我几周前与之斗争了一整天的问题-谢谢@jea我对这个问题的第一反应和你的回答一样。我很惊讶,当我测试这个,它的工作。