Flex:如何设置手部光标?

monwx1rj  于 2022-09-21  发布在  Apache
关注(0)|答案(4)|浏览(170)

我正在尝试将手部光标设置在HBox上。我已经尝试了按钮模式和使用HandCursor,但没有成功。本例显示忙碌光标。谁能告诉我怎么让它显示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>
f8rj6qna

f8rj6qna1#

当鼠标悬停在容器上时,此代码完美地显示了它:

<?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>
ozxc1zmp

ozxc1zmp2#

如果要在标签中设置Hand Cursor,则必须设置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>

希望这对你有用。

4zcjmb1e

4zcjmb1e3#

杰夫说的话。您也可以使用CursorManager.setCursor()。不过,您必须为光标嵌入一个图形。

vawmfj5a

vawmfj5a4#

您也可以使用较新的Mouse类,它提供了更高的帧速率原生光标。

<mx:HBox rollOver="Mouse.cursor = MouseCursor.BUTTON" 
         backgroundColor="0" backgroundAlpha="0"
         rollOut="Mouse.cursor = MouseCursor.AUTO"/>

背景颜色和背景Alpha用于绘制用作点击区域的图形。在空的Spark容器中,有一个我认为在MX容器中不存在的mouseEnabledWhereTransparent属性。以下是有关它的文档:

如果为True,则此属性确保Group的整个边界响应鼠标事件,如单击和滚动。仅当将鼠标、触摸或Flash Player手势事件添加到此示例时,此属性才会生效。此外,它还假定对addEventListener()/emoveEventListener()的调用不是多余的。

话虽如此,但似乎无需设置mouseEnabledWhereTransparent属性即可工作:

<s:Group id="testingHitGroup" left="10" top="10" 
         rollOver="cursorObject_rollOver(event)" width="100" height="100"/>

相关问题