Flash/Flex光标

5
我正在开发一个Flex应用程序,该应用程序加载由CS3创建的外部Flash资源。我刚刚了解到如何使用Flex mx.managers.CursorManager类显式更改鼠标光标。但是,我理想的情况是在加载的Flash SWF中设置一些元素的鼠标光标属性,因此当光标经过此元素时,光标会自动更改,而无需响应鼠标事件。
这是可能的吗? Flash在DisplayObject或其他什么地方支持此功能吗?
似乎Flash SWF正在覆盖我的设置。某些对象会自动显示手形光标,我看不到在DisplayObject上关闭它的方法。
2个回答

4

为了设置“手形”光标,当鼠标悬停在一个元素上时,你需要指定以下属性:

  <mx:VBox 
       useHandCursor="true"
       mouseChildren="false"
       buttonMode="true">

然而,这仅适用于手形光标。还要注意所需的mouseChildren属性。您必须将其设置为false才能为所有包含的项目实现光标,或者您必须为所有元素指定useHandCursor和buttonMode属性。但是,将mouseChildren设置为false的副作用是,子元素上的所有鼠标事件(mouseOver、mouseOut、click等)将不再起作用。
如果您想使用与手形光标不同的光标,恐怕只有两种可能性:
- 用您的光标替换标准手形光标。 - 使用mouseOver和mouseOut事件以编程方式设置光标。

2
在任何从Sprite继承的对象中,如果其buttonMode和useHandCursor属性都为true,则当您将鼠标滑过它时,默认会得到一个手形光标。某些对象默认情况下会这样做,比如Button和LinkButton,您可能已经注意到了。只需在这些组件上将useHandCursor设置为false即可轻松禁用手形光标,即使其buttonMode属性(负责分派单击事件)设置为true。
但是,如果您想在mouseOver时将光标设置为其他内容,则必须响应鼠标事件;无法避免这一点。根据您的设计目标,您可以通过某种方式将该工作拆分出来,例如从某个其他对象继承,然后覆盖其默认行为,但无论以何种形式,运行时都需要知道您希望处理这些鼠标事件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接