Просмотр полной версии : Как заставить работать setInterval?
Никак не могу заставить работать сетИнтервал. :mad: Функцию он запускает, а задержку не дает, хоть миллион пиши в нужном поле.
При том, что если я компилю взятый тут (http://metoart.ru/blog/2006/01/06/promezhutki_ispolnenija_ispolzovanie_setinterval_.html) пример - все работает.
Подскажите, чем его пнуть штоб пахал как надо?
Покажите то, что вы делали и у вас не получилось.
Molecula
08.02.2008, 20:39
Так написал :
setInterval(tr, 1000)
function tr(){trace('tr')}
Работает.
Так написал:
import mx.utils.Delegate;
setInterval(Delegate.create(this, tr), 1000)
function tr(){trace('tr')}
Работает.
И так написал:
import mx.utils.Delegate;
setInterval(Delegate.create(this, function(){trace('tr')}), 1000)
Работает.
Сделать я пытался следующее. Менять картинку через заданное время. Внизу представлен код, в котором я тестировал возм-сть. всего 2 картинки есть - одна 99_1, другая 99_2. Всякие силиновские библиотеки и прочий дисторт - это все для перспективы (спасибо силину). Так вот, скомпиленый код внизу - не меняет картинку.
import com.silin.InstanceManager;
import com.silin.DistortBitmap;
import flash.display.BitmapData;
import flash.geom.*;
i=0;
function pictureLoop(){
_root.i++;
_root.i=i%2;
}
function kawaii() {
var bmp=BitmapData.loadBitmap("99_"+_root.i%2);
var pic:DistortBitmap=InstanceManager.createMC(this,DistortBitmap,bmp,5,3);
var distortPointsArr:Array=[];
distortPointsArr.push(new Point(128,52));
distortPointsArr.push(new Point(38,48));
distortPointsArr.push(new Point(38,176));
distortPointsArr.push(new Point(128,162));
pic.distort(distortPointsArr);
};
setInterval(pictureLoop(),1000);
kawaii();
Если я меняю нижние 2 строчки на
onEnterFrame = function(){
setInterval(pictureLoop(),1000);
kawaii();
}
то картинка начинает менятся с головокружительной скоростью, не обращая внимание ни на 1000, ни на 100000 =(
В чем дело? что поменять?
Molecula, твой код работает..
Ваша ошибка в том, что вместо pictureLoop пишите pictureLoop().
pictureLoop - это ссылка на функцию, которую сетИнтервал должен вызывать. А pictureLoop() - это уже результат это функции, но ваша функцию ничего не возращает и поэтому у вас фактически там написано
setInterval(undefined,1000);
вот вы и вызваете каждую секунду ничего :)
О как! Спасибо ) Буду пытаться пробовать)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.