·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3.0用Loader同时下载多张图片的源代码示例

时间:2013-04-09 20:43blog.163.com
[AS3]as3.0用Loader同时下载多张图片的源代码示例,as3与Loader,as3加载,as3加载图片

[AS3]as3.0用Loader同时下载多张图片的源代码示例,as3与Loader,as3加载,as3加载图片

  1. package { 
  2. import flash.display.Sprite; 
  3. import flash.events.Event; 
  4. import flash.net.URLRequest; 
  5. import flash.display.Loader; 
  6. import flash.events.ProgressEvent; 
  7. import flash.display.Bitmap; 
  8. import fl.controls.Button; 
  9. import flash.events.MouseEvent; 
  10. import flash.utils.getQualifiedClassName; 
  11. import flash.utils.getDefinitionByName; 
  12. import flash.utils.Timer; 
  13. import flash.events.TimerEvent; 
  14.  
  15. public class PicMc extends Sprite { 
  16.    private var loaderArr:Array; 
  17.    private var urlArr:Array; 
  18.    private var numPic:int=20
  19.    private var picArr:Array; 
  20.    private var pagePic:int=0
  21.    private var scene:Sprite; 
  22.    private var bigDelay:Timer; 
  23.    private var bigPic:Sprite; 
  24.    public function PicMc():void { 
  25.     init(); 
  26.    } 
  27.    private function init():void { 
  28.     
  29.     bigDelay=new Timer(1500,1); 
  30.     bigDelay.addEventListener(TimerEvent.TIMER_COMPLETE,endDelay); 
  31.  
  32.     urlArr=new Array(); 
  33.     var url:URLRequest; 
  34.     var path:String="images\\"
  35.     for (var i:uint=0; i <numPic; i++) { 
  36.      pathpath=path + detect(i + 1) + ".jpg"; 
  37.      url=new URLRequest(path); 
  38.      urlArr.push(url); 
  39.      path="images\\"
  40.     } 
  41.     showPage(); 
  42.     for (i=0; i<Math.ceil(numPic/12); i++) { 
  43.      var btn:Button=new Button(); 
  44.      btn.x=i*20; 
  45.      btn.y=310
  46.      btn.width=18
  47.      btn.label=(i+1).toString(); 
  48.      addChild(btn); 
  49.      btn.addEventListener(MouseEvent.MOUSE_DOWN,pageDown); 
  50.     } 
  51.    } 
  52.    //CuPlayer.com提示:分页 
  53.    private function pageDown(e:MouseEvent):void { 
  54.  
  55.     pagePic=int(e.target.label)-1; 
  56.     removeChild(scene); 
  57.     showPage(); 
  58.    } 
  59.    private function showPage() { 
  60.     scene=new Sprite(); 
  61.     addChild(scene); 
  62.     loaderArr=new Array ; 
  63.     var loader:Loader; 
  64.  
  65.     var couPic:int=(numPic-pagePic*12)>12?12:(numPic-pagePic*12); 
  66.     for (var i:uint=0; i < couPic; i++) { 
  67.      loader=new Loader ; 
  68.      loader.load(urlArr[pagePic*12+i]); 
  69.      loaderArr.push(loader); 
  70.      loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete); 
  71.     } 
  72.     picArr=new Array ; 
  73.     for (i=0; i < couPic; i++) { 
  74.      var picCon:Sprite=new Sprite; 
  75.      picCon.x=i % 4 * 100; 
  76.      picCon.y=int(i / 4) * 100; 
  77.      picCon.graphics.lineStyle(1,0xff0000); 
  78.      picCon.graphics.beginFill(0x00ffff); 
  79.      picCon.graphics.drawRect(0,0,100,100); 
  80.      picCon.graphics.endFill(); 
  81.      
  82.      scene.addChild(picCon); 
  83.      picArr.push(picCon); 
  84.     } 
  85.    } 
  86.    /* 
  87.    private function onOpen(e:Event):void { 
  88.  
  89.    } 
  90.    */ 
  91.    private function onComplete(e:Event):void { 
  92.     var i:int=0
  93.     while (loaderArr[i] != e.target.loader) { 
  94.      i++; 
  95.     } 
  96.     picArr[i].graphics.clear(); 
  97.     var img:Bitmap=e.target.content; 
  98.     img.scaleX=95/img.width; 
  99.     img.scaleY=95/img.height; 
  100.     picArr[i].addChild(img); 
  101.     picArr[i].addEventListener(MouseEvent.MOUSE_DOWN,picDown); 
  102.     scene.addChild(picArr[i]); 
  103.    } 
  104.    private function picDown(e:MouseEvent):void{ 
  105.     var i:int=0
  106.     while (picArr[i] != e.target) { 
  107.      i++; 
  108.     } 
  109.     var loader:Loader=new Loader(); 
  110.     loader.load(urlArr[i]); 
  111.     loader.contentLoaderInfo.addEventListener(Event.COMPLETE,bigComplete); 
  112.     
  113.    } 
  114.    private function bigComplete(e:Event):void{ 
  115.     bigPic=new Sprite(); 
  116.     bigPic.addChild(e.target.content); 
  117.     bigPic.x=(stage.stageWidth-bigPic.width)/2; 
  118.     bigPic.y=(stage.stageHeight-bigPic.height)/2; 
  119.     addChild(bigPic); 
  120.     bigDelay.start(); 
  121.    } 
  122.    private function endDelay(e:TimerEvent):void{ 
  123.     removeChild(bigPic); 
  124.    } 
  125.    //CuPlayer.com提示:检测文件名长度 
  126.    private function detect(num:int,len:int=2):String { 
  127.     var numnumStr:String=num.toString(); 
  128.     while (numStr.length < len) { 
  129.      numStr="0" + numStr; 
  130.     } 
  131.     return numStr; 
  132.    } 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器