我正在使用闪存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个)。答案 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);
在您的情况下,它可能会引发安全错误。