关于ActionScript3中for...in和for each ...in的取动态类中属性的区别

在ActionScript3中动态类的使用确实能起到很大的帮助作用,比如Object作为数据传递值使用,当然我们也可以在新建一个as类时定义为Dynamic,便于在运行时动态添加属性和方法,具体动态类型的使用这里只粘贴几个简单应用,可以参看Object的使用方式。

package vo
{
 public dynamic class DynamicUserVo
 {
  public function DynamicUserVo()
  {
  }
 }
}

应用:

var dynamicVO:DynamicUserVo = new DynamicUserVo();
dynamicVO.userName = "test";
dynamicVO.password = "12345";

 

重点说明for...in和for each ...in的区别,这两种for循环都可以遍历动态类的属性以及容器类数据结构,但是for...in遍历输出的是属性的名称或者数组的下标,而for each ...in则遍历返回的是具体的值。

1.以动态类为例

    var dynamicVO:DynamicUserVo = new DynamicUserVo();
    dynamicVO.userName = "test";
    dynamicVO.password = "12345";

    for(var value:String in dynamicVO)
    {

    //这里的value得到的是属性的名称,而具体要取到值则需要根据名称获取。
     trace("--> " + value + ":" + dynamicVO[value]);
    }
    
    
    for each(var value2:String in dynamicVO)
    {

    //这里的value2则是具体的值
     trace("--> value2:" + value2);
    }

2.以Array为例:

var list:ArrayCollection = new ArrayCollection(["test", "12345"]);
    
    for(var value:String in list)
    {
     trace("--> value :"+ list[value]);
    }
    
    
    for each(var value2:String in list)
    {
     trace("--> value2:" + value2);
    }

需要注意的就是遍历对象如果是密封类的实例,则您无法循环获得该对象的属性,即使是动态类,也无法访问动态类实例的固有属性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值