如何在Flash应用程序中使用“原生”自定义鼠标光标?

时间:2008-11-15 23:50:19

标签: css flex flash actionscript-3 cursors

在Flash应用中更改光标的最常用方法似乎是基于隐藏本机操作系统光标显示图形(由Flash Player绘制)在(隐藏)光标所在的Flash矩形内。例如,mx.managers.CursorManager就是这样做的。我发现这种方法不可接受的原因是Flash Player在更新光标图形方面不够快,导致光标移动中出现一些非常可见滞后,我发现这是一个非常基本的可用性问题和烦恼,使整个应用程序看起来比实际更慢。

另一方面,我注意到浏览器中的 CSS cursor属性实现就像它应该的那样 - 即使用它时光标移动没有明显的延迟实现自定义鼠标光标。

所以我的问题是:有没有办法使用CSS cursor属性(或任何其他不涉及滞后,慢速光标移动的方法)来改变Flash顶部的光标矩形?

我已经尝试通过JavaScript更改Flash元素(或Flash元素周围的cursor包装器)的Div样式属性,但似乎无法使其工作。有没有人成功做过这样的事情?

6 个答案:

答案 0 :(得分:3)

Flash Player 10.2 beta中提供了本机游标。所以你应该试一试!请参阅:http://www.bytearray.org/?p=2373

答案 1 :(得分:1)

我不相信Flash有任何方法可以使用自定义系统游标。在我作为Flash开发人员的6年中,我从未听说过这样的功能或黑客攻击。

答案 2 :(得分:0)

我理解你的抱怨,我也对显示更新有多么迟钝感到沮丧。考虑使用CSS在浏览器中设置游标样式的解决方案虽然是一种有趣的方法......它闻起来,但是在顶部你可以使用ExternalInterface从Actionscript实现对CSS游标属性的控制。这样你就可以回传到HTML容器,调用一些Javascript来在运行时修改HTML页面CSS。不是100%肯定会起作用,但如果你绝望的话可能值得一试。否则,建议坚持使用CursorManager。

答案 3 :(得分:0)

CursorManager就是它,但我没有遇到任何滞后问题。

如果您还没有看过它,请查看Colin Moock的CustomMousePointer课程。他在http://www.moock.org/eas3/examples/发布了他的Essential AS3书中有一堆AS3示例和示例代码。向下滚动或搜索自定义鼠标指针链接。它在第22章标题下。

顺便提一下,这些示例中的代码最初是供Flash开发人员使用的,因此您可以通过使用Flash的AS3实现中没有的对象来为Flex优化其中的一些代码。

答案 4 :(得分:0)

我相信Flash Player 10本身会让你选择ibar,拖动手,手指或普通光标,但如果你在Flash 9中这是不可能的,我也不相信CSS黑客也会工作。

我的建议是 - 使用MOUSE_MOVE事件定位图形并将帧速率设置得尽可能高(例如每秒50帧)。

答案 5 :(得分:0)

实际上,您可以通过编写调用javascript来更新Mousecursor的ExternalInterface来实现此目的。 jQuery功能在这里运行良好,它是我在新的投资组合网站中为按钮和flash应用程序的各个区域做的事情。

新的投资组合尚未完成,但应该在接下来的一周或两周内,因为好奇的是http://chrismcintoshdesigns.com