0

我正在尝试在使用 Swiz 进行依赖注入的 AIR 2.7 应用程序中实现弹出窗口 (NativeWindowType.UTILITY)。

我遵循了我能够找到的 Swiz 指南,并在创建窗口的类上实现了 ISwizAware,并且我在打开窗口之前调用了 _swiz.registerWindow(),并且依赖注入在之后的窗口本身上工作正常这。

但是,我遇到的问题是我在该窗口中有一个子视图,并且我有一个使用 [ViewAdded] 和 [ViewRemoved] 标记的中介。添加的视图和删除的视图功能都不会触发。我认为问题是:

  1. 子视图未正确注册到 Swiz。
  2. swiz 实例不知道 bean(但是我尝试手动添加 bean,但没有任何效果)。
  3. ViewAdded 和 ViewRemoved 元数据标记根本不起作用,因为每个 NativeWindow 对象都有自己的舞台实例。

有人知道更多吗?

4

1 回答 1

0

弹出窗口是一种特殊情况,因为它们不会被添加到与您的应用程序相同的显示树下。在 Stage(Flash Player 的主要包装器)下,您将拥有用于 Swiz 的代码所在的 Application,但 Popup 位于Application上方的单独层中。因为他们是兄弟姐妹,所以 Swiz 无法监听弹出窗口何时被添加到舞台。

解决此问题的方法是手动设置弹出窗口的属性(这通常是最简单的方法)或手动将弹出窗口添加到 Swiz 的意识中。为此,您必须查看文档,因为我很长时间没有接触 Swiz。

于 2011-09-12T02:52:26.680 回答