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. Cocoa - 捕獲特定事件
- 3. QML - 捕獲子對象的所有UI事件
- 4. socket.io - 捕獲所有事件
- 5. 捕獲所有事件(javascript)
- 6. Force Flex 4 Spark Hslider捕捉特定值?
- 7. Flex 4如何在所有重疊對象上啓用鼠標事件
- 8. 錯誤:未捕獲,未指定「錯誤」事件。 ([對象對象])
- 9. 捕獲特定DataGridTextColumn的CellEditEnding事件
- 10. ExtJS的 - 捕獲所有事件
- 11. 獲取特定組件上的所有事件偵聽器
- 12. 自定義Flash/Flex事件對象
- 13. 捕獲所有滾動事件
- 14. Backgrid捕獲選擇所有事件
- 15. jQuery click()事件捕獲所有?
- 16. 在WF 4中捕獲特定的FaultExceptions
- 17. 捕獲Flash/Flex重繪DisplayObject事件?
- 18. Flex Path - 捕獲點擊事件
- 19. 角4捕獲的extern事件
- 20. 使用jquery捕獲給定元素的所有事件
- 21. 獲取Facebook上的特定過濾條件的所有事件
- 22. Flex 4鼓泡自定義事件
- 23. 通過組件中的值對象生成捕獲事件
- 24. Flex 4 COLLECTION_CHANGE事件沒有觸發
- 25. 捕獲所有請求MVC 4
- 26. Magento的'customer_login'事件沒有捕獲
- 27. Flex 4 Itemrenderer更新事件?
- 28. 主應用程序無法捕獲自定義事件Flex
- 29. 獲取特定開發人員的所有對象
- 30. 如何獲取列表中特定類型的所有對象?