2011-06-24 23 views
7

我想使用事件元數據標籤來顯示我的控件將分派哪些類型的事件。語法是這樣的:事件元數據:使用「name」屬性的靜態變量?

<fx:Metadata> 
    [Event(name="eventName", type="MyEvent")] 
</fx:Metadata> 

好像在的Flex/ActionScript中的最佳實踐來定義定義事件的名稱,像這樣的靜態變量:

public class MyEvent extends Event 
{ 
    public static const EVENT_NAME:String = "eventName"; 
    // Other stuff.. 
} 

這是一個偉大的實踐,因爲事件名稱可以改變很容易,而不必在整個代碼中進行修改。所以我的問題是:有沒有辦法在我的元數據事件標籤中使用這個靜態常量?我似乎無法做這樣的事情:

<fx:Metadata> 
    [Event(name="{MyEvent.EVENT_NAME}", type="MyEvent")] 
</fx:Metadata> 

我只是無知的正確語法要做到這一點,還是不可能的?看起來好像它只是要求很難找到錯誤,如果有人決定改變const,因爲它在這裏沒有強類型。提前致謝!

回答

6

壞消息是這是不可能:(我夢想着這種可能性,但...

+0

是的,這對我很少使用它來說是一個主要的煩惱,我寧願只使用myComp.addEventListener而不是使用MXML,哈哈。 –

1

是的,這是不可能的事,但也有通過調用describeType()什麼能阻止你做你自己的運行時檢查。元數據可用(在這個例子中)。解析xml並檢查你的const值。如果有問題,拋出錯誤或輸出一個trace。這不是完美的,但它會給你一些安全