调用函数后,Flash播放器停留在第1帧

时间:2014-04-25 19:23:35

标签: actionscript-3 flash flash-cs6

我正在使用闪存CS6并且我遇到了麻烦:在调用函数后,播放器在第1帧冻结。这在Ctrl + ENTER预览期间不会发生,但是当我播放.swf文件时(使用Flash播放器或在网络浏览器上打开它,无关紧要)是问题何时开始。

这是代码:

import flash.display.MovieClip;
var code:int = 0
var temp:int = 0; 
var _xmlURL:String = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid=368335%20and%20u=%27c%27";
var _xmlData:XML;

function loadXML(xmlURL:String):void {
    var loader:URLLoader = new URLLoader();
    var request:URLRequest = new URLRequest(_xmlURL);
    loader.load(request);
    loader.addEventListener(Event.COMPLETE, loadData);
}

function loadData(event:Event):void{
    _xmlData = new XML(event.currentTarget.data);

    var dataG:XMLList = _xmlData.results.channel.item.elements();

    code = dataG[5].@code;
    temp = dataG[5].@temp;

    trace(code);
    trace(temp);
}

loadXML(_xmlURL);

我不习惯使用as3,我不知道我是否正确使用它。

如您所见,代码使用“URLLoader”及其方法“.load”读取外部xml文件。

感谢您的帮助。

BTW,我已经尝试在其他PC(xp,seven,8)中播放已发布的“.swf”文件,其中一个最近安装了Windows(7个)。

1 个答案:

答案 0 :(得分:0)

最有可能(因为您正在从互联网上加载资源,并且在测试时它可以正常工作),这与您的应用程序的安全设置有关。

转到发布设置file -> publish settings

您会看到标有本地播放安全性的下拉列表。确保将其设置为access network only,而不是默认acess local only

当他们第一次开始使用闪光灯时,很多人都会这么做。


这也是一种很好的做法,不仅可以收听加载器上的COMPLETE事件,还可以收听错误事件,例如:

loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandlerFunction);
loader.addEventListener(IOErrorEvent.NETWORK_ERROR, ioErrorHandlerFunction);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandlerFunction);

在您的情况下,它可能会引发安全错误。