Форум 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)
-   -   задержка и зацикливание кадров (http://www.flasher.ru/forum/showthread.php?t=65451)

silin 10.06.2005 19:55

2Arhip >>Как организовать задержку, скажем не на 2 секунды, а на 5 кадров?
Код:

var n=5;
this.stop();
this.onEnterFrame=function(){
        if(!n--){
                this.play();
                delete n;
                delete this.onEnterFrame;
        }
}

2Nirth
спасибо, канеш, тока идея как бы не моя, я там мимо проходил..
к слову в приведенном тобой варианте передать можно тока один аргумент
вот так поскдаднее будет, имхо
Код:

function create ()        {
                var fnct = arguments.shift ();
                var dly = arguments.shift ();
                var id = setInterval (function (a){
                        fnct.apply(null,a);
                        clearInterval (id);
                }, dly, arguments);
}
//////////////////////
f=function(a,b){
        trace(a)
        trace(b)
}
create(f,1000,'a','b')


Nirth 10.06.2005 20:07

оффтоп : ты вставил последнее слово=)
спасибо.

Штрек 11.06.2005 01:33

Цитата:

Сообщение от KidsKilla
у potapenko есть класс Conv
те он нужен.

Самое то........
На все случаи жизни.....

silin 12.06.2005 17:27

Цитата:

Сообщение от Nirth
оффтоп : ты вставил последнее слово=)

выходит, что еще не последнее: твой пример <...DelayEvent.create(this.play,2000)> для
возобновления проигрывания работать не будет, потому как play без объекта приложения
ничего не запустит, то что ты передаешь this.play ничего не меняет - все равно это
только ссылка на функцию и вызовется она через setInterval в пустоте..
чтобы заработало придется передать еще и объект, который эту функцию вызовет:
Код:

function create (ob,fnct,dly){
                var arg=arguments.splice(3);// для этого примера не нужна, но если функция с параметрами, то пригодится
                var id = setInterval (function (a){
                        fnct.apply(ob,a);
                        clearInterval (id);
                }, dly, arg);
}
//////////////////////
this.stop();
create(this,play,1000)


Nirth 12.06.2005 17:31

2 Силин а не легче ле в таком случае будет расширить create в классе Delegate ... или юзать у тебя же Delegate

Updated: хотя нет , только лишний гемор


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

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