我正在尝试将手形光标设置在HBox上。我已经尝试过buttonMode和useHandCursor,但没有运气。此示例显示忙碌光标。谁能告诉我如何让它显示flashPlayer的手形光标?
<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" xmlns:components="com.dn2k.components.*" >
<fx:Script>
<![CDATA[
private var cursorID:int;
//cursorManager
protected function box_mouseOverHandler(event:MouseEvent):void
{
cursorManager.setBusyCursor()
}
]]>
</fx:Script>
<mx:HBox id="box" useHandCursor="true" buttonMode="true" mouseChildren="false" backgroundColor="0xcc0000" mouseOver="box_mouseOverHandler(event)">
<s:Label text="Hiya sexy..."/>
</mx:HBox>
答案 0 :(得分:7)
当鼠标在容器上时,此代码显示完美:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:s="library://ns.adobe.com/flex/spark">
<mx:HBox backgroundColor="0xcc0000" buttonMode="true" id="box" mouseChildren="false" useHandCursor="true">
<s:Label text="Hiya sexy..." />
</mx:HBox>
</s:Application>
答案 1 :(得分:3)
如果你想在Label中设置手形光标,你必须设置mouseChildren =“false”,下面是修改后的代码
<mx:HBox backgroundColor="0xcc0000" buttonMode="true" id="box" useHandCursor="true">
<s:Label text="Hiya sexy..." buttonMode="true" mouseChildren="false" useHandCursor="true" />
</mx:HBox>
希望这适合你。
答案 2 :(得分:0)
杰夫说的话。您也可以使用CursorManager.setCursor()
。你必须为光标嵌入一个图形。
答案 3 :(得分:0)
有一个关于这个论坛讨论中途的例子,你可能会发现它很有用:
答案 4 :(得分:0)
您还可以使用较新的Mouse类,它提供更高帧率的本机光标。
<mx:HBox rollOver="Mouse.cursor = MouseCursor.BUTTON"
backgroundColor="0" backgroundAlpha="0"
rollOut="Mouse.cursor = MouseCursor.AUTO"/>
背景颜色和背景alpha用于绘制用作命中区域的图形。在空的Spark容器中,有一个mouseEnabledWhereTransparent
属性,我认为它不存在于mx容器中。这是关于它的文档:
如果为true,则此属性确保组的整个边界 响应鼠标事件,例如点击和翻转。这个性质 只有鼠标,触摸或Flash播放器手势事件才有效 被添加到此实例。另外,它假定调用 addEventListener()/ removeEventListener()不是多余的。
说过这似乎没有设置mouseEnabledWhereTransparent
属性:
<s:Group id="testingHitGroup" left="10" top="10"
rollOver="cursorObject_rollOver(event)" width="100" height="100"/>