我的問題涉及訪問子對象父對象的最佳實踐。所以我們假設一個類實例化另一個類,那個類實例現在被一個對象引用。從那個子對象中,返回父對象的最好方法是什麼?目前我知道我經常使用的幾種方法,但我不確定A)是否有更好的方法來做到這一點,或B)哪一種方法是更好的做法從子對象引用父對象
第一種方法是使用getDefinitionByName ,它不會實例化該類,但允許訪問公開聲明的任何內容。
_class:Class = getDefinitionByName("com.site.Class") as Class;
然後根據其父級到子級別引用該變量。
例如,如果孩子試圖引用類這兩個級別最高的本身:
_class(parent.parent).function();
這似乎很好地工作,但你必須知道這對孩子是在比水平您嘗試訪問的父級的級別。
我也可以得到以下語句來將[object ClassName]追蹤到Flash的輸出中。
trace(Class);
我並不在該行的執行100%,我還沒有它想追尋作爲一種方式來引用當前對象我在以外的對象。
另一種方法我見過使用的簡單的引用傳遞給該到你所創建的類對象,並只是一個構造函數的參數抓住它
var class:Class = new Class(this);
,然後在類文件
public function Class(objectRef:Object) {
_parentRef = objectRef;
}
該引用還要求您使用子級別向父級別進行備份。
我也可以導入該類,然後使用直接文件路徑引用該類內部的方法,而不管其是否爲父類。
import com.site.Class;
com.site.Class.method();
當然,由於我通過導入的類直接訪問方法或屬性,所以父對子關係是無關緊要的。
我只是覺得我錯過了這裏真正明顯的東西。我基本上是在尋找確認,如果這些是引用父母的正確方法,並且如果是的話,哪一個是最理想的,還是我過分看待別的東西?
我很確定你不能有一個Class類,但我知道你的意思。 – Iain 2009-07-03 08:48:45