PDA

Просмотр полной версии : опять про setInterval


van4es
28.07.2008, 14:21
Задача: получить переменные и их значения из файла(например vars.txt) и использовать их в скрипте.

Просмотрел хелп, и переделал указанный пример loadsVars:


this.createEmptyMovieClip("varsHolder", this.getNextHighestDepth());
loadVariables("vars.txt", varsHolder);

var loadVars:Array = new Array();

function checkParamsLoaded() {
if (varsHolder.done == undefined) {
trace("not yet.");
} else {
trace("finished loading. killing interval.");
trace("-------------");
for (i in varsHolder) {
trace(i+": "+varsHolder[i]);
loadVars[i] = varsHolder[i];
}
trace("-------------");
clearInterval(param_interval);
}
}
var param_interval:Number = setInterval(checkParamsLoaded, 100);
trace('my var: ' + loadVars['var1']);


файл vars.txt содержит: dir="video"&file="video"&done="done"

Но вот проблема в том что не происходит паузы до строки var param_interval:Number = setInterval(checkParamsLoaded, 100);
и соответственно выдаётся 'undefined' на trace('my var: ' + loadVars['dir']);

В чём дело? Как сделать чтобы только после загрузки всех переменных работал скрипт дальше?

etc
28.07.2008, 14:38
А чем вам так насолил LoadVars, что вы предпочитаете использовать древнейший метод loadVariables мезозойской эпохи?

van4es
28.07.2008, 14:53
потому что готовый пример был :) и вроде это именно то, что нужно было.

etc
28.07.2008, 14:57
Ну а вы не копайтесь в помойке, пишите сами.

van4es
28.07.2008, 16:32
Ну а вы не копайтесь в помойке, пишите сами.
НУ вот не получается, пытался заменить на loadVars, проблемма остаётся - скрипт работает пока переменные догружаются.

etc
28.07.2008, 16:43
НУ вот не получается, пытался заменить на loadVars, проблемма остаётся - скрипт работает пока переменные догружаются.
Ну само собой, в ActionScript так и есть. А в чем проблема дождаться события onLoad и работать дальше? Переменные мгновенно получить извне невозможно.

van4es
28.07.2008, 16:59
А чем вам так насолил LoadVars, что вы предпочитаете использовать древнейший метод loadVariables мезозойской эпохи?


myVars = new LoadVars();
myVars.load('vars.txt');

function loading(){
myVars.onLoad = function( success:Boolean ){
if(success){
trace("variables loaded");
trace( 'onLoad: ' + myVars.var1 );
clearInterval(loading_interval);
}
else{
//trace( 'could not lad variables' );
loading();
}
}
}

var loading_interval:Number = setInterval(loading, 100);
//loading();
trace( 'loading(): ' + myVars.var1 );


проблемма как была, так и осталось(myVars.var1 = 'undefined'). Похоже я чего то важного не понимаю....:umnik2:

iNils
28.07.2008, 17:04
myVars = new LoadVars ();
myVars.onLoad = function (success:Boolean) {
if (success) {
trace ("variables loaded");
trace ('onLoad: ' + this.var1);
} else {
//trace( 'could not lad variables' );
loading ();
}
};
myVars.load ('vars.txt');

etc
28.07.2008, 17:06
myVars = new LoadVars();
myVars.onLoad = function (success) {
if (success){
trace("variables loaded");
trace( 'onLoad: ' + myVars.var1 );
// дальше пишем здесь
} else {
trace('error');
}

}
myVars.load('vars.txt');

van4es
28.07.2008, 17:14
Всё понял. Спасибо.