用flash调用xml文件里的图片,每个图片都带有链接,代码怎么写
2个回答
展开全部
假设xml格式
<xml>
<pic url="图片地址" linkurl="连接地址"。。。>
</pic>
</xml>
//图片容器
public class PicClass extends Sprite{
private var link_url:String;
private var pic_url:String;
private var loader:Loader;
public function PicClass(){
loader = new Loader();
addChild(loader);
}
public function init(xml:XML):void{
this. pic_url = xml.@url;
this.link_ulr = xml.@linkurl;
loader.load(this.pic_url);
}
}
//主类
public class Main extends Sprite{
public function Main():void{
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onLoadedxml);
loader.load(new URLRequest("xml地址"));
}
private function onLoadedxml(evt:Event):void{
var xml:XML = new XML(evt.target.data);
for(var i:int = 0;i < xml.pic.length();i ++){
var pic:PicClass = new PicClass();
pic.init(xml.pic[i]);
pic.x = i*(pic.width + 10);
addChild(pic);
}
}
}
简略介绍:通过主类加载xml,通过xml创建图片,并通过图片容器类初始化内容
<xml>
<pic url="图片地址" linkurl="连接地址"。。。>
</pic>
</xml>
//图片容器
public class PicClass extends Sprite{
private var link_url:String;
private var pic_url:String;
private var loader:Loader;
public function PicClass(){
loader = new Loader();
addChild(loader);
}
public function init(xml:XML):void{
this. pic_url = xml.@url;
this.link_ulr = xml.@linkurl;
loader.load(this.pic_url);
}
}
//主类
public class Main extends Sprite{
public function Main():void{
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onLoadedxml);
loader.load(new URLRequest("xml地址"));
}
private function onLoadedxml(evt:Event):void{
var xml:XML = new XML(evt.target.data);
for(var i:int = 0;i < xml.pic.length();i ++){
var pic:PicClass = new PicClass();
pic.init(xml.pic[i]);
pic.x = i*(pic.width + 10);
addChild(pic);
}
}
}
简略介绍:通过主类加载xml,通过xml创建图片,并通过图片容器类初始化内容
追问
您好,我不太懂,在这个基础上,在flash里面怎么写语法,让一个页面有三张图,点击都有链接,然后过一会又跳出三张图点击都有链接?
追答
如果是定时刷新的话,可以加入timer定时刷新。。上面的已经把所有的图片加到舞台上了,你可根据具体情况调整。。
timer刷新简单介绍下了:
因为要时刻刷新图片,所以建议将图片放到一个指定的容器里
var piccontainer:Sprite = new Sprite();//图片容器
var timer:Timer = new Timer(10000); //每10秒刷新一次
timer.addEventListener(TimerEvent.TIMER, onTimer);
//更新图片
function onTimer(evt:TimerEvent):void{
while(piccontainer.numChilren > 0){
piccontainer.removeChildAt(0);
}//清空列表
updatePic();
}
//刷新容器,
function updatePic():void{
这里就不一一写了,简单说下过程,这里需要记录下图片的总张数,在之前加载的地方就可以知道了,然后记录下当前加入到聊表中最后一个index值,然后以此读取图片添加到piccontainer中就可以了
}
参考资料: //
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询