讓我們狀態的幾個事實前期:我在AS3的XML類中發現了一個錯誤嗎?
LiveDocs中告訴我們:dynamic
類使我們添加成員變量和成員函數。我們被告知,所有類最終都來自Object
,這是dynamic
,並且dynamic
類必須明確標記爲 - 繼承不適用於動態。
對象是dynamic
類。 日期是final dynamic
類。 XML是一個final dynamic
類。 您可以創建自己的final dynamic
類,它應該與上面的XML
和Date
完全相同(就動態性能而言)。事實上,final
應該不會影響到手頭的問題,但我將其與「困擾」類別的比較中的準確性包括在內。
我的代碼:
對象::Works as expected.
MyFinalDynamicClass:Works as expected.
日期:Works as expected.
public static function setup():void//Object
{
//Uncomment each in turn to get results:
//var o:Object = {};
//var o:MyFinalDynamicClass = new MyFinalDynamicClass();
//var o:Date = new Date();
//var o:XML = new XML();
o.foo = function():String
{
return "Works as expected.";
}
trace(o.foo());
}
用於使每個其中o
被定義的行內的結果
XML:TypeError: Error #1006: value is not a function.
我用日期,因爲它是另一個核心類是final dynamic
。還請注意,成員變量在所有上述類中都能正常工作。只有會員功能有問題,並且只有在類XML
。
我的結論是,並非AS3中的每個類都是從Object派生而來的,有些可能會被模擬成這種方式,但實際上是以其他方式在本機C++中派生的,我相信這是Adobe用來編寫AS語言。
問題:你看到我的邏輯有瑕疵嗎?或者這個班真的被竊聽了?
P.S.對於那些對我爲什麼想向XML添加函數感興趣的人,我想要一種方法來封裝對我的XML數據模型的複雜訪問。
謝謝你明確的答案李 - 我希望他們把這個放在livedocs! – 2010-11-11 10:59:17