利用TileList组件做的一个相册

利用XML和TileList组件做的相册,里面难懂的代码快我都有注释!其中用到的很多包都需要自己手动导入,大家注意一下,代码写在TileListMain类里啦!舞台上没东西!XML里写的是一个地址!一个是小图地址,一个是大图地址!同等文件夹下有个images图片文件夹!希望能给初学者带来帮助!
package
{
import flash.display.MovieClip;
import fl.controls.TileList;
import flash.text.TextFormat;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
import fl.data.DataProvider;
import fl.events.ListEvent;
import flash.display.Loader;
import fl.controls.ScrollBarDirection;
import flash.events.MouseEvent;
import flash.display.Bitmap;
public class TileListMain extends MovieClip
{
private var myTileList:TileList=new TileList();
private var urlLoader:URLLoader=new URLLoader();
private var myurlImag:URLRequest = new URLRequest("images.xml");
private var dp:DataProvider;
private var loader:Loader=new Loader();
private var bit:Bitmap=new Bitmap();
public function TileListMain()
{
var txtformat:TextFormat = new TextFormat("宋体",12,0x00ff00);
myTileList.setRendererStyle("textFormat",txtformat);
stage.addChild(myTileList);
urlLoader.load(myurlImag);
urlLoader.addEventListener(Event.COMPLETE,getXmlHandler);
}
private function getXmlHandler(e:Event):void
{
var xml:XML = new XML(urlLoader.data);
//trace(xml.min);
dp = new DataProvider(xml);
myTileList.labelField="maxImg";
//trace(xml.max.@maxImg);
myTileList.sourceField="minImg";
//trace(myTileList.labelField);
myTileList.dataProvider = dp;
myTileList.width=100;
myTileList.height=400;
myTileList.columnWidth=90;
myTileList.rowHeight=100;
myTileList.move(0,0);
myTileList.direction = ScrollBarDirection.VERTICAL;// TileList 组件垂直滚动。
myTileList.addEventListener(ListEvent.ITEM_CLICK,onItemClickHandler);
myTileList.addEventListener(MouseEvent.CLICK,onClick);
}
private function onItemClickHandler(e:ListEvent):void
{
//var loader:Loader=new Loader;
loader.load(new URLRequest(String(myTileList.itemToLabel(e.item))));//当前所点击的小图后加载大图的路径;
loader.x=150;
loader.y=40;
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onCompletehandler);//加载完成后事件
//stage.addChild(loader);
}
private function onClick(e:MouseEvent):void
{
trace(e.target.label);//输出当前所点击的标签
}
private function onCompletehandler(e:Event):void
{
bit.bitmapData = e.target.content.bitmapData;//为了方便更改大图的大小把大图的路径赋给一个bitmap,
bit.width=300;
bit.height=350;
bit.x=172;
bit.y=25;
stage.addChild(bit);
}
}
}
images.xml里的内容:
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<min minImg="images/1.png" maxImg="images/1.jpg">img</min>
<min minImg="images/10.png" maxImg="images/10.jpg">img</min>
<min minImg="images/11.png" maxImg="images/11.jpg">img</min>
<min minImg="images/12.png" maxImg="images/12.jpg">img</min>
<min minImg="images/13.png" maxImg="images/13.jpg">img</min>
<min minImg="images/14.png" maxImg="images/14.jpg">img</min>
<min minImg="images/15.png" maxImg="images/15.jpg">img</min>
<min minImg="images/16.png" maxImg="images/16.jpg">img</min>
<min minImg="images/17.png" maxImg="images/17.jpg">img</min>
<min minImg="images/18.png" maxImg="images/18.jpg">img</min>
<min minImg="images/19.png" maxImg="images/19.jpg">img</min>
</root>
浙公网安备 33010602011771号