Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Action script 2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=49)
-   -   Как проверить загрузку переменных из разных мест? одновременно.. (http://www.flasher.ru/forum/showthread.php?t=56422)

Aloneman 30.03.2004 19:29

Как проверить загрузку переменных из разных мест? одновременно..
 
Попытаюсь подробно описать в чем трабл: у меня 2 переменные, первая грузится из txt:

_root.loadVariables("myValue.txt");

И проверяю ее:

_root.onData = function () {
if (_root.myValue!= undefined) {
_root.gotoAndPlay(2);
}
}

вторая генерится JS в HTML

<script language=JavaScript>
var dateValue=document.location.href;
function date2() {
document.tl.SetVariable("variable", dateValue);
}
date2();
</script>

И во флэшке принимаю ее:

this.watch("variable", function() { this.myValue2 = arguments[2]; })

если первую могу проверить на прогружаемость как показал выше, то со второй трабл. Как мне проверить и первую и вторую и только потом, убедившись, что они есть, перейти во второй кадр. Мозг свой взорвал уже, но так ничего и не нашел. Обидно еще потому, что вторая переменная генерится медленнее.

silin 30.03.2004 21:02

если вторая приходит позже добавь флаг
this.watch("variable", function() { this.myValue2 = arguments[2];_root.js_come=true; })
а в первой проверяй
_root.onData = function () {
if (_root.myValue!= undefined) && _root.js_come{
_root.gotoAndPlay(2);
}
}

Aloneman 30.03.2004 22:06

вроде все правильно, но странно - у меня ничего не происходит, я потестил фильм, он принимает все переменные, переводит jscome в true, и тишина, во второй кадр не перескакивает. вот точный кусок кода, как я написал, может я что-то не так делаю? Отсутствие у меня опыта сказывается конечно, не могу понять, хоть тресни...

Код:


var jsCome = false;

this.watch("variable", function() {
this.tl = arguments[2];
_root.jsCome = true;
}
)

_root.loadVariables("/img/tl/tl.txt");

_root.onData = function () {
if ( (_root.y_2 != undefined) && (_root.jsCome == true) ) {
_root.gotoAndPlay(2);
}
}


silin 30.03.2004 22:25

все верно - фигню я тебе присоветовал : onData срабатывает, когда jsCome еще false, поэтому и ничего..
а вот так должно получится

var jsCome = false;
this.watch("variable", function() {
this.tl = arguments[2];
_root.jsCome = true;
}
)
_root.loadVariables("/img/tl/tl.txt");
_root.onEnterFrame=function(){
if ( (_root.y_2 != undefined) && (_root.jsCome == true) ) {
_root.gotoAndPlay(2);
}else delete this.onEnterFrame;
}

Aloneman 31.03.2004 14:03

И что поразительно, работает...
 
но только тогда, когда я этот пример прогоняю отдельно. Но как только вставляю его в свой код, то снова не пашет, так же остается на первом. Не везет мне что-то... :(

Код:


stop();
var bbb = false;

_root.onEnterFrame = function () {
        if ( (aaa != undefined) && (bbb == true) ) {
        _root.gotoAndStop(2);
} else {
        delete this.onEnterFrame;
}
}

for (var i=1; i<50; i++) {
        trace(i);
        if (i == 20) { _root.aaa = 1; _root.bbb = true; break; }
}


silin 31.03.2004 19:05

извиняйте плиз, совсем плох- два раза кряду на те же грабли
так конечно же нельзя
if ( (_root.y_2 != undefined) && (_root.jsCome == true) ) {
_root.gotoAndPlay(2);
}else delete this.onEnterFrame;
}// - она в первый же раз и удалиться

а надо
if ( _root.y_2 && _root.jsCome ) {
_root.gotoAndPlay(2);
delete this.onEnterFrame;
}

Aloneman 31.03.2004 21:46

YES! заработало! спасибо Вам огромное!


Часовой пояс GMT +4, время: 23:43.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.