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