for...in循环的步进值类型是String
有下面一段代码:
1var arr:Array = [1,2,3,4];
2for(var i in arr){
3 trace(i);
4 _root.attachMovie("mc","mc"+i, i);
5}
执行会返回下面的错误:
错误 场景=场景 1, 图层=图层 1, 帧=1:第 4 行: 类型不匹配。 _root.attachMovie("mc","mc"+i, i); ActionScript 错误总数:1 报错:1
我开始百思不得其解,是什么类型不匹配?如果注释attachMovie一行,则不会出现错误。i值正常。 接着使用下面的代码测试:
1var arr:Array = [1,2,3,4];
2for(var i in arr){
3 trace(typeof i);
4 //_root.attachMovie("mc","mc"+i, i);
5}
发现i的数据类型居然是String!难怪flash会报错,因为attachMovie方法的第三个参数Depth数据类型必须是Number。
- 文章ID:70
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/for-in-setp/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。