Обновление
Прежде всего, я бы посоветовал вам отказаться от использования setInterval, они особенно проблематичны.Вместо этого используйте класс Timer
, который гораздо проще в управлении и использовании.
Возможно, проблема setInterval
внутри функции sRes.onLoad
.Интервал должен быть в миллисекундах, поэтому ваш 0.1 должен быть равен 100 (в течение 1/10 секунды), а вызовы clearInterval
в fadeIn
и unLoad
могут иметь myInterval
вне области, проверьте их с помощью trace
, чтобы убедиться, что они очищаются, как и ожидалось.
Код
Хорошо, я переупорядочил код, чтобы сделать его немного более читабельным ... Однако, он все еще вочень плохая форма.Я отмечаю вещи, которые мне нужно обсудить с вами далее ... (см. Ниже дополнительные комментарии в коде.)
stop();
// Moved import to the top.
import JSON;
// Grouping var declarations.
var myself = scrollContent;
myself._alpha = 0;
var values = Array("3");
var myTimer = null;
var sRes:LoadVars = new LoadVars();
var server_send:LoadVars = new LoadVars();
var vars = Array("id");
// why are we looping through an array of one value?
for(var i=0; i<vars.length; i++)
{
server_send[vars[i]] = escape(values[i]);
}
server_send.load('void.txt'); // what is this for?
server_send.sendAndLoad(_global.server, sRes, "POST"); // where do we define _global.server
this.onUnload = function () {
clearInterval(myTimer); // is myTimer in scope here?
server_send = new LoadVars();
trace("stopping gewerbe");
};
function fadeIn(which){
which._alpha += 3;
if(which._alpha >= 100){
clearInterval(myTimer); // is myTimer in scope here?
}
}
sRes.onLoad = function(success:Boolean)
{
if (success)
{
var o:Object = JSON.parse(sRes.res);
var s:String = JSON.stringify(o);
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); // setInterval uses milliseconds 0.1 is almost certainly the problem.
// if you want 1/10th of a second, specify 100 as the interval.
_root.myIntervals.push(myTimer); // We never see _root.myIntervals again, what's this for?
// The fadeIn and unLoad methods could use this to
// guarantee that they clear the right interval.
}
else
{
trace("no connection...");
}
}