2012-01-14 21 views
0

我想知道是否可以在不使用mx.binding.utils的情況下在純動作中創建數據綁定系統。 至少我想知道什麼是數據綁定代碼的開銷,以及ChangeWatcher如何知道屬性何時發生更改。 謝謝!databinding如何在actionscript中真正起作用

回答

1

退房的Flex數據潛水邁克爾拉布里奧拉結合水:http://www.ruffkutmedia.com/tutorials-diving-in-the-data-binding-waters-by-michael-labriola.htm(視頻) - 這裏SlideShare上:http://www.slideshare.net/michael.labriola/diving-in-the-flex-data-binding-waters-presentation

還有大量的工作是繼續當您將數據綁定在幕後,但他給它是如何工作的一個非常好的解釋。創建一些自動工作的東西有點尷尬,除非你通過添加代碼的「編譯」階段。

您還可以檢查出的AS3公共byecode項目:http://www.as3commons.org/as3-commons-bytecode/index.html它應該讓你在運行時添加代碼

+0

謝謝,它看起來很可能使用了反射...這就是我認爲它會產生setters和getters的原因。再次感謝你! – sebas 2012-01-14 17:14:22

0

flex編譯器實際上將您的MXML/AS3編譯爲純AS3,然後將其全部編譯爲字節碼。所以在編譯過程的某個階段,數據綁定實際上是通過ActionScript來實現的。

問題是Flex增加了一些專門用於數據綁定的語法。沒有什麼能阻止你在AS3中創建一個數據綁定系統,但是有一些限制,比如你必須以AS3的方式來完成。

+0

非常感謝您的回答。主要問題是:數據保護如何在引擎蓋下工作?我可以做一個可能的參考系統,但那會成爲一個天真的雙向數據綁定。我可以通過事件做到,但我怎麼知道房產是否已經改變?我應該在enterframe中檢查它嗎?在這種情況下,開銷聽起來太多了。讓我知道你的想法謝謝。 – sebas 2012-01-14 11:53:31