当LinkButton无效时,光标不显示为手型

Flex LinkButton 光标控制
本文介绍如何在Flex中自定义LinkButton组件,通过扩展该组件并覆盖其enabled属性,使得在LinkButton禁用时能自动切换为箭头光标而非默认的手型光标。提供了两种实现方式,一种是通过MXML,另一种是通过ActionScript。

在Flex组件LinkButton里,我们可以用useHandCursor属性来控制是否使用手型光标。现在我们要实现在LinkButton的enable=false时,useHandCursor=false。反过来,他们要同时为true。

下面的例子显示了当Flex里的LinkButton不可用时,如何移除它上的手型光标,让光标回到箭头。
我们采用的办法是扩展LinkButton类,覆盖了enabled的setter方法,在里面加上了改变useHandCursor属性的语句。

请看下面的例子:


main.mxml

<?xml version="1.0" encoding="utf-8"?>  
<!-- http://blog.flexexamples.com/2008/09/07/removing-the-hand-cursor-from-a-disabled-linkbutton-control-in-flex/ -->  
<mx:Application name="LinkButton_useHandCursor_test"  
        xmlns:mx="http://www.adobe.com/2006/mxml"  
        xmlns:comps="comps.*"  
        layout="horizontal"  
        verticalAlign="middle"  
        backgroundColor="white">  
  
    <mx:ApplicationControlBar dock="true">  
        <mx:Form styleName="plain">  
            <mx:FormItem label="enabled:">  
                <mx:CheckBox id="checkBox" selected="true" />  
            </mx:FormItem>  
        </mx:Form>  
    </mx:ApplicationControlBar>  
  
    <mx:LinkButton id="linkButton"  
            label="Default LinkButton"  
            enabled="{checkBox.selected}" />  
  
    <comps:DisabledLinkButtonMXML id="linkButton2"  
            label="Custom LinkButton (MXML)"  
            enabled="{checkBox.selected}" />  
  
    <comps:DisabledLinkButtonAS id="linkButton3"  
            label="Custom LinkButton (ActionScript)"  
            enabled="{checkBox.selected}" />  
  
</mx:Application>  

DisabledLinkButtonMXML组件:

<?xml version="1.0" encoding="utf-8"?>  
<!-- http://blog.flexexamples.com/2008/09/07/removing-the-hand-cursor-from-a-disabled-linkbutton-control-in-flex/ -->  
<mx:LinkButton xmlns:mx="http://www.adobe.com/2006/mxml">  
  
    <mx:Script>  
        <![CDATA[  
            override public function set enabled(value:Boolean):void {  
                    //让enabled和useHandCursor同步  
                super.enabled = value;  
                useHandCursor = value;  
            }  
        ]]>  
    </mx:Script>  
  
</mx:LinkButton>  

  DisabledLinkButtonAS组件

/** 
 * http://blog.flexexamples.com/2008/09/07/removing-the-hand-cursor-from-a-disabled-linkbutton-control-in-flex/ 
 */  
package comps {  
    import mx.controls.LinkButton;  
  
    public class DisabledLinkButtonAS extends LinkButton {  
  
        /** 
         * Constructor. 
         */  
        public function DisabledLinkButtonAS() {  
           //调用父类的构造函数    
          super();  
        }  
  
        /** 
         * @private 
         */  
        override public function set enabled(value:Boolean):void {  
            super.enabled = value;  
            useHandCursor = value;  
        }  
    }  
}  

很显然, DisabledLinkButtonMXML和 DisabledLinkButtonAS组件实现的是一样的功能。只是用的语法不一样。

 

转载于:https://www.cnblogs.com/exmyth/p/3412753.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值