[AS3]AS3运用XML加载多张图片代码示例
[AS3]AS3运用XML加载多张图片代码示例 ,先加载XML文件,再加载所有图片,然后,通过几个按钮来显示单张图片。其中监听动态传参的方法,可以值得学习
Load.as文件内容:
- package
- {
- import flash.display.Loader;
- import flash.display.Sprite;
- import flash.display.MovieClip;
- import flash.net.URLLoader;
- import flash.net.URLRequest;
- import flash.events.*;
- import flash.text.TextField;
- import flash.display.LoaderInfo;
- import flash.text.TextFieldAutoSize;
- import flash.system.System;
- import flash.display.SimpleButton;
- /**
- * ...
- * 先加载XML文件,再加载所有图片,然后,通过几个按钮来显示单张图片
其中监听动态传参的方法,可以值得学习。- 本人:Nothing(在路上)
- */
- public class Load extends Sprite
- {
- //xml类
- private var my_xml:XML;
- //URLRequest类
- private var my_URLRequest:URLRequest;
- //URLLoader类
- private var my_URLLoader:URLLoader;
- //加载图片类
- private var my_Loader:Loader;
- //初始化暂存图片信息类
- private var my_pic_Arr:Array = [];
- //保存加载完成后得到的图片
- private var imgLoadArr:Array=new Array();
- //初始化TextField
- private var _textField:TextField;
- //XML文件路径
- private var _xmllist:String="man.xml";
- //声明存放动态图片的容器
- private var picContent:Sprite;
- public function Load()
- {
- System.useCodePage=true;
- var _xmllist:String="man.xml";
- my_URLRequest = new URLRequest(_xmllist);
- my_URLLoader = new URLLoader();
- my_URLLoader.load(my_URLRequest)
- my_URLLoader.addEventListener(Event.COMPLETE,xmlLoaded)
- picContent=new Sprite();
- _textField=new TextField();
- addChild(_textField);
- _textField.autoSize=TextFieldAutoSize.LEFT;
- }
- private function createBtn(i:int):void//创建三个按钮
- {
- var spr:Sprite=new Sprite();
- spr.graphics.beginFill(0xff0000);
- spr.graphics.drawRect(0, 0, 50, 20);
- spr.graphics.endFill();
- spr.x=(i)*60+40;
- spr.y=360;
- addChild(spr);
- spr.addEventListener(MouseEvent.CLICK,showPic(i));
- }
- private function showPic(i:int):Function//在picContent中显示图片
- {
- var fun:Function=function(e:MouseEvent){
- if(picContent.numChildren>0)
- {
- picContent.removeChildAt(0);
- }
- picContent.addChild(imgLoadArr[i]);
- picContent.x=210;
- picContent.y=50;
- addChild(picContent);
- }
- return fun;
- }
- //===加载XML文件,将XML信息写进数组中======
- private function xmlLoaded(e:Event):void
- {
- my_xml = new XML(my_URLLoader.data);
- for (var i:uint = 0; i < my_xml.img.length(); i++ )
- {
- var my_Obj:Object = new Object();
- my_Obj.imgsrc = my_xml.img[i].@src;
- my_Obj.swfsrc = my_xml.img[i].@swf;
- my_Obj.textsrc = my_xml.img[i];
- my_pic_Arr.push(my_Obj);
- }
- imgLoaded(0)
- }
- //=========加载图片============
- private function imgLoaded(a:int):void
- {
- var my_Loader:Loader = new Loader();
- my_Loader.load(new URLRequest(my_pic_Arr[a].imgsrc));
- trace(my_pic_Arr[a].imgsrc);
- my_Loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,onProgress(a));
- my_Loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoaderComplete(a));
- }
- private function onProgress(i:int):Function //进度监听处理
- {
- var fun=function(e:ProgressEvent)
- {
- var loadtotal:uint=e.bytesTotal;
- var loaded:uint=e.bytesLoaded;
- var perc:String=Math.round((loaded/loadtotal)*100)+"%";
- _textField.htmlText=my_pic_Arr[i].textsrc+" 加载中…………"+perc;
- }
- return fun;
- }
- private function onLoaderComplete(i:int):Function//加载完成监听处理
- {
- var fun:Function=function(e:Event)
- {
- imgLoadArr[i]=e.target.content;
- if(i<my_pic_Arr.length-1)
- {
- i++;
- imgLoaded(i);
- }
- else
- {
- for(var j:int=0;j<8;j++)
- {
- createBtn(j);
- }
- _textField.htmlText="加载完成--Nothing--单击红色按钮查看图片";
- }
- }
- return fun;
- }
- }
- }
先加载XML文件,再加载所有图片,然后,通过几个按钮来显示单张图片。其中监听动态传参的方法,可以值得学习。man.xml文件内容:
- <?xml version="1.0" encoding="utf-8"?>
- <man>
- <img src="MAN/1.png" mce_src="MAN/1.png">图片资源1</img>
- <img src="MAN/2.png" mce_src="MAN/2.png">图片资源2</img>
- <img src="MAN/3.png" mce_src="MAN/3.png">图片资源3</img>
- <img src="MAN/4.png" mce_src="MAN/4.png">图片资源4</img>
- <img src="MAN/5.png" mce_src="MAN/5.png">图片资源5</img>
- <img src="MAN/6.png" mce_src="MAN/6.png">图片资源6</img>
- <img src="MAN/7.png" mce_src="MAN/7.png">图片资源7</img>
- <img src="MAN/8.png" mce_src="MAN/8.png">图片资源8</img>
- </man>
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例
请稍候...