Flex:如何设置手形光标?

时间:2011-08-12 18:07:40

标签: flex cursor

我正在尝试将手形光标设置在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>

5 个答案:

答案 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)

有一个关于这个论坛讨论中途的例子,你可能会发现它很有用:

Custom CursorManager见第7条

答案 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"/>