for(..in..)的用途是对一个对象中所有的属性名称(注意是属性名称或索引编号,而不是属性值)进行逐个访问或者对数组中的每一个下标进行逐个访问。
for each(..in..)结构的用途是对一个对象中的所有属性值(此处是属性值而不是属性名称)或者对数组中的每一个元素值,而不是属性名称(或索引、主键)进行逐个访问。此集合可以是 XML 对象、一般对象或数组。下面先看一下简单用例:
1 var myArray:Array = [{ "one","two","three"]; 2 for (var i:Object in myArray) 3 { 4 trace(myArray[i]); 5 } 6 //output 7 //one 8 //two 9 //three10 for each (var j:Object in myArray)11 {12 trace(j);13 }14 //output15 //one16 //two17 //three
for in 得到的是相当于hash表里的key值....for each in 得到的是 value值
关于遍历显示对象的问题:
使用for each...in 或者 for...in只能遍历到有实例名的对象。(此处原因不明。所以用的时候还需要多加注意)
关于遍历XML对象的用法:
xml非常常用很多用法经常会忘掉了。之后会专门详细介绍和xml的使用也借此巩固自己的知识。
1 var myXML:XML = 23 ;12 13 var total:Number = 0;14 for (var pname:String in myXML.item)15 {16 total += myXML.item.@quantity[pname] * myXML.item.price[pname];17 }18 trace(total);19 var total2:Number = 0;20 for each (var prop:XML in myXML.item)21 {22 total2 += prop.@quantity * prop.price;23 }24 trace(total2);25 //outout26 //10.827 //10.8- 4
7burger 53.95 6- 8
11fries 91.45 10
很多API只需要看一遍帮助文档。用过几次便可牢记。所以尽量去尝试多敲代码。多多使用一些不常用的API这样知识才会全面。代码才会写的得心应手!