AS3及Flex的百条常用知识

2019-10-08 13:35:42王振洲

复制代码stage.focus = field; //把焦点设给文字框 field.text = "This is example text"; //设定文字 field.setSelection(0, 4); //把"This"这个单词以高亮显示使用只读的selectionBeginIndex和selectionEndIndex属性访问所选取的字符范围的索引. 【在文字内设定安插点(游标位置)并访问游标位置的索引值】 可以使用TextField.setSelection()把起始和结尾的索引参数都设成相同值,在文字内设定游标位置(假设具有焦点):
复制代码field.setSelection(0, 0); //在第一个字符前摆放安插点 trace(field.caretIndex); //输出游标位置的索引值【当文本字段受到选取或取消选取时给予响应】 获得焦点时: FocusEvent.FOCUS_IN 失去焦点时: FocusEvent.FOCUS_OUT 通过键盘(Tab键)把焦点移除时: FocusEvent.KEY_FOCUS_CHANGE 通过鼠标把焦点移除时: FocusEvent.MOUSE_FOCUS_CHANGE FocusEvent 类有一个relatedObject属性.就FOCUS_IN事件而言,relatedObject属性是刚才拥有焦点的对象的引用地址;对于FOCUS_OUT,KEY_FOCUS_CHANGE以及MOUSE_FOCUS_CHANGE事件,relatedObject属性是刚接收到焦点的对象的引用地址. FOCUS_IN和FOCUS_OUT事件都是在焦点改变后发生的,所以两者都是不可取消的事件.对于KEY_FOCUS_CHANGE和MOUSE_FOCUS_CHANGE事件,可以使用FocusEvent.preventDefault()方法取消默认行为:
复制代码field.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, onKeyFocus); private function onKeyFocus(event:FocusEvent):void { if(field.text == "") { event.preventDefault(); //当field没有任何文字前,不允许使用Tab键把焦点移除 } //event.relatedObject就是刚才拥有焦点的对象的引用地址,即下一个获得焦点的对象的引用地址 }