首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Flash >

flash 加载多张图片 as3

2012-02-29 
【求助】flash 加载多张图片 as3我在flash中添加了9个元件a1,a2…a9,我想将数组b里面的9个图片分别添加到这9

【求助】flash 加载多张图片 as3
我在flash中添加了9个元件a1,a2…a9,我想将数组b里面的9个图片分别添加到这9个元件中,应该怎样添加啊,我现在只能添加一个图片,高手指点,谢谢了,最好是能帮我实现。。。AS3

JScript code
System.useCodePage=true;var myXML:XML = new XML();  var XML_URL:String = "slideshow.xml";var myXMLURL:URLRequest = new URLRequest(XML_URL);  var myLoader:URLLoader = new URLLoader(myXMLURL); var loader:Loader;var j:int=0;myLoader.addEventListener(Event.COMPLETE, xmlLoaded);  function xmlLoaded(evtObj:Event) {    myXML = XML(myLoader.data);    var a=myXML.data[0].bbx;    var b:Array =a.split(' ');        loader=new Loader();    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loading);    loader.load(new URLRequest(b[j])); //外部加载图片            function loading(event:Event)        {        a1.addChild(loader.content);        }}


[解决办法]
参考代码
JScript code
package {    import flash.system.System;    import flash.display.Loader;    import flash.display.LoaderInfo;    import flash.display.Sprite;    import flash.display.DisplayObject;    import flash.net.URLLoader;    import flash.net.URLRequest;    import flash.events.Event;    import flash.events.IOErrorEvent;    import flash.events.MouseEvent;    import flash.text.TextField;    import flash.text.TextFormat;    public class LoadA extends Sprite {        private var mainpic:Sprite;//存放主图        private var thumbnail:Sprite;//存放缩略图        private var lastx:int=0;        private var lasty:int=0;        private var lastw:int=0;        private var lasth:int=0;        public function LoadA() {            System.useCodePage=true;            var bg:Sprite=new Sprite();            bg.graphics.beginFill(0xff0000,0.75);            bg.graphics.drawRect(0,0,100,300);            bg.graphics.endFill();            bg.x=290;            mainpic=new Sprite();            thumbnail=new Sprite();            thumbnail.x=300;            this.addChild(mainpic);            this.addChild(bg);            this.addChild(thumbnail);            this.addEventListener(Event.ENTER_FRAME,movingThumbnail);            loadPicListXml();        }        private function movingThumbnail(evt:Event):void {            var py:int=Math.floor((stage.mouseY-stage.stageHeight/2)/15);            if (py<0) {                if (thumbnail.y<0) {                    thumbnail.y-=py;                    if (thumbnail.y>0) {                        thumbnail.y=0;                    }                }            }            if (py>0) {                if (thumbnail.y>stage.stageHeight-thumbnail.height) {                    thumbnail.y-=py;                    if (thumbnail.y<stage.stageHeight-thumbnail.height) {                        thumbnail.y=stage.stageHeight-thumbnail.height;                    }                }            }        }        private function showPicture(evt:MouseEvent):void {            var sprite:Sprite=Sprite(evt.target);            var holder:Sprite=Sprite(sprite.parent);            if (mainpic==holder) {                thumbnail.addChild(sprite);                sprite.x=lastx;                sprite.y=lasty;                sprite.width=lastw;                sprite.height=lasth;            } else {                if (mainpic.numChildren>0) {                    var s:Sprite=Sprite(mainpic.getChildAt(0));                    s.x=lastx;                    s.y=lasty;                    s.width=lastw;                    s.height=lasth;                    thumbnail.addChild(s);                }                lastx=sprite.x;                lasty=sprite.y;                lastw=sprite.width;                lasth=sprite.height;                mainpic.addChild(sprite);                sprite.width=400;                sprite.height=Math.floor(400*lasth/lastw);                if (sprite.height>300) {                    sprite.height=300;                    sprite.width=Math.floor(300*lastw/lasth);                }                sprite.x=(stage.stageWidth-sprite.width)/2;                sprite.y=(stage.stageHeight-sprite.height)/2;            }        }        private function loadPicListXml():void {            var xmlfile:URLRequest=new URLRequest("http://www.1pao.com/swf/edu/piclist.xml");            var xmlloader:URLLoader=new URLLoader(xmlfile);            xmlloader.addEventListener(Event.COMPLETE,xmlloaded);            xmlloader.addEventListener(IOErrorEvent.IO_ERROR,xmlioerror);        }        private function xmlloaded(evt:Event):void {            var xmlloader:URLLoader=URLLoader(evt.target);            if (xmlloader.data) {                try {                    var piclist:XML=XML(xmlloader.data);                    var pictures:XMLList=piclist.pic;                    for (var i:uint=0; i<pictures.length(); i++) {                        var picurl:String=pictures[i].url;                        var picname:String=pictures[i].name;                        var sprite:Sprite=new Sprite();                        sprite.name="sprite_pic"+i;                        var picloader:Loader=new Loader();                        var picfile:URLRequest=new URLRequest(picurl);                        picloader.contentLoaderInfo.addEventListener(Event.COMPLETE, picloaded);                        picloader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,picloaderror);                        picloader.load(picfile);                        sprite.addChild(picloader);                    }                } catch ($e) {                    ShowTipInfo($e.message);                }            } else {                ShowTipInfo("XML文件没有数据");            }        }        private function picloaded(evt:Event):void {            var loader:Loader=Loader(evt.target.loader);            var sprite:Sprite=Sprite(loader.parent);            var w:Number=loader.width;            var h:Number=loader.height;            loader.width=80;            loader.height=Math.floor(80*h/w);            if (loader.height>60) {                loader.height=60;                loader.width=Math.floor(60*w/h);            }            sprite.graphics.beginFill(0x000000);            sprite.graphics.drawRect(0,0,80,loader.height+1);            sprite.graphics.endFill();            sprite.y=thumbnail.height;            sprite.buttonMode=true;            sprite.mouseChildren=false;            sprite.addEventListener(MouseEvent.CLICK,showPicture);            thumbnail.addChild(sprite);        }        private function picloaderror(evt:IOErrorEvent):void {            ShowTipInfo(evt.text);        }        private function xmlioerror(evt:IOErrorEvent):void {            ShowTipInfo("XML文件读取错误!");        }        private function ShowTipInfo(tip:String):void {            var s:Sprite=new Sprite();            s.name="tip";            this.addChild(s);            //显示提示信息            var fmt:TextFormat=new TextFormat();            fmt.color=0xffff00;            var txt:TextField=new TextField();            txt.defaultTextFormat=fmt;            txt.multiline=true;            txt.wordWrap=true;            txt.mouseEnabled=false;            txt.width=200;            txt.autoSize="left";            txt.x=20;            txt.y=30;            txt.text=tip;            s.addChild(txt);            //为提示信息添加边框            s.graphics.lineStyle(2,0xffffff);            s.graphics.beginFill(0xffff00,0.25);            s.graphics.drawRect(0,0,240,txt.height+40);            s.graphics.endFill();            //提示信息的标题栏            s.graphics.lineStyle(1,0x000000);            s.graphics.beginFill(0x000000,0.45);            s.graphics.drawRect(1,2,237,20);            s.graphics.endFill();            s.graphics.lineStyle(1,0xffffff,0.55);            s.graphics.moveTo(1,22);            s.graphics.lineTo(239,22);            //调整坐标,全提示框居中显示            s.x=(stage.stageWidth-s.width)/2;            s.y=(stage.stageHeight-s.height)/2;            //模拟关闭按钮            var c:Sprite=new Sprite();            c.name="close";            c.buttonMode=true;            c.graphics.lineStyle(3,0xff0000,1);            c.graphics.lineTo(9,9);            c.graphics.moveTo(0,9);            c.graphics.lineTo(9,0);            c.x=s.width-c.width-4;            c.y=6;            s.addChild(c);            s.addEventListener(MouseEvent.CLICK,closetip);        }        private function closetip(evt:MouseEvent):void {            var obj:DisplayObject=DisplayObject(evt.target);            if ("close"==obj.name) {                var s:Sprite=Sprite(evt.currentTarget);                s.removeEventListener(MouseEvent.CLICK,closetip);                this.removeChild(s);            }        }    }} 


[解决办法]
XML文件

XML code
<?xml version="1.0" encoding="gb2312" ?><picList>    <pic>        <url>pic1.jpg</url>        <name>测试图片一</name>    </pic>    <pic>        <url>pic2.jpg</url>        <name>测试图片二</name>    </pic>    <pic>        <url>pic3.jpg</url>        <name>测试图片三</name>    </pic>    <pic>        <url>pic4.jpg</url>        <name>测试图片四</name>    </pic>    <pic>        <url>pic5.jpg</url>        <name>测试图片五</name>    </pic>    <pic>        <url>pic6.jpg</url>        <name>测试图片六</name>    </pic>    <pic>        <url>pic7.jpg</url>        <name>测试图片七</name>    </pic>    <pic>        <url>pic8.jpg</url>        <name>测试图片八</name>    </pic>    <pic>        <url>pic9.jpg</url>        <name>测试图片九</name>    </pic>    <pic>        <url>pic10.jpg</url>        <name>测试图片十</name>    </pic></picList> 

热点排行