Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Flash:在点击并拖动(向下移动)后跟踪鼠标位置,甚至在舞台/浏览器之外?_Javascript_Flash_Actionscript_Mouse_Position - Fatal编程技术网

Javascript Flash:在点击并拖动(向下移动)后跟踪鼠标位置,甚至在舞台/浏览器之外?

Javascript Flash:在点击并拖动(向下移动)后跟踪鼠标位置,甚至在舞台/浏览器之外?,javascript,flash,actionscript,mouse,position,Javascript,Flash,Actionscript,Mouse,Position,当有人出现以下情况时,从Adobe Flash跟踪鼠标位置的正确方法是什么: 在Flash应用程序中开始拖动(鼠标按下事件) 将鼠标拖到应用程序甚至浏览器窗口之外(鼠标移动事件),然后 释放鼠标按钮(鼠标启动事件) 例如(假设堆栈溢出是一个Flash应用程序): 在应用程序中,我可以用鼠标移动事件监听器跟踪鼠标的X和Y位置,但当它离开浏览器时,我会丢失它 那么,无论鼠标移动到哪里,我如何跟踪它的位置呢 举个好例子,试试看。尝试拖动图表;如果将鼠标移出浏览器窗口,它仍然会四处拖动,释放鼠标时,鼠

当有人出现以下情况时,从Adobe Flash跟踪鼠标位置的正确方法是什么:

  • 在Flash应用程序中开始拖动(鼠标按下事件)
  • 将鼠标拖到应用程序甚至浏览器窗口之外(鼠标移动事件),然后
  • 释放鼠标按钮(鼠标启动事件)
  • 例如(假设堆栈溢出是一个Flash应用程序):

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

    那么,无论鼠标移动到哪里,我如何跟踪它的位置呢

    举个好例子,试试看。尝试拖动图表;如果将鼠标移出浏览器窗口,它仍然会四处拖动,释放鼠标时,鼠标将在浏览器外部

    还有,退房;如果单击滚动条(使浏览器窗口变小)并移动到浏览器窗口之外,滚动条的移动方式与真实的滚动条相同

    我相信这两种方法都是有效的,因为鼠标按下事件“捕获”了鼠标,允许Flash应用程序跟踪鼠标的位置,即使它在浏览器之外

    你怎样才能让事件像这样被触发


    谢谢!♥

    你不能-当鼠标离开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我对这个问题的第一反应和你的回答一样。我很惊讶,当我测试这个,它的工作。