让我们状态的几个事实前期:我在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