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的兒童事件