PDA

Просмотр полной версии : не работат setInterval


odlf3
13.05.2010, 00:40
Всем привет!
Подскажите плз почему нет запроса к count.txt:


this.loadVariables("counter.php?num="+random(999));

var intervalID:Number

/*onEnterFrame = function(){
this.loadVariables("count.txt?num="+random(999));}*/

onLoad = function() {
intervalID = setInterval(nag, 1000, this);
trace("hello!");}

function nag() {
this.loadVariables("count.txt?num="+random(999));
trace("go");}


trace выводит все как надо, а this.loadVariables("count.txt?num="+random(999)); - мимо проходит как будто ее там и нет.
Если использовать onEnterFrame, то все работает, но мне бы не хотелось так часто делать запросы.
Подскажите как быть в такой ситуации?!

mooncar
13.05.2010, 02:23
Поясните, что вы имеете ввиду этим куском:
onLoad = function() {
intervalID = setInterval(nag, 1000, this);
trace("hello!");}
Что это за обработчик и зачем он вам нужен тут?

А вообще - не используйте loadVariables.
Код AS работает асинхронно, а loadVariables не дает событий, по которым можно судить о готовности загрузки данных.
Откройте хелп и посмотрите класс LoadVars, он давным-давно пришел на смену loadVariables.
У него есть события onLoad и onData, которые можно использовать для отслеживания события загрузки данных из файла. Что у вас тут делает onLoad, мне не понятно.

Как и не понятно, если вам нужно обращаться к файлу один раз, зачем вам onEnterFrame или setInterval?
Вообще, что вы хотите?

odlf3
13.05.2010, 02:44
дело в том что это счетчик посетителей.
this.loadVariables("count.txt?num="+random(999)); - нужен для того что бы проверять сколько их в данный момент(т.е. пользователь сидит на сайте и у него тикают посетителе которые тоже зашли в данный момент на сайт).
onLoad - для того что бы функция запускалась при старте флеш.(кстати может быть есть гораздо проще вариант..)
LoadVars - с этим классом не знаком, спасибо за подсказку, гляну что и почему...

mooncar
13.05.2010, 02:50
Вот недавно разбирались, посмотрите:
http://www.flasher.ru/forum/showthread.php?t=139795
Вложение посмотрите в посте №10.
Не забудьте про Math.random() для предотвращения кэширования и кодировку.

udaaff
13.05.2010, 02:59
setInterval(this, "nag", 1000);

odlf3
13.05.2010, 03:13
Спасибо Вам Огромное, все работает как часики.
P.S. побольше бы таких людей...

Добавлено через 52 минуты
Извините, если не трудно подскажите еще как сделать чтоб флешка не кешилась?!

rainbowrussia
13.05.2010, 04:13
Извините, если не трудно подскажите еще как сделать чтоб флешка не кешилась?!

Зависит от того как вы ее загружаете. Общий смысл - к path/to/fleshka.swf нужно добавить случайное значение, чтобы получилось path/to/fleshka.swf?randomvalue

Например (javascript):


var swfname = "fleshka.swf?" + Math.random();