1

我有一个纯 AS3(无 Flex)项目,它使用 Flare 来显示数据可视化并与之交互。我刚刚实现了一些平移行为,因此您可以单击并拖动可视化,现在我想给用户一个视觉指示器,通过切换箭头光标和一个漂亮的抓手图标来表明这是可能的。

用户可以随时单击和拖动,除非鼠标位于可单击节点上(此时光标切换到指针 - 此行为已经到位)。

所以...
1) 我是否需要创建自己的自定义位图/精灵,或者是否有可以使用的内置光标调色板?(我没有使用 Flex。)

2) 有没有办法用项目范围内的平移光标简单地替换默认箭头,或者我是否需要将交换附加到显示对象上的鼠标事件?我可以使用舞台对象使这种行为适用于任何地方吗?

3) 我如何执行交换?我是直接使用 Cursor 对象还是需要参与 CursorManager?

非常感谢任何指导、伪代码或智慧之言!

4

2 回答 2

2

我学到了一些东西(真的很新)。首先,您可以通过将 Mouse.cursor 设置为 MouseCursor.TYPE 的任何选项来设置一些内置光标选项。Mouse 对象是应用程序范围内可用的单例对象,因此无论您在代码中更改它的任何位置,更改都会持续存在,直到触发另一个更改。对于我的简单案例,我这样做了:

    //on init, start with the "hand"
    Mouse.cursor = MouseCursor.HAND;

    //on clickable items, change to "pointer", then back to "hand"
    myClickableNode.addEventListener(MouseEvent.ROLL_OVER, function(evt:Event):void {
      Mouse.cursor = MouseCursor.BUTTON;
    });
    myClickableNode.addEventListener(MouseEvent.ROLL_OUT, function(evt:Event):void {
    Mouse.cursor = MouseCursor.HAND;
    });

结果是您始终拥有“手”,直到您翻转可点击的东西,然后您得到“指针”。

于 2010-04-22T15:52:02.683 回答
2

我认为flash中没有CursorManger,只有flex。我正在做的方式是使用隐藏光标并将自定义光标拖动到 mouse_move 的自定义类。您必须将其设置为 mouseChildren=false,否则会出现 flickr 或按钮无法点击。我发现的一个问题是自定义上下文菜单。试试这个链接http://abrahamyan.com/2009/03/23/as3-cursormanager/

于 2010-04-22T04:22:09.037 回答