Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как заставить работать setInterval? (http://www.flasher.ru/forum/showthread.php?t=107765)

Niall86 08.02.2008 20:30

Как заставить работать setInterval?
 
Никак не могу заставить работать сетИнтервал. :mad: Функцию он запускает, а задержку не дает, хоть миллион пиши в нужном поле.
При том, что если я компилю взятый тут пример - все работает.

Подскажите, чем его пнуть штоб пахал как надо?

iNils 08.02.2008 20:38

Покажите то, что вы делали и у вас не получилось.

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)

Работает.

Niall86 08.02.2008 20:59

Сделать я пытался следующее. Менять картинку через заданное время. Внизу представлен код, в котором я тестировал возм-сть. всего 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, твой код работает..

iNils 08.02.2008 21:04

Ваша ошибка в том, что вместо pictureLoop пишите pictureLoop().
pictureLoop - это ссылка на функцию, которую сетИнтервал должен вызывать. А pictureLoop() - это уже результат это функции, но ваша функцию ничего не возращает и поэтому у вас фактически там написано
Код:

setInterval(undefined,1000);
вот вы и вызваете каждую секунду ничего :)

Niall86 08.02.2008 21:44

О как! Спасибо ) Буду пытаться пробовать)


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

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