actionscript3.0中的所有对象都从Object类继承,但actionscript3.0编译器似乎不够聪明,无法理解这一点。为什么actionscript3.0类heirachy失败(有时)?
看看下面的代码:
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为Object).toString()所示的对象。如果我们不给变量赋一个数据类型,比如t22,那么这个问题永远不会遇到。为什么不能使actionscript3.0编译器重新定义t2,既是TestTwo又是Object?
你是不是指第9行和第10行追踪“t22”变量而不是“t2”? – aaaidan 2009-02-18 02:10:33
在你的例子中有几个拼写错误,但这个问题真的很有趣...... – 2009-02-18 09:14:41