2016 - 2024

感恩一路有你

如何通过XML加载外部图片

浏览量:4125 时间:2024-08-19 14:48:37 作者:采采

今天要实现的效果是,从外部的XML中读取四张图片,分别放到舞台上建立好的四个容器中,并改变大小适应容器的大小。

首先我们新建一个空白的Flash文件。

接着我们新建4个注册点在左上角的影片剪辑,填充色未50%黑色,最好大小都不相同,给四个容器分别取名字为mc0、mc1、mc2、mc3,并且写出他们要加载的图片内容名字,以便于我们明显地观察加载是否按照既定的顺序进行。如图所示,我们打算加载四张动物图片进来,所以要先找四张动物图片到硬盘某个位置存好。为了方便起见,我就放在fla本地目录下,这个过程自己完成,大小不限。

下面我们写一个XML文件,用来保存四张图片信息。我们将通过读取这个XML文件,解析其中的图片数据,然后通过其中的图片路径加载进来到四个容器中。XML如下:

lt;?xml version"1.0" encoding"utf-8"?gt;
lt;datagt;
  lt;pictures amount"4"gt;
    lt;pathgt;;/pathgt;
    lt;pathgt;;/pathgt;
    lt;pathgt;;/pathgt;
    lt;pathgt;;/pathgt;
  lt;/picturesgt;
lt;/datagt;

我们把图片保存在FLA文件所在位置的pic目录下。

接下来我们放一个按钮在舞台上,上面有“加载”两个字,取实例名为btnLoad。

然后我们写一个加载函数:loadPic(path:String, cup:Sprite, index:int):void。这个函数的功能是把path路径的图片加载到cup容器中去,index是加载顺序编号,在连续的加载过程中,这个编号往往是很有用的。

//加载图片到容器中
function loadPic(path:String, cup:Sprite, index:int):void {
  var mLoader:Loader  new Loader();
    "loader_"   index;
  mLoader.load(new URLRequest(path));
  (, completeLoad);
}
function completeLoad(e:Event):void {
  var targetLoader:Loader   as Loader;
  var index:int  int((7));
  var getPic:Bitmap  Bitmap();
  var currentCup:Sprite  this["mc"   index] as Sprite;
  getPic.width  currentCup.width;
  getPic.height  currentCup.height;
  (getPic);
}

我们给mLoader一个name属性,作用是在后面判断到底加载的是哪个容器。

然后我们写加载解析XML文件数据的函数:

//加载XML数据
function loadXMLData(path:String):void {
  var xLoader:URLLoader  new URLLoader();
  (, completeLoadData);
  xLoader.load(new URLRequest(path));
}
function completeLoadData(e:Event):void {
  var mXML:XML  XML();
  var len:int  int(@amount);
  for(var i:int  0; i < len; i  ) {
    var mPath:String  [i];
    loadPic(mPath, this["mc"   i], i);
  }
}

四个图片的路径在读取出来的时候便同时加载了图片。

最后我们给按钮btnLoad加上加载图片的功能,按钮来衔接完成读取XML数据和图片加载的功能。

addMouseEvent();
function addMouseEvent():void {
  (, loadPicInfo);
}
function loadPicInfo(e:MouseEvent):void {
  loadXMLData("picData.xml");
}

单击按钮,便发现四张图加载进来,并且充满了四个容器。制作完毕!

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。