利用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>

 

posted on 2012-10-15 22:40  笔墨丹青  阅读(429)  评论(0)    收藏  举报

导航