有下面一段代码:

1
2
3
4
5
var arr:Array = [1,2,3,4];
for(var i in arr){
trace(i);
_root.attachMovie("mc","mc"+i, i);
}

执行会返回下面的错误:

错误 场景=场景 1, 图层=图层 1, 帧=1:第 4 行: 类型不匹配。
_root.attachMovie(“mc”,”mc”+i, i);
ActionScript 错误总数:1 报错:1

我开始百思不得其解,是什么类型不匹配?如果注释attachMovie一行,则不会出现错误。i值正常。
接着使用下面的代码测试:

1
2
3
4
5
var arr:Array = [1,2,3,4];
for(var i in arr){
trace(typeof i);
//_root.attachMovie("mc","mc"+i, i);
}

发现i的数据类型居然是String!难怪flash会报错,因为attachMovie方法的第三个参数Depth数据类型必须是Number。

留言

2006-01-05
次访问