2011-01-13 43 views
0

我有延伸Proxy類,並呼籲num靜態定義的成員變量的類:Actionscript - 如何覆蓋獲取預定義類的屬性?

public dynamic class TestProxy extends Proxy 
{ 
private var num:Number = 100; 

public function TestProxy() 
{ 
    super(); 
} 

override flash_proxy function getProperty(name:*):* 
{ 
    trace("***** "+name); 
} 
} 

我想要的getProperty()當我嘗試訪問num被調用。它適用於任何不存在的字段,但不適用於預定義的字段。

有什麼辦法可以做到這一點嗎?我能以某種方式動態擺脫num?或者是其他東西?

+0

當你調用'num',因爲超過這個類將是不確定的,因爲它是私有的。 –

回答

0

如果它是預定義的,爲什麼你不能使用getter/setter方法和對private var的代理訪問?

private var _num:Number = 100; 
//.... 
function get num() : Number { } 
function set num (val : Number) : void { } 
+0

這正是我想要避免的;我試圖定義模型對象的屬性在獲取它們時懶惰地查看,因爲數據在實例化時不存在於類中。它不只是一個對象,它可能有幾十個;寫這些獲得者/設置者爲每個屬性做**完全相同的事情將是一個可怕的麻煩,看起來真的不乾淨。 – Fragsworth

+0

@ Fragsworth - Gotcha –

0

沒有辦法讓Proxy訪問一個類的私有預定義屬性。無論是把它公開,如果你想要訪問,或重命名變量,然後到num電話迴應:

public dynamic class TestProxy extends Proxy 
{ 
    private var _num:Number = 100; 

    public function TestProxy() 
    { 
     super(); 
    } 

    override flash_proxy function getProperty(name:*):* 
    { 
     if (name == "num") 
     { 
      return _num; 
     } 
    } 
}