AS 学习笔记 for in 和 for each in

本文探讨了forin与foreach循环在ActionScript中的性能差异,通过示例代码展示了两者遍历Array的不同行为,并讨论了Scaleform与Flash平台上的表现区别。

for in 的速度比 for each  in 慢很多倍 ~~

 

var myArray:Array = new Array();

myArray["a"] = "zero";
myArray["b"] = "one";
myArray["2"] = "two";

var _local1:String;

for(_local1 in myArray) trace(_local1);

这个 _loacl1 打印的是 2 b a

var _local2:String;
for each (_local2 in myArray) trace(_local2);
这样打印的 是 值  two , one , zero

 

PS : 好多人说 Array 的打印 是无序 的 但是 我测试 发现好像 如果有键值的时候 会按照 键 排序后 打印 结果

如上面的程序  总是 先打印 数字下标的 在打印 字母的 (未作大量测试~,不一定 对哦)

============我是分割线===================

下面是 scaleform 和 Flash 的区别

如果想上面 代码那样写 两边是没有 什么 区别的

但是 如果 把 临时变量(_local1, _local2) 的类型设置为 * 

那么 两边的结果 就不同了 Flash 中依然正常打印结果

在 scaleform 中 则只能打印以 数组 为下标的

如若不是 则 键 打印为 NaN   值 打印为 undefined

 

 

 

转载于:https://www.cnblogs.com/jaoye/p/3144240.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值