Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 基本AS 3.0查询_Actionscript 3_Actionscript_Flash Cs4_Flash Cs5 - Fatal编程技术网

Actionscript 3 基本AS 3.0查询

Actionscript 3 基本AS 3.0查询,actionscript-3,actionscript,flash-cs4,flash-cs5,Actionscript 3,Actionscript,Flash Cs4,Flash Cs5,使用箭头在actionscript swf中导航的最佳方式是什么?设置TextInput的tabIndex属性。这应该允许您通过制表符查看表单 不建议覆盖箭头键的默认功能,因为它们用于在textInput中移动文本插入点 至于enter,您必须监听keyUp事件,如果检测到enter键,则移动到下一个字段 //add this eventlistener for each textbox (through a loop or manually) t.addEventListener(Keyboa

使用箭头在actionscript swf中导航的最佳方式是什么?

设置
TextInput
tabIndex
属性。这应该允许您通过制表符查看表单

不建议覆盖箭头键的默认功能,因为它们用于在textInput中移动文本插入点

至于enter,您必须监听keyUp事件,如果检测到enter键,则移动到下一个字段

//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();
    }
}
编辑

对于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;
}
for(变量i:int=0;i
在您的代码中:

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; 

}
var-fm:FocusManager=新的FocusManager(此);
函数k(e:键盘事件):无效{
if(e.keyCode==键盘输入){
var fx:InteractiveObject=fm.getNextFocusManagerComponent();
fm.setFocus(fx);
}
}
对于(变量i:int=0;i
非常感谢您!我使用的是设置为输入的文本框,而不是组件,所以我在使用40个文本框时出错。有什么建议吗?你的建议太棒了!我希望最后一个问题是,t2应该指什么?可悲的是,我正在使用CS4:(哦…t1、t2等是您拥有的文本字段的实例名称..您可能希望在数组上循环并设置
tabEnabled=true
tabindex=which
,仔细想想,设置
tabEnabled
并不是真正需要的。我注释掉了我的代码末尾…回车仍然有问题。如果您有tim你能看一下吗?我在第一篇文章中修改了代码。