在最新的Flash播放器和最新的浏览器中使用鼠标坐标问题

时间:2011-10-10 11:09:03

标签: actionscript-3 flex firefox flex4

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="creationCompleteHandler(event)">
    <fx:Script>
        <![CDATA[
            import mx.events.FlexEvent;

            private var objImageDetails:Object = new Object();
            private function creationCompleteHandler(event:FlexEvent):void
            {
                // TODO Auto-generated method stub
                var contextMenu:ContextMenu = new ContextMenu();
                contextMenu.hideBuiltInItems();
                var menuItem:ContextMenuItem = new ContextMenuItem("Paste\u00A0");
                menuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,onSelectPaste);
                //menuItem.enabled = false;
                contextMenu.customItems.push(menuItem);
                this.contextMenu = contextMenu

                objImageDetails.source = "assets/flower.jpeg";
            }

            private function onSelectPaste(event:ContextMenuEvent):void
            {
                var objImage:Image = new Image();
                objImage.source = objImageDetails.source;
                objImage.x = this.mouseX;
                objImage.y = this.mouseY;
                this.addElement(objImage);
            }   

        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <mx:Image id="FlowerImage" source="assets/flower.jpeg" />
</s:Application>

执行应用程序后,请右键单击该应用程序并选择粘贴。继续这样做。在某些时候,你可以面对这个问题。图像被粘贴到其他x / y而不是粘贴在mouseX / mouseY上。

我在使用右键单击从最新浏览器获取鼠标坐标时遇到问题。以前它在Firefox 5.5之类的旧浏览器上运行良好 mouseY值在右键单击时向下移动一些像素,因此它会影响粘贴操作 它不会粘贴在确切的位置。它发生了一段时间。

1 个答案:

答案 0 :(得分:0)

您可以在MOUSE_MOVE上添加一个监听器来存储最后一个鼠标坐标,并在onSelectPaste中使用它们。