2

我有一个带有登录表单的 AIR 应用程序。我想要做的是在第一个文本输入框中设置光标。我只设法将焦点设置在框上,而不是光标上。

有谁知道我该怎么做?

4

4 回答 4

3

要将文本光标移动到 TextField,您只需将舞台的 focus 属性设置为该字段。

stage.focus = myTextField;

要将光标移动到该 TextField 中的特定索引,请使用setSelection()

myTextField.setSelection(54, 70);
于 2009-05-07T18:19:06.783 回答
1

据我所知,没有办法在动作脚本(flash)中控制鼠标,mouseX / mouseY 属性是只读的。

但是,您可以创建一个可以在 AIR 应用程序中移动的“假鼠标”,但我怀疑这是您想要做的事情,例如: http ://www.senocular.com/demo/VirtualMouse/VirtualMouse.html

于 2009-05-07T14:46:03.380 回答
1

我可以建议在将焦点设置为文本输入之前设置活动本机窗口。像这样的东西:

private function creationCompleteHandler(event:FlexEvent):void {
    stage.nativeWindow.activate();
    loginName.setFocus();
    loginName.selectAll();
}
于 2012-02-21T12:41:24.550 回答
0

您需要等待 flex 容器在显示列表中注册,然后才能访问舞台。

从您的 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>
于 2010-03-01T23:28:46.157 回答