【发布时间】:2009-02-18 02:01:16
【问题描述】:
actionscript3.0 中的所有对象都继承自 Object 类,但 actionscript3.0 编译器似乎不够聪明,无法理解这一点。
看看下面的代码:
package{
public class TestOne{
public function TestOne(){
var t2: TestTwo = new TestTwo();
trace(t2.toString()); // COMPILE TIME ERROR
trace((t2 as Object).toString(); // [object TestTwo]
var t22 : * = new TestTwo();
trace(t22.toString()); // [object TestTwo]
trace((t22 as Object).toString(); // [object TestTwo]
}
}
}
class TestTwo{}
t2.toString() 给出编译时错误,因为数据类型 t2 不包括 toString()。但是,t2 确实包含 toString(),因为它是一个对象,如 (t2 as Object).toString() 所示。如果我们不给变量一个数据类型,比如 t22,那么这个问题就永远不会遇到。为什么actionscript3.0编译器不能识别t2既是TestTwo又是Object?
【问题讨论】:
-
您的意思是让第 9 行和第 10 行追踪“t22”变量而不是“t2”吗?
-
你的例子中有几个错别字,但这个问题真的很有趣......
标签: actionscript-3 oop