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

[AS3]AS3加载XML带进度加载图片类的使用

时间:2013-07-17 09:16CuPlayer.com
[AS3]AS3加载XML带进度加载图片类的使用,AS3加载XML,AS3加载图片

1.首先as类文件loadPicture.as

  1. package 
  2.  import flash.net.*; 
  3.  import flash.display.*; 
  4.  import flash.events.Event; 
  5.  import flash.events.TimerEvent; 
  6.  import flash.events.ProgressEvent; 
  7.  import flash.utils.Timer; 
  8.  import fl.transitions.easing.*; 
  9.  import fl.transitions.*; 
  10.  
  11.  /* 
  12. http://www.cuplayer.com 
  13.  */ 
  14.  
  15.  public class loadPicture extends MovieClip 
  16.  { 
  17.  
  18.   private var picLoader:Loader = new Loader(); 
  19.   private var timer:Timer = new Timer(30,10); 
  20.   private var imgWnow:Number; 
  21.   private var imgHnow:Number; 
  22.   private var loadMC:MovieClip; 
  23.  
  24.   public function loadPicture(picUrl:String,imgW:Number,imgH:Number,_loadMC:MovieClip) 
  25.   { 
  26.  
  27.  
  28.     
  29.    loadMC = _loadMC
  30.    loadMC.visible = true
  31.     
  32.    imgWimgWnow = imgW; 
  33.    imgHimgHnow = imgH; 
  34.     
  35.  
  36.    //图片在舞台上显示的位置 
  37.    picLoader.x = 100
  38.    picLoader.y = 70
  39.    var urlReq:URLRequest = new URLRequest(picUrl); 
  40.    picLoader.load(urlReq); 
  41.    picLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoader); 
  42.    picLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, imgLoading); 
  43.  
  44.   } 
  45.  
  46.   //加载完成; 
  47.   private function imgLoader(evt:Event):void 
  48.   { 
  49.  
  50.    //图片高宽等属性 
  51.    picLoader.width = imgWnow
  52.    picLoader.height = imgHnow
  53.    picLoader.alpha = 0
  54.  
  55.    //图片添加到舞台 
  56.    addChild(picLoader); 
  57.  
  58.    imgAlphaTimer(); 
  59.  
  60.    var myTween:Tween = new Tween(picLoader,"alpha",Strong.easeInOut,0,1,0.7,true); 
  61.    loadMC.visible = false
  62.  
  63.   } 
  64.  
  65.   //加载中 
  66.   private function imgLoading(evt:ProgressEvent):void 
  67.   { 
  68.    var _data:int = evt.bytesLoaded / evt.bytesTotal * 100; 
  69.    //loading_txt.text = _data + "%"; 
  70.  
  71.   } 
  72.  
  73.  
  74.   //===图片渐显效果 
  75.   private function imgAlphaTimer():void 
  76.   { 
  77.  
  78.    timer.addEventListener(TimerEvent.TIMER,imgAlphaTimerEvent); 
  79.    timer.start(); 
  80.   } 
  81.   private function imgAlphaTimerEvent(evt:TimerEvent):void 
  82.   { 
  83.    picLoader.alpha +=  0.1; 
  84.  
  85.    if (picLoader.alpha > 0.9) 
  86.    { 
  87.     picLoader.alpha = 1
  88.     evt.target.stop(); 
  89.    } 
  90.   } 
  91.   //==========================end=== 
  92.  
  93.  } 

2.在FLA文件某帧插入代码,并且FLA文件包含两个剪辑元件,名字为nowLoading(进度条),contentLoader(加载图片的容器)

  1. import flash.events.Event; 
  2. import loadPicture; 
  3.  
  4.  
  5. //加载信息 
  6. var _mainMenuXML:XML; 
  7. var XMLLoader:URLLoader; 
  8. var XMLURL:URLRequest; 
  9.  
  10.  XMLURL = new URLRequest("c945_bg.xml"); 
  11.  XMLLoader = new URLLoader(); 
  12.  XMLLoader.load(XMLURL); 
  13.  XMLLoader.addEventListener("complete",loadedXML); 
  14. function loadedXML(e:Event) 
  15.  _mainMenuXML = new XML(e.target.data); 
  16.  var img_:* = _mainMenuXML.imgSrc[0].src; 
  17.  var img_W:* = _mainMenuXML.imgSrc[0]. @ width; 
  18.  var img_H:* = _mainMenuXML.imgSrc[0]. @ height; 
  19.  var img_xExcursion:* = _mainMenuXML.imgSrc[0]. @ xExcursion; 
  20.  var img_yExcursion:* = _mainMenuXML.imgSrc[0]. @ yExcursion; 
  21.  //信息加载 
  22.  var myshow:loadPicture = new loadPicture(img_,img_W,img_H,this.nowLoading); 
  23.  myshow.x = img_xExcursion
  24.  myshow.y = img_yExcursion
  25.  contentLoader.addChild(myshow); 

3.contect.xml文件代码

  1. <?xml version="1.0" encoding="utf-8" ?> 
  2. <main> 
  3. <imgSrc width="200" height="200"> 
  4.    <src>img/1.jpg</src> 
  5. </imgSrc> 
  6.  <imgSrc width="200" height="200"> 
  7.    <src>img/2.jpg</src> 
  8. </imgSrc> 
  9. <imgSrc width="200" height="200"> 
  10.    <src>img/3.jpg</src> 
  11. </imgSrc> 
  12. </main> 

4.OK了,这样就完成一个XML带进度加载图片类的使用,很简单的哦

热门文章推荐

请稍候...

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

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