Actionscript 3 基本AS 3.0查询
使用箭头在actionscript swf中导航的最佳方式是什么?设置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
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你能看一下吗?我在第一篇文章中修改了代码。