2009-07-03 49 views
2

我有一个应用程序,我正在寻找使Enter键像Tab键一样行事。我可以轻松捕获按键事件并将setFocus设置为textinput字段。问题是搞清楚哪个textinput字段给予焦点。我有这样的代码Flex 3 focusManager.getNextFocusManagerComponent()返回null


trace(this.window.focusManager); 
//returns TheWindow86.focusManager 

trace(this.window.focusManager.getNextFocusManagerComponent()); 
//returns null 

//This is what I was hoping would work 
this.window.focusManager.getNextFocusManagerComponent().setFocus(); 

的代码是在控制器级和“this.window”引用NativeWindow中MXML文件“TheWindow.mxml”的一个实例。第一条跟踪按预期工作,但第二条跟踪为空。最后一行是我想要工作的代码。

+0

你的“窗口”里面有什么?有没有可调焦的控件? – 2009-08-03 20:48:35

+0

它有一个很好的20 - 30个文本框和按钮。我甚至从文本框按键事件调用该函数。 – respectTheCode 2009-08-04 11:40:18

回答

0

你可以尝试用:

this.window.focusManager.setFocus(this.window.focusManager.getNextFocusManagerComponent()); 

希望工程......如果不是让我知道,我会尝试在Flex Builder!

+0

与以前一样的错误。 TypeError:错误#1009:无法访问空对象引用的属性或方法。 – respectTheCode 2009-07-20 15:57:03

0

focusManager.moveFocus(FocusRequestDirection.FORWARD);

尝试一下;

+0

那是我没有尝试过的一个。尽管如此,仍然得到同样的错误 TypeError:错误#1009:无法访问空对象引用的属性或方法。 – respectTheCode 2009-07-20 15:56:31

0

我有同样的问题。很明显, - this.window.focusManager.getNextFocusManagerComponent()。setFocus(); - 给你错误,因为 - this.window.focusManager.getNextFocusManagerComponent() - 返回null。

我不明白为什么focusManager不知道接下来会出现什么组件...有问题。

0
focusManager.moveFocus(mx.events.FocusRequestDirection.FORWARD); 

效果很好,如果是的FocusManager mx.core.Application实例

0

的属性这似乎是一个错误。我观察到它发生在设置了defaultButtons的窗体周围。