Flex中通过扩展RadioButton类和重载protected keyDownHandler事件使RadioButton/RadioButtonGroup的键盘导航无效的例子

By Minidxer | June 24, 2008

接下来的例子演示了Flex中如何通过扩展RadioButton类和重载protected keyDownHandler事件,使RadioButton/RadioButtonGroup的键盘导航无效。

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


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

Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
  3.         xmlns:comps="comps.*"
  4.         layout="vertical"
  5.         verticalAlign="middle"
  6.         backgroundColor="white">
  7.  
  8.     <mx:RadioButtonGroup id="radioGroup1" />
  9.     <mx:RadioButtonGroup id="radioGroup2" />
  10.  
  11.     <mx:Form>
  12.         <mx:FormItem label="keyboard enabled:"
  13.                 direction="horizontal">
  14.             <mx:RadioButton id="radioButton1"
  15.                     label="Red"
  16.                     group="{radioGroup1}" />
  17.             <mx:RadioButton id="radioButton2"
  18.                     label="Orange"
  19.                     group="{radioGroup1}" />
  20.             <mx:RadioButton id="radioButton3"
  21.                     label="Yellow"
  22.                     group="{radioGroup1}" />
  23.             <mx:RadioButton id="radioButton4"
  24.                     label="Green"
  25.                     group="{radioGroup1}" />
  26.             <mx:RadioButton id="radioButton5"
  27.                     label="Blue"
  28.                     group="{radioGroup1}" />
  29.         </mx:FormItem>
  30.         <mx:FormItem label="keyboard disabled:"
  31.                 direction="horizontal">
  32.             <comps:MyRadioButton id="radioButton6"
  33.                     label="Red"
  34.                     group="{radioGroup2}" />
  35.             <comps:MyRadioButton id="radioButton7"
  36.                     label="Orange"
  37.                     group="{radioGroup2}" />
  38.             <comps:MyRadioButton id="radioButton8"
  39.                     label="Yellow"
  40.                     group="{radioGroup2}" />
  41.             <comps:MyRadioButton id="radioButton9"
  42.                     label="Green"
  43.                     group="{radioGroup2}" />
  44.             <comps:MyRadioButton id="radioButton0"
  45.                     label="Blue"
  46.                     group="{radioGroup2}" />
  47.         </mx:FormItem>
  48.     </mx:Form>
  49.  
  50. </mx:Application>
下面是扩展类的代码:
Download: main.mxml
  1. package comps {
  2.     import flash.events.KeyboardEvent;
  3.     import mx.controls.RadioButton;
  4.  
  5.     public class MyRadioButton extends RadioButton {
  6.         public function MyRadioButton() {
  7.             super();
  8.         }
  9.  
  10.         override protected function keyDownHandler(event:KeyboardEvent):void {
  11.             // ignore
  12.         }
  13.     }
  14. }
代码:Peter deHaan 翻译/整理/编译:minidxer

Topics: Flex | Tags: , , ,

Search Posts

Archives

Sponsored Ads