【问题标题】:Equivalent of describeType for Flex Component EVENTS等效于 Flex 组件事件的 describeType
【发布时间】:2010-06-11 01:22:32
【问题描述】:

在 Flex 中使用“内省”我可以说:

  var classInfo:XML=describeType(SomeObject);

这将为我列出访问器、方法和变量。 (http://livedocs.adobe.com/flex/3/html/help.html?content=usingas_8.html)

但是以编程方式检查对象的所有可能事件的等价物是什么?

(不只是设置了事件侦听器的事件,而是以某种方式逐步浏览可能设置事件侦听器的所有有效事件的列表——我意识到这样的列表很容易在线获得,这很棒如果我在设计类型时知道对象的类型,但我需要某种方式在运行时以编程方式检查任何给定的显示对象,并确定哪些事件(如果有)与它相关联。)

【问题讨论】:

    标签: apache-flex flash actionscript-3 air


    【解决方案1】:

    没有办法。

    使用事件元数据标记定义的事件信息仅用于通过 ASDocs 进行代码提示和文档记录。它与组件可能触发或不触发的事件无关。

    在任何时间点,一部分代码都可以调用“dispatchEvent”并调度该事件。这通常用于用于绑定的“somePropertyChanged”事件。这些事件很少(如果有的话)使用事件元数据记录下来。但是,组件仍然会触发它们。

    冒泡混淆了问题;因为如果一个组件的子组件触发了一个气泡属性为真的事件;那么它几乎与触发事件的组件相同。如果没有某种代码分析器,您如何以编程方式解决这个问题?

    也就是说,有一个编译器参数来保留元数据(keep-as3-metadata 在http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_14.htmlhttp://jacwright.com/blog/72/using-your-own-custom-metadata-in-as3/)。

    我相信如果你这样做,那么有一种方法可以从组件中获取事件元数据;我想使用 describeType。但是,请记住,元数据并不是事件的全部。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-23
      • 1970-01-01
      • 2010-09-05
      • 2013-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多