AS3 Proxy
類擴展了Object
並公開了可以重寫的方法,以通用方式處理對象的添加/刪除和獲取/設置屬性。Proxy類可以在AS3中的現有類中使用嗎?
似乎現有對象(如MovieClip,Sprite等)不會從Proxy類繼承,因此似乎排除了向現有顯示對象類添加此類功能的可能性。
我已經創建了一個名爲GUIControl
一個基本展示對象類,從MovieClip
繼承的佈局框架,我希望通過覆蓋Proxy類的setProperty方法將數據綁定功能添加到它,所以我可以處理財產分配使用單個處理程序可使所有屬性默認作爲綁定源。
是否有一些方法來利用現有的類上的代理類的功能,或者我堅持從頭開始構建基於代理的類?
這確實不能解決問題,因爲Proxy仍未應用於MovieClip實例。此包裝程序無法添加到顯示列表中,並且如果將包裝的MovieClip添加到顯示列表中,則沒有任何方法或事件處理程序將通過此包裝程序,因爲它完全脫離了繼承鏈。 – Triynko
您不需要將包裝器添加到顯示列表中。包裝器用於傳輸數據。如果你想使用動畫片段,你可以在Wrapper中添加一個函數來獲取MovieClip。 – Pan
我知道我不需要*,我只是說包裝*不能*被添加到顯示列表中。因此,實際的顯示對象將不可避免地被顯示列表以MovieClipWrapper不可見的方式操作,因此在設置屬性時應該運行的邏輯將不會運行。例如,在佈局框架中,更改父元素的寬度將改變停靠的子元素的寬度,並且因爲此包裝不在繼承鏈中,所以它無法檢測包裝對象上的屬性更改。此外,您不需要Proxy來編寫像這樣的包裝。 – Triynko