Actionscript 3 AS3将重点放在特定组件上
我有一个包含几个组件的表单:datagrid、textArea、文本输入。。。 对于每个组件,FocusIn事件可用Actionscript 3 AS3将重点放在特定组件上,actionscript-3,flash,apache-flex,Actionscript 3,Flash,Apache Flex,我有一个包含几个组件的表单:datagrid、textArea、文本输入。。。 对于每个组件,FocusIn事件可用 var objTarget:String; protected function memo_focusInHandler(event:FocusEvent):void { objTarget=event.currentTarget.id; } 使用memo_focusInHandler,我知道哪个有
var objTarget:String;
protected function memo_focusInHandler(event:FocusEvent):void
{
objTarget=event.currentTarget.id;
}
使用memo_focusInHandler,我知道哪个有焦点
我的目标是备份最后一个focus对象,并以该对象为焦点重新打开窗口。
我尝试这样做:
objTarget.setfocus();
但它不起作用。你能帮我找到实现我目标的最好方法吗
致以最诚挚的问候。字符串不是显示对象,因此它不能在
焦点中。舞台上的字符串表示为文本字段
在as3中,您可以使用阶段方法将焦点设置为所需目标:
stage.focus = myTarget;
请参阅相应的文档部分:字符串不是显示对象,因此它不能位于焦点中。舞台上的字符串表示为文本字段
在as3中,您可以使用阶段方法将焦点设置为所需目标:
stage.focus = myTarget;
请参阅相应的文档部分:我找到了一个解决方案:
this[objTarget].selectRange(this[objTarget].text.length, this[objTarget].text.length);
this[objTarget].setFocus();
致以最诚挚的问候我找到了一个解决方案:
this[objTarget].selectRange(this[objTarget].text.length, this[objTarget].text.length);
this[objTarget].setFocus();
致以最诚挚的问候无需(如您所示)使用字符串id引用。直接使用对象引用要简单得多(而且效率略高)
var objTarget:Object; // Object instead of type :String
protected function memo_focusInHandler(event:FocusEvent):void {
objTarget = event.currentTarget; //instead of the currentTarget's id property, assign the current target itself
}
然后,当您要重置焦点时,可以执行以下操作:
if(objTarget is TextInput || objTarget is TextArea){ //make sure it's a text input or text area first - optional but recommended if you don't like errors
objTarget.selectRange(objTarget.text.length, objTarget.text.length); //set cursor to the end
objTarget.setFocus(); //focus the text input/area
}
没有必要(如您所示)使用字符串id引用。直接使用对象引用要简单得多(而且效率略高)
var objTarget:Object; // Object instead of type :String
protected function memo_focusInHandler(event:FocusEvent):void {
objTarget = event.currentTarget; //instead of the currentTarget's id property, assign the current target itself
}
然后,当您要重置焦点时,可以执行以下操作:
if(objTarget is TextInput || objTarget is TextArea){ //make sure it's a text input or text area first - optional but recommended if you don't like errors
objTarget.selectRange(objTarget.text.length, objTarget.text.length); //set cursor to the end
objTarget.setFocus(); //focus the text input/area
}
只需将objTarget:String
更改为objTarget:Object
,然后松开id属性:objTarget=event.currentTarget
。然后它就会工作。只需将objTarget:String
更改为objTarget:Object
,然后松开id属性:objTarget=event.currentTarget
。那就行了。