1
A
回答
2
您可以使用describeType
获得所有已声明事件的列表。您需要查看父类以获取继承事件,并且您可能需要避免frameConstructed
,enterFrame
和exitFrame
。
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
<mx:Script><![CDATA[
import flash.utils.describeType;
import flash.utils.getDefinitionByName;
private function init():void {
var eventNames:Array = new Array();
findEventsRecursive(btn, eventNames);
for each(var eventName:String in eventNames) {
if (eventName != "frameConstructed" &&
eventName != "exitFrame" &&
eventName != "enterFrame") {
btn.addEventListener(eventName, genericHandler);
}
}
}
private function genericHandler(event:Event) {
trace(event.type + " triggered");
}
private function findEventsRecursive(instance:Object, eventNames:Array) {
var description:XML = describeType(instance);
findEvents(description, eventNames);
for each(var parentType:String in [email protected]) {
var parentClass:Object = getDefinitionByName(parentType);
var parentDescription:XML = describeType(parentClass);
findEvents(parentDescription, eventNames);
}
}
private function findEvents(description:XML, eventNames:Array) {
for each(var eventName:XML in description.factory.metadata.(@name=='Event').arg.(@key=='name')) {
eventNames.push([email protected]);
}
}
]]></mx:Script>
<mx:Button id="btn" />
</mx:Application>
但事件没有被宣布。任何班级都可以使用字符串名称发送事件,而这些不会被describeType
(或通过任何其他机制)获取。
相关问题
- 1. Flex 4:使用spark.primitive.path对象捕获鼠标事件
- 2. socket.io - 捕获所有事件
- 3. 捕获所有事件(javascript)
- 4. Force Flex 4 Spark Hslider捕捉特定值?
- 5. 错误:未捕获,未指定“错误”事件。 ([对象对象])
- 6. Flex 4如何在所有重叠对象上启用鼠标事件
- 7. 获取特定组件上的所有事件侦听器
- 8. jQuery click()事件捕获所有?
- 9. 角4捕获的extern事件
- 10. 捕获Flash/Flex重绘DisplayObject事件?
- 11. Flex Path - 捕获点击事件
- 12. Flex 4鼓泡自定义事件
- 13. 捕获所有请求MVC 4
- 14. Magento的'customer_login'事件没有捕获
- 15. Flex 4 COLLECTION_CHANGE事件没有触发
- 16. 如何获取列表中特定类型的所有对象?
- 17. Flex 4 Itemrenderer更新事件?
- 18. Angular 4 - 将服务中的err对象捕获到组件
- 19. Restkit删除特定对象coredata中的所有对象
- 20. Aspectj没有捕获到Spring框架中的所有事件?
- 21. 如何捕获控件上的所有鼠标事件?
- 22. 通过Jquery/JS/Browser特定的API捕获打印事件
- 23. 通过从特定捕获到特定捕获的异常
- 24. 捕获对象上的所有方法/消息调用
- 25. Ruby:捕获发送到对象的所有方法
- 26. 如何递归捕获对象的所有更改?
- 27. 如何捕获运行时对象上的事件
- 28. 如何捕获点击Flash对象的事件
- 29. 如何通过Shockwave捕获FF中的鼠标事件对象
- 30. 捕获对象标记使用jQuery的儿童事件