软件:Flex 3.0
语言:ActionScript & MXML
前言:
本质上不是一个困难的问题,但是我在遇到这个问题的时候找遍baidu和google都没能找到一个答案,所以希望我能帮助到一些和我一样初学Flex的朋友。
解决方案:
我当时是在做一个图像列表,所以需要简单的调用从1.jpg到n.jpg在某目录下的所有图片文件,数据源xml内容为
<?xml version=”1.0″ encoding=”utf-8″?>
<photos>
<photo name=”International Fair 2008″ max=”69″>
<folder>assets/photo/08if/</folder>
</photo>
<photo name=”2nd International Coffee Hour 2008″ max=”14″>
<folder>assets/photo/08co2/</folder>
</photo>
<photo name=”1st International Coffee Hour 2008″ max=”60″>
<folder>assets/photo/08co1/</folder>
</photo>
</photos>
所以当数据被httpservice调用读取后,就需要进行重新组织,用循环产生1-max个图像地址链接
private function photosInHandler():void
{
var photoRaw:ArrayCollection = photoXML.lastResult.photos.photo; //建立一个新AC,并且将数据源XML的内容复制进去
for(var i:int=1;i<=photoRaw.getItemAt(comboIndex).max;i++) //循环1-max次,combobox是个选择器,来选择xml中索引的位置,例子中是0-2.
{
var tempPhoto:Photo = new Photo; //建立一个新类,这个类很简单,只是有一个变量url
tempPhoto.url=photoRaw.getItemAt(comboIndex).folder+i; //组织并写入值给建立的tempPhoto对象
albumAC.addItem(tempPhoto); //为将要使用的ArrayCollection添加项目
photoTile.height=45*photoRaw.getItemAt(comboIndex).max+180; //这项是因为tileList在scoll的时候性能很低,所以干脆拉长窗口长度,以增强用户体验
}
}
结语:我也是个Flex新手,希望能在不断的总结学习中进步,谢谢









