看板 Flash 關於我們 聯絡資訊
基本型別例如 var x:int = 1; 今天我想要監聽 x 當 x 值有變化就丟出一個事件 也許我要先作一個 Class ListenableInt 但是我又想要這樣寫 var x:ListenableInt = 1; //此時就會丟出事件 x = 2; 請問有可能嗎? 我的問題點在於 1 是int常數,不是 ListenableInt常數 有沒有辦法作出一個 class 是可以吃這種常數的? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.9.202 ※ 編輯: etrexetrex 來自: 140.118.9.202 (05/13 17:35)
cjcat2266:自己寫setValue()和getValue() 05/13 18:49
cjcat2266:繼承Proxy class或許是另外一解 05/13 18:49
cjcat2266:Proxy class有提供一些讓你修改預設變數行為的機制 05/13 18:50
cjcat2266:詳情請見 http://bit.ly/booLdr 05/13 18:52
etrexetrex:嗯 我是不想要每個變數都寫一次get set 05/13 19:24
etrexetrex:才想說作一個class 寫一遍就可以一直用 05/13 19:24
etrexetrex:我想 Proxy 應該也是不行的 05/13 19:30
etrexetrex:因為在寫 x = 2; 的時候其實是等於 x = new int(2); 05/13 19:31
etrexetrex:整個物件都被換掉了吧 05/13 19:32
etrexetrex:這樣的話就只能作成 x.value = 2; 之類的方式了 05/13 19:32
etrexetrex:但是這樣就髒掉了 05/13 19:32
cjcat2266:整個物件換掉啊...那這樣只能在parent寫get/set啦 05/13 20:58
cjcat2266:應該不管怎樣還是得弄髒吧 :/ 05/13 20:59
cjcat2266:Proxy是可以做到此物件任何property被修改都丟事件 05/13 20:59
cjcat2266:不然你就弄個Proxy當做一個data holder吧? 05/13 21:00
cjcat2266:它擁有的property變更的時候都丟出式見這樣 05/13 21:00
etrexetrex:如果能動態的幫一個屬性加丟出事件也是可以 05/13 21:14