2010-02-08 53 views
1

我試圖擴展ObjectProxy類,原因是因爲我想有ObjectProxy類的一個Singleton,所以我做了類似如何延長ObjectProxy類

package utils 
{ 
    import mx.utils.ObjectProxy; 

    public class UniformObjectProxy extends ObjectProxy 
    { 
     private static var _instance:UniformObjectProxy; 

     public function UniformObjectProxy(secure:PrivateClass, item:Object=null, uid:String=null, proxyDepth:int=-1) 
     { 
      super(item, uid, proxyDepth); 
     } 

     public static function getInstance(item:Object=null):UniformObjectProxy{ 
      if(UniformObjectProxy._instance == null){ 
       var security:PrivateClass = new PrivateClass(); 
       UniformObjectProxy._instance = new UniformObjectProxy(security, item); 
      } 
      return UniformObjectProxy._instance; 
     } 
    } 
} 

class PrivateClass{ 
    public function PrivateClass(){ 

    } 
} 

當我創建我的目標一致是一個簡單的對象,我把它傳遞給我的UniformObjectProxy.getInstance()靜態方法來得到我的一個objectProxy實例,確定到目前爲止好

我的問題是,當我嘗試我objectProxy實例的屬性綁定像

_opc = UniformObjectProxy.getInstance(_uniform); 
cw:ChangeWatcher = BindingUtils.bindSetter(dispatchColorChange, _opc, data.id); 

的dispatchColorChange處理函數被調用一次的永遠不再,我曾檢查過ChangeWatcher.isWatching()並返回false意味着我objectProxy沒有約束力正常,如果我創建一個objectProxy像

_opc = new ObjectProxy(_uniform); 
cw:ChangeWatcher = BindingUtils.bindSetter(dispatchColorChange, _opc, data.id); 

的結合的工作方式好,所以我的思想是問題是當我擴展objectProxy類時,如何正確地做到這一點,請幫助我!,謝謝你的任何線索!

回答

1

似乎有問題擴展ObjectProxy(我個人遇到命名空間問題,而嘗試覆蓋setProperty方法,並感覺這個類只是不意味着使用與Proxy類相同的方式)。

不是你的問題的直接答案,但我想你不應該堅持單身模式只是爲了它。爲了獲得上述我所描述的相同接入/結果建議做這樣的事情:

package utils 
{ 
    import mx.utils.ObjectProxy; 

    public class UniformObjectProxy 
    { 
     private static var _proxy:ObjectProxy; 

     public function UniformObjectProxy() 
     { 
      throw("do not instantiate me!") 
     } 

     public static function getProxy(item:Object=null):ObjectProxy{ 
      if(_proxy == null){ 
       _proxy = new ObjectProxy(item); 
      } 
      return _proxy; 
     } 
    } 
} 

然後:

var _opc:ObjectProxy = UniformObjectProxy.getProxy(_uniform); 
+0

也沒有回答我的問題,但這樣做的工作,謝謝爲了指點我正確的方向,這個作品非常感謝! – goseta 2010-02-09 01:12:20