Flash CS4图像推子问题
我试图为即将到来的网站构建一个flash组件,我必须从XML文件中读取数据,并以5秒的间隔显示这些数据 - 我想你可以称它为图像推子/内容推子或其他类似的:-)
在我发布我的代码之前,我想告诉你,我的AS3体验非常有限,因为我一直使用Silverlight(C#)来代替。
无论如何,这是我的代码:
import fl.transitions.Tween;
import fl.transitions.easing.*;
// FIELDS
var references:Array = new Array();
var counter:int = 0;
var loader:URLLoader = new URLLoader();
var timer:Timer = new Timer(2000, 0);
var image:Bitmap = new Bitmap();
var result:XML;
var ref:MovieClip;
// EVENTHANDLERS
loader.addEventListener(Event.COMPLETE, completeHandler);
timer.addEventListener(TimerEvent.TIMER, runTimer);
// REQUEST XML FROM URL
var request:URLRequest = new URLRequest("navigationReferences.xml");
// TRY LOAD XML FROM URL
try {
loader.load(request);
}
catch(error:Error) {
trace("XML not available");
}
// LOAD XML COMPLETED
function completeHandler(event:Event):void {
if(event.target.data != null) {
result = new XML(event.target.data);
parseXml();
} else {
trace("XML not available");
}
}
// PARSE XML, BUILD NEW MOVIECLIP AND STORE IT
function parseXml():void {
for (var i:Number=0; i<=result.children().length()-1;i++) {
ref = new Reference();
ref.txtTitle.text = result.navigationReference[i].@title;
loadImage(result.navigationReference[i].@image);
ref.mc_imageHolder.addChild(image);
references.push(ref);
}
timer.start();
}
function runTimer(event:TimerEvent):void {
if(counter != references.length) {
addChild(references[counter]);
counter++;
}
else {
counter = 0;
}
}
// IMAGE LOADER
function loadImage(path:String):void {
var loader:Loader = new Loader();
var req:URLRequest = new URLRequest(path);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.load(req);
}
// IMAGE LOAD COMPLETED
function onComplete(e:Event):void {
image = e.target.loader.content as Bitmap;
}
这段代码有几个问题:
当我试图追踪运行代码时实际发生的事情时,它完美地通过for循环运行,并且它似乎也附加了图像 - 但是,它再次通过循环遍历我的XML文件中的最后一个子节点,输出将如下所示:
XmlChildNode1 - image object attached
XmlChildNode2 - image object attached
XmlChildNode3 - image object attached
XmlChildNode3
XmlChildNode3
XmlChildNode3
另外,当我运行代码时,计时器完成事件实际上会从我的数组中的MovieClip输出正确的数据,除了图像?
纠正我,如果我在这里错了,但它似乎是一个很大的工作,只是为了从XML文件读取数据的图像推子? 任何人都知道是否有更简单,更优雅的方式来做我想做的事情? 或者我的方法实际上是对的?
提前感谢!
我终于找到了解决办法。 我只是简单地将图像加载器放在for循环中:)不知道它是否是最佳实践,但是看到它发生在客户端时,它应该不是真正的问题。
链接地址: http://www.djcxy.com/p/17851.html