Flex中通过扩展LinkButton类和重载enabled函数以及设置useHandCursor属性移除无效状态下LinkButton手型光标的例子

By Minidxer | September 7, 2008

接下来的例子演示了Flex中如何通过扩展LinkButton类和重载enabled函数以及设置useHandCursor属性,移除无效状态下LinkButton手型光标。Demo中enabled的CheckBox为Off时,后面两个LinkButton鼠标不是手型的。

让我们先来看一下Demo可以右键View Source或点击这里察看源代码):


下面是完整代码(或点击这里察看):

Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application name="LinkButton_useHandCursor_test"
  3.         xmlns:mx="http://www.adobe.com/2006/mxml"
  4.         xmlns:comps="comps.*"
  5.         layout="horizontal"
  6.         verticalAlign="middle"
  7.         backgroundColor="white">
  8.  
  9.     <mx:ApplicationControlBar dock="true">
  10.         <mx:Form styleName="plain">
  11.             <mx:FormItem label="enabled:">
  12.                 <mx:CheckBox id="checkBox" selected="true" />
  13.             </mx:FormItem>
  14.         </mx:Form>
  15.     </mx:ApplicationControlBar>
  16.  
  17.     <mx:LinkButton id="linkButton"
  18.             label="Default LinkButton"
  19.             enabled="{checkBox.selected}" />
  20.  
  21.     <comps:DisabledLinkButtonMXML id="linkButton2"
  22.             label="Custom LinkButton (MXML)"
  23.             enabled="{checkBox.selected}" />
  24.  
  25.     <comps:DisabledLinkButtonAS id="linkButton3"
  26.             label="Custom LinkButton (ActionScript)"
  27.             enabled="{checkBox.selected}" />
  28.  
  29. </mx:Application>

下面是DisabledLinkButtonMXML.mxml的代码:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:LinkButton xmlns:mx="http://www.adobe.com/2006/mxml">
  3.  
  4.     <mx:Script>
  5.         <![CDATA[
  6.             override public function set enabled(value:Boolean):void {
  7.                 super.enabled = value;
  8.                 useHandCursor = value;
  9.             }
  10.         ]]>
  11.     </mx:Script>
  12.  
  13. </mx:LinkButton>

下面是DisabledLinkButtonAS.as的代码:

  1. package comps {
  2.     import mx.controls.LinkButton;
  3.  
  4.     public class DisabledLinkButtonAS extends LinkButton {
  5.  
  6.         /**
  7.          * Constructor.
  8.          */
  9.         public function DisabledLinkButtonAS() {
  10.             super();
  11.         }
  12.  
  13.         /**
  14.          * @private
  15.          */
  16.         override public function set enabled(value:Boolean):void {
  17.             super.enabled = value;
  18.             useHandCursor = value;
  19.         }
  20.     }
  21. }
代码:Peter deHaan 翻译/整理/编译:中文Flex例子

Topics: Flex | Tags: , ,

Related Post

Leave a Comment

Name(*):

E-Mail(*) :

Website :

Comments :

Search Posts

Archives

Sponsored Ads