FLASH AS3 关于数组问题

[复制链接]
查看11 | 回复4 | 2011-9-26 12:27:57 | 显示全部楼层 |阅读模式
varss:Array=[{Name:\"张三\",age:\"25\"},{Name:\"王五\",age:\"22\"},{Name:\"吴六\",age:\"23\"}];如何动态赋值给ss,详细点这是二维数组,还是?
回复

使用道具 举报

千问 | 2011-9-26 12:27:57 | 显示全部楼层
这不是二维,还是一维,每个元素是一个对象,所以就叫对象数组(或实例数组)------------------------------------------------------varss:Array=[{Name:\"张三\",age:\"25\"},{Name:\"王五\",age:\"22\"},{Name:\"吴六\",age:\"23\"}];ss[0]={Name:\"李四\",age:\"60\"};//改写第一个元素ss[3]={Name:\"王五\",age:\"80\"};//添加第四个元素trace(ss[0].Name);//输出李四trace(ss[3].age);//输出80--------------------------------------------------------还可以写一个类:publicclassPerson{privatevar__name:String;privatevar__age:String;publicfunctionPerson(__name:String,__age:String){this.__name=__name;this.__age=__age;}publicfunctiongetName():String{return__name;}publicfunctiongetage():String{return__age;}publicfunctiontoString():String{returnthis.__name\",\"this.__age;}}保存后,在主时间轴的代码最上面用importPerson然后就可以这样写了:varp1:Person=newPerson(\"赵六\",\"37\");varp2:Person=newPerson(\"钱七\",\"17\");ss[4]=p1;ss[5]=p2;trace(ss[4].Name);//输出赵六trace(ss[5].age);//输出17trace(ss[4]);//输出赵六37
回复

使用道具 举报

千问 | 2011-9-26 12:27:57 | 显示全部楼层
1.这个数组不是二维数组,只是一个一维的对象数组(存储的内容为对象)2.二维数组数组里面再放了一个数组(数组套数组),可以简单的理解为有两个下标的数组如:varss:Array=[[0,1],[2,3]]trace(ss[0])//输出0,1trace(ss[0][0])//输出03.你所说的动态赋值不太理解,是否可以说清楚点?4.你的例子中:A.要把张三的age变为26,可以:ss[0][\"age\"]=26这两个[]符号样子一样,但作用不一样,第一个[](中括号)是访问数组下标,第二个却是访问[](中括号)对象的属性.
回复

使用道具 举报

千问 | 2011-9-26 12:27:57 | 显示全部楼层
这是一维数组,不过数组的元素是Object而已取ss的下标可以访问对象,如:ss[0]就是一个Object--{Name:\"张三\",age:\"25\"}。因为数组内对象结构都一样,所以可以以遍历数组的方式动态获取数组内的对象并且为它们赋值。for(vari:int=0;iss.length;i){varobj:Object=ss;trace(obj.Name);trace(obj.age);}
回复

使用道具 举报

千问 | 2011-9-26 12:27:57 | 显示全部楼层
varss:Array=[{Name:\"张三\",age:\"25\"},{Name:\"王五\",age:\"22\"},{Name:\"吴六\",age:\"23\"}];vari:String=\"李四26\"varv:String=\"王五22\"varj:String=\"吴六23\"ss[0]=iss[1]=vss[2]=jtrace(ss[1])//ivj分别代表数组的ss的1,2,3位置的数据。你只需要改ivj对应的字符串就OK
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行