【问题标题】:Change cursor of a pop out panel更改弹出面板的光标
【发布时间】:2025-12-25 07:15:16
【问题描述】:

当我的光标只在这个弹出面板中而不是在主舞台上时,我该如何更改光标?

private function launchPopUp(e:MouseEvent):void 
{
     panel = new Panel();
          panel.width = stage.stageWidth;
          panel.height = stage.stageHeight;
     panel.setStyle("borderAlpha", 1);
     PopUpManager.addPopUp(panel, this, true);
          PopUpManager.centerPopUp(panel);
}

如果有人可以提供帮助将不胜感激。

【问题讨论】:

    标签: actionscript-3 flex3 popup cursor


    【解决方案1】:

    您可以使用以下代码更改鼠标光标。诀窍是隐藏鼠标光标并用精灵替换它。

    function launchPopUp(e:MouseEvent):void 
    {
         panel = new Panel();
         panel.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveFunc);
         panel.addEventListener(MouseEvent.MOUSE_OUT, mouseOutFunc);
         panel.width = stage.stageWidth;
         panel.height = stage.stageHeight;
         panel.setStyle("borderAlpha", 1);
         PopUpManager.addPopUp(panel, this, true);
         PopUpManager.centerPopUp(panel);
    }
    
    function mouseMoveFunc(e:MouseEvent):void
    {
        Mouse.hide();
        customMouseSprite.visible = true;
        customMouseSprite.x = e.stageX;
        customMouseSprite.y = e.stageY;
    }
    
    function mouseOutFunc(e:MouseEvent):void
    {
        Mouse.show();
        customMouseSprite.visible = false;;
    }
    

    您还需要在弹出窗口关闭时调用 mouseOutFunc。 customMouseSprite 必须位于舞台的顶层。 customMouseSprite 可以是精灵或影片剪辑(实际上是任何显示对象)。

    【讨论】:

    • 感谢您的回复。但是我如何创建 customMouseSprite。
    • 我制作了一个flash专业的简单自定义鼠标精灵和一个纯动作脚本版本。两者都可以在这个 zip 中找到:megaupload.com/?d=1CY5I9HI
    • @desmond 那个 zip 有用吗?