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

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

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

1.首先as类文件loadPicture.as

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

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. { 
  16.  _mainMenuXML = new XML(e.target.data); 
  17.  var img_:* = _mainMenuXML.imgSrc[0].src; 
  18.  var img_W:* = _mainMenuXML.imgSrc[0]. @ width; 
  19.  var img_H:* = _mainMenuXML.imgSrc[0]. @ height; 
  20.  var img_xExcursion:* = _mainMenuXML.imgSrc[0]. @ xExcursion; 
  21.  var img_yExcursion:* = _mainMenuXML.imgSrc[0]. @ yExcursion; 
  22.  //信息加载 
  23.  var myshow:loadPicture = new loadPicture(img_,img_W,img_H,this.nowLoading); 
  24.  myshow.x = img_xExcursion; 
  25.  myshow.y = img_yExcursion; 
  26.  contentLoader.addChild(myshow); 
  27. } 

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带进度加载图片类的使用,很简单的哦

热门文章推荐

请稍候...

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

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