Базовый запрос AS 3.0 - PullRequest
       27

Базовый запрос AS 3.0

0 голосов
/ 21 октября 2011

Каков наилучший способ навигации по SWF-сценарию с помощью стрелок?

1 Ответ

0 голосов
/ 21 октября 2011

установить свойство tabIndex для TextInput. Это должно позволить вам перемещаться по форме.

Нецелесообразно переопределять функциональность по умолчанию для клавиш со стрелками, поскольку они используются для перемещения точки вставки текста в пределах textInput

Что касается ввода, вам нужно будет прослушать событие keyUp и, если вы обнаружите клавишу ввода, перейти к следующему полю.

//add this eventlistener for each textbox (through a loop or manually)
t.addEventListener(KeyboardEvent.KEY_UP, k);

//The event handler
protected function k(e:KeyboardEvent):void {
    if(e.keyCode==Keyboard.ENTER) {
         focusManager.getNextFocusManagerComponent().setFocus();
    }
}

EDIT

Для Flash CS5 этот код должен работать:

import flash.events.KeyboardEvent;
import fl.managers.FocusManager; 
import flash.display.InteractiveObject; 
import fl.managers.IFocusManagerComponent;
import fl.managers.IFocusManager;

t1.addEventListener(KeyboardEvent.KEY_UP, k);
t1.tabIndex=1;
t2.tabIndex=2;

var fm:FocusManager=new FocusManager(this);

t1.tabEnabled=true;
t2.tabEnabled=true;

function k(e:KeyboardEvent):void {
    if(e.keyCode==Keyboard.ENTER) {
         var fx:InteractiveObject = fm.getNextFocusManagerComponent();
         fm.setFocus(fx);
    }
}

важно: сначала перетащите компонент из группы «Пользовательский интерфейс» на сцену и удалите его. Это должно поместить все необходимые компоненты в библиотеку, готовые для использования

EDIT2

Изменить

for(var i:int=0; i < textbox.length; i++) {
        //textbox[i].buttonMode = true;
        //box[i].addEventListener(MouseEvent.CLICK, myclick_ftn);
        //box[i].addEventListener(FocusEvent.FOCUS_IN,textInputHandler);
        //box[i].addEventListener(FocusEvent.FOCUS_OUT,textInputHandlerOut);
        textbox[i].restrict = "0-9";
        textbox[i].addEventListener(KeyboardEvent.KEY_UP, k);
        textbox[i].tabIndex=i;
        //t2.tabIndex=2;

        //textbox[i].tabEnabled=true;

                var fm:FocusManager=new FocusManager(this);


        function k(e:KeyboardEvent):void {
            if(e.keyCode==Keyboard.ENTER) {
                var fx:InteractiveObject = fm.getNextFocusManagerComponent();
                fm.setFocus(fx);
    }
}
        //t2.tabEnabled=true;
}

в вашем коде к этому:

var fm:FocusManager=new FocusManager(this);


function k(e:KeyboardEvent):void {
    if(e.keyCode==Keyboard.ENTER) {
        var fx:InteractiveObject = fm.getNextFocusManagerComponent();
        fm.setFocus(fx);
    }
}

for(var i:int=0; i < textbox.length; i++) {
        //textbox[i].buttonMode = true;
        //box[i].addEventListener(MouseEvent.CLICK, myclick_ftn);
        //box[i].addEventListener(FocusEvent.FOCUS_IN,textInputHandler);
        //box[i].addEventListener(FocusEvent.FOCUS_OUT,textInputHandlerOut);
        textbox[i].restrict = "0-9";
        textbox[i].addEventListener(KeyboardEvent.KEY_UP, k);
        textbox[i].tabIndex=i;
        //t2.tabIndex=2;

        //textbox[i].tabEnabled=true; 

}
...