作者etrexetrex (moonet)
看板Flash
標題[問題] 實作一個可監聽的基本型別?
時間Thu May 13 17:34:02 2010
基本型別例如
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)
1F:→ cjcat2266:自己寫setValue()和getValue() 05/13 18:49
2F:→ cjcat2266:繼承Proxy class或許是另外一解 05/13 18:49
3F:→ cjcat2266:Proxy class有提供一些讓你修改預設變數行為的機制 05/13 18:50
5F:→ etrexetrex:嗯 我是不想要每個變數都寫一次get set 05/13 19:24
6F:→ etrexetrex:才想說作一個class 寫一遍就可以一直用 05/13 19:24
7F:→ etrexetrex:我想 Proxy 應該也是不行的 05/13 19:30
8F:→ etrexetrex:因為在寫 x = 2; 的時候其實是等於 x = new int(2); 05/13 19:31
9F:→ etrexetrex:整個物件都被換掉了吧 05/13 19:32
10F:→ etrexetrex:這樣的話就只能作成 x.value = 2; 之類的方式了 05/13 19:32
11F:→ etrexetrex:但是這樣就髒掉了 05/13 19:32
12F:推 cjcat2266:整個物件換掉啊...那這樣只能在parent寫get/set啦 05/13 20:58
13F:→ cjcat2266:應該不管怎樣還是得弄髒吧 :/ 05/13 20:59
14F:→ cjcat2266:Proxy是可以做到此物件任何property被修改都丟事件 05/13 20:59
15F:→ cjcat2266:不然你就弄個Proxy當做一個data holder吧? 05/13 21:00
16F:→ cjcat2266:它擁有的property變更的時候都丟出式見這樣 05/13 21:00
17F:→ etrexetrex:如果能動態的幫一個屬性加丟出事件也是可以 05/13 21:14