繁体   English   中英

使用as3的图像的计时器更新

[英]Timer Update for images using as3

我正在尝试通过计时器更新图像。 我一次只能上传一张图片。 如果我要删除图像并上传另一张图像。 然后,我的应用应实时更新为最新图像。 由于某种原因,它没有读取我的newUpdate函数。 如果XML文件不匹配,“ newUpdate”功能应比较xml,然后重新加载图像。 我需要有关更新功能的帮助。 也许我对更新功能的逻辑是错误的,任何帮助将不胜感激。 谢谢

var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML;
var imageList:XMLList;
var imageLoader:Loader = new Loader();
var imageIndex:uint = 0;
var child:DisplayObject;
var timer:Timer =new Timer(3000,0);
var myImageHolder = new ImageHolder();

addChild(myImageHolder);
myImageHolder.x= 0;
myImageHolder.y= 0;

function newUpdate(e:TimerEvent) {
      if (imageList != xmlData.sectionItem.file) {
    newScreensaver();
    } 
}

function newScreensaver() {
xmlLoader.load(new URLRequest(path +"metv.xml"));
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
addChild(videoTxt);
}

function xmlLoaded(e:Event) {
xmlData = new XML ( e.target.data);
imageList = xmlData.sectionItem.file;
loadImage(path + imageList[0]);
}

function imageLoaded(e:Event){
child = myImageHolder.addChild(imageLoader);
}

function loadImage(path:String){
imageLoader.load(new URLRequest( path));
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,imageLoaded);
}

我认为您没有给出足够的上下文来回答这个问题,因为该行:

if (imageList != xmlData.sectionItem.file)

由于以下原因,永远不会屈服:

imageList = xmlData.sectionItem.file;

请说明加载原始XML数据之后的什么时候以及为什么xmlData或imageList会更改值。

...也许是问题所在?

第一次, imageListxmlData均为null 他们都没有实例化未分配。 因此,此时两者相等,由于您的条件, newScreensaver()将不会执行。

我的建议是首先加载xml ,一旦加载完成,就开始加载图像并保存。 如果这样做,您将重用( clone )它,而不必每次都等待图像加载。 加载完所有图像后,启动计时器。 如果图像数量更多,则在加载几张(例如3或5)图像后,再启动计时器。

注意:假设您拥有一个包含所有图像名称(例如5个图像名称/路径)的xml文件,并重复一遍又一遍地加载相同的图像。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM