AIR应用程序,在窗体中设置光标位置

时间:2009-05-07 14:31:12

标签: flex actionscript-3 air cursor

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

有没有人知道如何做到这一点?

4 个答案:

答案 0 :(得分:3)

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

stage.focus = myTextField;

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

myTextField.setSelection(54, 70);

答案 1 :(得分:1)

据我所知,无法在actionscript(flash)中控制鼠标,mouseX / mouseY属性是只读的。

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

答案 2 :(得分:1)

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

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

答案 3 :(得分: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>