2009-05-07 3 views
2

У меня есть приложение AIR с формой входа. То, что я хочу сделать, - установить курсор в первом текстовом поле ввода. Мне удается установить фокус на поле, но не курсор.Приложение AIR, установите позицию курсора в форме

Есть ли у кого-нибудь идеи, как я могу это сделать?

ответ

0

Вы должны ждать гибкого контейнера должны быть зарегистрированы в списке отображения, чтобы вы получить доступ к сцена.

Поместите вызов инициализации от вас creationComplete обработчика:

<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

1

Из того, что я знаю, нет способа управлять мышью в ActionScript (flash), свойство mouseX/mouseY доступно только для чтения.

Однако вы можете создать «фальшивую мышь», что вы можете передвигаться в приложении AIR, но я сомневаюсь, то будет то, что вы хотите сделать, примером: http://www.senocular.com/demo/VirtualMouse/VirtualMouse.html

3

Для перемещения текста курсора в TextField вы просто устанавливаете stage's focus property в это поле.

stage.focus = myTextField;

Для перемещения курсора на определенный индекс в пределах этой TextField используйте setSelection():

myTextField.setSelection(54, 70); 
1

Я могу посоветовать установить активный уроженцем окно, прежде чем установить фокус ввода текста. Что-то вроде этого:

private function creationCompleteHandler(event:FlexEvent):void { 
    stage.nativeWindow.activate(); 
    loginName.setFocus(); 
    loginName.selectAll(); 
} 
Смежные вопросы