宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > AS2与AS3技术

[AS3]as3的FocusEvent焦点事件的代码实例

2016-10-13 00:16:48 点击量:50 标签: 收藏本文

一共有4个焦点事件:FocusIn、FocusOut、KEY_FOCUS_CHANGE、MOUSE_FOCUS_CHANGE,当焦点改变时focusIn和focusOut 事件会同时激活,它们属于不可取消的事件,keyFocusChange和mouseFocusChange是可取消的事件,可以调用FocusEvent.preventDefault( )方法取消默认事件,FocusEvent有一个relatedObject属性,对于focusIn而言,relatedObject属性是刚才拥有焦点的对象的;对于其它三个事件,relatedObject属性是现在接收到焦点的对象

  1. package { 
  2.  import flash.display.Sprite; 
  3.  import flash.events.FocusEvent; 
  4.  import flash.text.TextField; 
  5.  import flash.text.TextFieldAutoSize; 
  6.  import flash.text.TextFieldType; 
  7.  public class Sample0414 extends Sprite 
  8.  { 
  9.   private var lblInfo:TextField; 
  10.    
  11.   public function Sample0414() 
  12.   { 
  13.    var textBox:TextField = new TextField(); 
  14.    textBox.name = "文本框A"
  15.    textBox.type = TextFieldType.INPUT; 
  16.    textBox.background = true
  17.    textBox.width = 200
  18.    textBox.height = 20
  19.    //textBox.addEventListener(FocusEvent.FOCUS_IN,onFocusIn); 
  20.    //textBox.addEventListener(FocusEvent.FOCUS_OUT,onFocusOut); 
  21.    textBox.addEventListener(FocusEvent.KEY_FOCUS_CHANGE,onKeyFocusChange); 
  22.    this.addChild(textBox); 
  23.     
  24.    textBox = new TextField(); 
  25.    textBox.name = "文本框B"
  26.    textBox.type = TextFieldType.INPUT; 
  27.    textBox.background = true
  28.    textBox.width = 200
  29.    textBox.height = 20
  30.    textBox.y = 80
  31.    //textBox.addEventListener(FocusEvent.FOCUS_IN,onFocusIn); 
  32.    //textBox.addEventListener(FocusEvent.FOCUS_OUT,onFocusOut); 
  33. textBox.addEventListener(FocusEvent.KEY_FOCUS_CHANGE,onKeyFocusChange); 
  34.    this.addChild(textBox); 
  35.     
  36.    lblInfo = new TextField(); 
  37.    lblInfo.y = 200
  38.    lblInfo.autoSize = TextFieldAutoSize.CENTER; 
  39.    this.addChild(lblInfo); 
  40.   } 
  41.    
  42.   private function onFocusIn(event:FocusEvent):void 
  43.   { 
  44.    var txt:TextField = event.target  as  TextField; 
  45.    txttxt.text = txt.name; 
  46.    if(event.relatedObject!=null) 
  47.    { 
  48.     lblInfo.text = "CuPlayer.com提示FocusIn的relatedObject是:" + (event.relatedObject  as  TextField).name; 
  49.    } 
  50.   } 
  51.    
  52.   private function onFocusOut(event:FocusEvent):void 
  53.   { 
  54.    if(event.relatedObject!=null) 
  55.    { 
  56.     lblInfo.text = "FocusOut的relatedObject是:" + (event.relatedObject  as  TextField).name; 
  57.    } 
  58.   } 
  59.    
  60.   private function onKeyFocusChange(event:FocusEvent):void 
  61.   { 
  62.    var txt:TextField = event.target  as  TextField; 
  63.    if(txt.text == "")  
  64.    { 
  65.              event.preventDefault();//当field没有任何文字前,不允许使用Tab键把焦点移除 
  66.       }  
  67.    if(event.relatedObject!=null) 
  68.    { 
  69.     var strRelatedObj:String = (event.relatedObject  as  TextField).name; 
  70.     lblInfo.text = "CuPlayer.com提示KeyFocusChange的relatedObject是:" + strRelatedObj; 
  71.    } 
  72.   } 
  73.  } 

 

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室