Форум 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)

Arhip 10.06.2005 02:30

задержка и зацикливание кадров
 
как можно осуществить такое:
1. идет последовательность кадров. один кадр нужно задержать на определенное количество секунд, затем воспроизведение продолжится.
2. нужно несколько кадров повторить определенное количество раз, затем воспроизведение продолжается как обычно
3. в один из кадров вставлен символ (во флэше он вроде так называется, другими словами - несколько кадров в одном) нужно дождаться, когда символ олностью проигратся, потом воспроизведение продолжается со следующего кадра

KUZEN 10.06.2005 03:04

Пихай в кадр, в котором должна произойти остановка , setInterval и задерживай сколько угодно :)

KUZEN 10.06.2005 03:13

Вот например задержка в десятом кадре на две секунды
Код:

stop();
setInterval(function () {_root.play();}, 2000);


MIX-er 10.06.2005 03:17

1 - в кадр в котором нада задерживаться...
stop();
time = 1000;
var i = setInterval(function () {
play();
clearInterval(i);
trace("идём дальше");
}, time);

2 -
в кадре предидущем первому из повторяемых
var x = o;

в первом из повторяемых кадров
x++;


в последнем из повторяемых кадров
if (x<=10) {
trace(x);
gotoAndPlay(6);
} else {
trace("идём дальше");
}


3 -
на кадре содержащем символ

stop();

на последнем кадре символа

_root.play();

дерзай...))

MIX-er 10.06.2005 03:18

Цитата:

Сообщение от KUZEN
Вот например задержка в десятом кадре на две секунды
Код:

stop();
setInterval(function () {_root.play();}, 2000);


а тормозить ему интервал не нада?? ;)

Nirth 10.06.2005 03:27

Код:

/**
 *        original idea by Silin
 *        @author                Silin
 *        @version        1.0
 */
class orange.utils.DelayEvent
{
        /**
        *        Creating the delay for function or method
        *        @usage                        orange.utils.DelayEvent.create(myMethod,delay)
        *        @param        func                function to delay
        *        @param        delay                delay in ms
        *        @return                        nothing
        */
        public static function create (func : Function, delay : Number) : Void
        {
                var fnct = arguments.shift ();
                var dly = arguments.shift ();
                var id = setInterval (function ()
                {
                        fnct (arguments);
                        clearInterval (id);
                }, dly, arguments);
        }
}

Использование
Код:

function boo() {
        trace("cool");
}
orange.utils.DelayEvent.create(this.boo,2000);

В твоем случае должно быть, что то вроде
Код:

this.stop();
orange.utils.DelayEvent.create(this.play,2000);


KUZEN 10.06.2005 03:35

Цитата:

Сообщение от MIX-er
а тормозить ему интервал не нада?? ;)

Нада полюбасу ... но я щас сам торможу :D уже глаза закрываются ...

MIX-er 10.06.2005 03:46

Цитата:

Сообщение от Nirth
Код:

/**
 *        original idea by Silin
 *        @author                Silin
 *        @version        1.0
 */
class orange.utils.DelayEvent
{
        /**
        *        Creating the delay for function or method
        *        @usage                        orange.utils.DelayEvent.create(myMethod,delay)
        *        @param        func                function to delay
        *        @param        delay                delay in ms
        *        @return                        nothing
        */
        public static function create (func : Function, delay : Number) : Void
        {
                var fnct = arguments.shift ();
                var dly = arguments.shift ();
                var id = setInterval (function ()
                {
                        fnct (arguments);
                        clearInterval (id);
                }, dly, arguments);
        }
}

Использование
Код:

function boo() {
        trace("cool");
}
orange.utils.DelayEvent.create(this.boo,2000);

В твоем случае должно быть, что то вроде
Код:

this.stop();
orange.utils.DelayEvent.create(this.play,2000);


вот погоди я тож так научусь...))) блин..)))

Arhip 10.06.2005 03:48

Цитата:

Сообщение от MIX-er
а тормозить ему интервал не нада?? ;)

Я мяго сказать чайник в это вопросе. Наверное я правильно понял Вас, в любом случае назрел другой вопрос -
При компиляции можно задать время проигрывания кадров. Например - 20 кадров можно проиграть за 5 секунд, а можно за 20. Как организовать задержку, скажем не на 2 секунды, а на 5 кадров?

KidsKilla 10.06.2005 03:50

у potapenko есть класс Conv
те он нужен.


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

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