Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 as3幻灯片放映赢得';t载荷_Actionscript 3_Actionscript - Fatal编程技术网

Actionscript 3 as3幻灯片放映赢得';t载荷

Actionscript 3 as3幻灯片放映赢得';t载荷,actionscript-3,actionscript,Actionscript 3,Actionscript,几个月来,这个问题一直使我心烦意乱。我不明白为什么我的网站上有我的背景: 无法正确加载 我知道代码是有效的,因为当我在我的电脑上运行它时,一切都很好。然而,当我将其发布到web上并浏览到我的页面时,幻灯片始终保持空白 下面是我使用的XMLLoader类的 代码如下: var slideshowXMLLoader:XMLLoader = new XMLLoader("slideshow.xml", {autoDispose:true, onComplete:LoadXML}); slidesh

几个月来,这个问题一直使我心烦意乱。我不明白为什么我的网站上有我的背景:

无法正确加载

我知道代码是有效的,因为当我在我的电脑上运行它时,一切都很好。然而,当我将其发布到web上并浏览到我的页面时,幻灯片始终保持空白

下面是我使用的XMLLoader类的

代码如下:

var slideshowXMLLoader:XMLLoader = new XMLLoader("slideshow.xml", {autoDispose:true, onComplete:LoadXML});

slideshowXMLLoader.load();

function LoadXML(e:Event) {
        slideshowXML = new XML(e.target.content);
        parse(slideshowXML);
}

function parse(ssXML:XML) { wallpaperLinks = slideshowXML.img.attributes(); }

function loadFirstPaper() {
    ticker.addEventListener(TimerEvent.TIMER, changePaper);
    TweenMax.to(landing, .5, {alpha:0, ease:Quint.easeOut});
    TweenMax.to(bloomer, 1, {alpha:0, ease:Quint.easeOut});
    loadWallpaper(randomNumber());
}

function loadWallpaper(i:Number) {
    paperCounter = i;
    var loader:Loader = new Loader();
    var req:URLRequest = new URLRequest(wallpaperLinks[paperCounter]);
    loader.load(req);
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, fadeIn);
    }

function fadeIn(e:Event) { 
    if (!isPaused) ticker.start();
    var temp = e.target.content;
    wallpaper.addChild(temp);
    TweenMax.from(temp, fadeTime, {alpha:0, ease:Quint.easeOut});
    }

function changePaper(e:Event) {
    ticker.stop();
    loadWallpaper(randomNumber());
    }

function randomNumber():Number
    { return Math.floor(Math.random() * 53); }

}
slideshow.xml包含以下内容:

<wallpapers>
    <img link="imgs/one.jpg"></img>
    <img link="imgs/two.jpg"></img>
    <img link="imgs/three.jpg"></img>
    <img link="imgs/four.jpg"></img>
    <img link="imgs/five.jpg"></img>
    <img link="imgs/six.jpg"></img>
    <img link="imgs/seven.jpg"></img>
    <img link="imgs/eight.jpg"></img>
    <img link="imgs/nine.jpg"></img>
    <img link="imgs/ten.jpg"></img>
    <img link="imgs/eleven.jpg"></img>
    <img link="imgs/twelve.jpg"></img>
    <img link="imgs/thirteen.jpg"></img>
    <img link="imgs/fourteen.jpg"></img>
    <img link="imgs/fifteen.jpg"></img>
    <img link="imgs/sixteen.jpg"></img>
    <img link="imgs/seventeen.jpg"></img>
    <img link="imgs/eighteen.jpg"></img>
    <img link="imgs/nineteen.jpg"></img>
    <img link="imgs/twenty.jpg"></img>
    <img link="imgs/twentyone.jpg"></img>
    <img link="imgs/twentytwo.jpg"></img>
    <img link="imgs/twentythree.jpg"></img>
    <img link="imgs/twentyfour.jpg"></img>
    <img link="imgs/twentyfive.jpg"></img>
    <img link="imgs/twentysix.jpg"></img>
    <img link="imgs/twentyseven.jpg"></img>
    <img link="imgs/twentyeight.jpg"></img>
    <img link="imgs/twentynine.jpg"></img>
    <img link="imgs/thirty.jpg"></img>
    <img link="imgs/thirtyone.jpg"></img>
    <img link="imgs/thirtytwo.jpg"></img>
    <img link="imgs/thirtythree.jpg"></img>
    <img link="imgs/thirtyfour.jpg"></img>
    <img link="imgs/thirtyfive.jpg"></img>
    <img link="imgs/thirtysix.jpg"></img>
    <img link="imgs/thirtyseven.jpg"></img>
    <img link="imgs/thirtyeight.jpg"></img>
    <img link="imgs/thirtynine.jpg"></img>
    <img link="imgs/fourty.jpg"></img>
    <img link="imgs/fourtyone.jpg"></img>
    <img link="imgs/fourtytwo.jpg"></img>
    <img link="imgs/fourtythree.jpg"></img>
    <img link="imgs/fourtyfour.jpg"></img>
    <img link="imgs/fourtyfive.jpg"></img>
    <img link="imgs/fourtysix.jpg"></img>
    <img link="imgs/fourtyseven.jpg"></img>
    <img link="imgs/fourtyeight.jpg"></img>
    <img link="imgs/fourtynine.jpg"></img>
    <img link="imgs/fifty.jpg"></img>
    <img link="imgs/fiftyone.jpg"></img>
    <img link="imgs/fiftytwo.jpg"></img>
    <img link="imgs/fiftythree.jpg"></img>
