我开始放弃Flex论坛,所以我会在这里重新发帖,看看情况如何。长时间潜伏,第一次海报; - )
我在舞台上捕获键盘事件并通过框架调度自定义事件(Mate,虽然我不知道这是一个重要问题),但我对范围感到困惑。结构是:
- 应用程序(陷阱键盘事件和调度自定义事件
-- mainPanel (receives dispatched events but mainCalendar (a child element)
is null on debugging. Obviously if I try to call a public method on
mainCalendar it errors out, even though it's a child of mainPanel.
However, mainCalendar is NOT null IF I use
FlexGlobals.topLevelApplication.mainPanel.mainCalendar.
Outerdocument and parentDocument do not expose mainCalendar either, BTW
-- mainCalendar (a custom component inside mainPanel with public methods.
Creation policy is 'all' and it's visible and exists long before I
trap any keystrokes at the top level)
有人花一点时间解释为什么当mainPanel收到自定义事件时mainCalendar超出范围,即使mainCalendar是mainPanel的子节点。有没有更好的方法来管理事件,所以我不必总是通过topLevelApplication来解决组件?
由于
答案 0 :(得分:1)
(创建答案,以便将此问题标记为已回答)
通常,当对component的引用为null且不应该引用时,这意味着尚未创建组件。这可能发生在应用程序initialize
事件之前,或者如果组件的父项不可见且未经过验证。