Actionscript 3 AS3将重点放在特定组件上

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,我知道哪个有

我有一个包含几个组件的表单:datagrid、textArea、文本输入。。。 对于每个组件,FocusIn事件可用

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
。那就行了。