2009-05-07 40 views

回答

0

你需要等待柔性容器与显示列表中注册,所以你访问阶段。

将呼叫从您creationComplete处理函数给init:

<mx:Script> 
    <![CDATA[ 
     import flash.events.Event; 

     private function init():void 
     { 
      addEventListener(Event.ADDED_TO_STAGE, initScreen, false); 

     } 

     private function initScreen(e:Event):void 
     { 
      removeEventListener(Event.ADDED_TO_STAGE, initScreen); 
      stage.focus = userName; 
     } 

    ]]> 
</mx:Script> 

<mx:Form defaultButton="{enterBtn}"> 

    <mx:FormHeading label="Form" /> 
    <mx:FormItem label="Username" tabIndex="1"> 
     <mx:TextInput id="userName" text="" selectionBeginIndex="0" /> 
    </mx:FormItem> 
    <mx:FormItem label="Password" tabIndex="2"> 
     <mx:TextInput displayAsPassword="true" id="password"/> 
    </mx:FormItem> 

</mx:Form> 
+0

谢谢,工作完美。 – Freedo 2010-03-03 18:08:12

3

要移动文本光标到TextField您只需将stage's focus property设置为该字段即可。

stage.focus = myTextField;

要将光标移动到特定的索引文本字段内,使用setSelection()

myTextField.setSelection(54, 70); 
1

我可以告诉给之前将焦点设置文本输入设置为激活本地窗口。 类似这样的:

private function creationCompleteHandler(event:FlexEvent):void { 
    stage.nativeWindow.activate(); 
    loginName.setFocus(); 
    loginName.selectAll(); 
}