这有点奇怪……
我有一个加载外部 SWF 的 Flash 文件。在那里,我使用 LoadVars 从服务器获取外部数据。数据到达后,我使用 setInterval 调用淡入内容的函数。
到目前为止,一切都很好。
但是当我在所有数据到达之前切换菜单(也就是卸载一部电影以加载另一部电影)时,Flash 会挂起大约 15 秒,然后向我显示臭名昭著的消息«这部电影中的脚本正在减慢 Flash - 你想中止吗它?” (大致翻译)。
我在 SWF 中附加了一个 «onUnload» 函数,它会导致主要问题,我使用 clearInterval 来消除间隔并重新实例化 LoadVars-Variable。
没有什么帮助...
有任何想法吗?
根据要求 - 这是造成问题的 SWF 的来源:
var myTimer = null;
var server_send:LoadVars = new LoadVars();
this.onUnload = function () {
clearInterval(myTimer);
server_send = new LoadVars();
trace("stopping gewerbe");
};
var myself = scrollContent;
import JSON; // external Class for parsing JSON
var sRes:LoadVars = new LoadVars();
function fadeIn(which){
which._alpha += 3;
if(which._alpha >= 100){
clearInterval(myTimer);
}
}
sRes.onLoad = function(success:Boolean){
if (success){
var o:Object = JSON.parse(sRes.res);
var s:String = JSON.stringify(o);
//trace(sRes.res);
var y = 0;
for(item in o){
actCol = 0;
myself.attachMovie("row", "entry" + item, myself.getNextHighestDepth(), {_x: 0, _y:y});
var tr = myself["entry" + item];
tr.cTitle = o[item]["title"];
tr.cBild = o[item]["image"];
tr.cText = o[item]["text"];
y += 65;
}
myTimer = setInterval(fadeIn, 0.1, myself);
_root.myIntervals.push(myTimer);
}
else
{
trace("no connection...");
}
}
myself._alpha = 0;
var vars = Array("id");
var values = Array("3");
server_send.load('void.txt');
for(var i=0;i<vars.length;i++)
{
server_send[vars[i]] = escape(values[i]);
}
server_send.sendAndLoad(_global.server, sRes, "POST");
stop();