</wallpapers>

我曾尝试在我的网站上运行Firebug,除非我也做错了,否则不会出现错误或警告。所以我完全被难住了。有人有什么想法吗


非常感谢您的帮助。

好的,以下是我相信正在发生的事情。我访问了你的站点,它在loadWallpaper()中抛出了一个空引用错误。loadWallpaper()中唯一可以为空的是Wallperlinks。壁纸链接是在XMLLoader完成加载后设置的。您没有显示调用loadFirstPaper()的代码。所以我打赌你有比赛条件。在您的计算机上,XML的本地加载速度比在线加载速度快,因此您不会在本地看到它

要执行此操作,请将您的第一次纸质呼叫移至此处:

function parse(ssXML:XML) { 
    wallpaperLinks = slideshowXML.img.attributes(); 
    loadFirstPaper();
}

我明白了。问题是

var slideshowXMLLoader:XMLLoader = new XMLLoader("slideshow.xml", {autoDispose:true, onComplete:LoadXML});
要么XMLLoader根本没有完成它的工作;或者,我认为更可能的是,onComplete事件是过早触发的。我将上述行替换为:

var slideshowXMLLoader:URLLoader = new URLLoader();
slideshowXMLLoader.addEventListener(Event.COMPLETE, loadXML);
slideshowXMLLoader.load(new URLRequest("slideshow.xml"));
它目前似乎正在按预期工作

我仍然想知道如何使onComplete电话正常工作,所以如果有人有任何建议,我很乐意听到


谢谢。

壁纸链接[paperCounter]的价值是什么?调用
LoadXML
loadFirstPaper
loadWallpaper
的位置/时间?如果你能发布完整的代码,这将是非常有用的。我经常在调试像这样的问题时使用
ExternalInterface.call(“console.info”,“link=“+wallperlinks[paperCounter])
,本地的东西起作用,而通过浏览器远程的东西不起作用。我打赌这就是问题所在。更好的是。。。loadXML。@jidma randomNumber()每次墙纸更改时都会生成一个介于1-53之间的随机值,并且生成的值会在loadWallpaper函数中分配给paperCounter。壁纸链接[paperCounter]是我在上面添加的XML文档中的链接之一。我实现了这个更改,但它似乎没有解决这个问题。我怀疑问题出在这一行:var slideshowXMLLoader:xmloader=newxmloader(“slideshow.xml”,{autoDispose:true,onComplete:LoadXML});在实际加载XMLLoader构造函数之前调用LoadXML。我不知道为什么,但我经常遇到在事件实际完成之前触发onComplete事件的问题,这似乎就是这里发生的情况。为什么onComplete事件会过早触发,我如何修复它?为什么要使用XMLLoader类?是哪一个?可能是因为我以前用过Green Sock的Tweening课程,效果很好。认为他们的加载器类也会很好。。。我很确定他们是这样的,我肯定我只是做错了什么,这使得未完成的事件无法成功。不过,我修复了这个问题(请参见上文)。在green sock的文档中发现了这一点:“当autoDispose为true时,加载程序将在完成后立即被释放(它在调度其完成事件后在内部调用dispose()方法)。这将删除vars对象中定义的所有侦听器(如onComplete、onProgress、onError、onInit)