Форум 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)
-   -   Стоп-кадр в AS (http://www.flasher.ru/forum/showthread.php?t=82040)

Tigor 04.07.2006 04:17

Стоп-кадр в AS
 
Доброго дня всем!
Я столкнулся с проблемой качественного скрипта для создания стоп-кадра клипа на определённое время. Скрипт пишется в одном кадре (т.е. временная шкала не используется).
Написал рекурсивную функцию, но она работает неправильно (функция не останавливается и Flash просто-напросто вылетает). Может кто подскажет ошибку:

Код:

trace(timer(10));
function timer(j:Number) { // j время задержки, пересылаемое в функцию
        var i:Number = 0; // i количество секунд, прошедших после запуска
        while (i<j) {
            i++;               
            var time:Number=setInterval(timer, 1000, j);               
        }
        clearInterval(time);
        return i;
};


iNils 04.07.2006 12:14

Честно говоря я не понял, что вы хотите получить.

motor4ik 04.07.2006 13:06

а что вам мешает сделать стоп в клипе указано и запустить его через заданое время в сетИнтервале????

Код:

clip1.stop();

var time:Number=setInterval(function st():Void{
clip1.play();
 clearInterval(time);
}, 1000);


etc 04.07.2006 13:29

Цитата:

Сообщение от Tigor
Скрипт пишется в одном кадре (т.е. временная шкала не используется).

Ты себе противоречишь =)

iNils 04.07.2006 14:10

Цитата:

Сообщение от motor4ik
а что вам мешает сделать стоп в клипе указано и запустить его через заданое время в сетИнтервале????

Код:

clip1.stop();

var time:Number=setInterval(function st():Void{
clip1.play();
 clearInterval(time);
}, 1000);


это работать не будет :)

Код:

_global.pauseClip = function (clip, time) {
        clip.stop ();
        var id = setInterval (function () {
                clip.play ();
                clearInterval (id);
        }, time);
}

Пример использования:
Код:

pauseClip (this, 1000);

motor4ik 04.07.2006 14:38

конечно не будет, я опять же повторюсь, не просто списал, а списал и подумал почему не работает...исправил заработало, не исправил оправляемся в начальную школу учить правописание )

iNils 04.07.2006 14:44

Цитата:

Сообщение от motor4ik
конечно не будет, я опять же повторюсь, не просто списал, а списал и подумал почему не работает...исправил заработало, не исправил оправляемся в начальную школу учить правописание )

Ты так человека больше запутаешься, чем поможешь. Давать код с ошибкой и не говорить об этом, во-первых издевательство, во-вторых подрывает у новичка веру в тебя.

Tigor 05.07.2006 13:47

Спасибо всем, кто отозвался на мою тему. Получить хочется очень простую вешь - функцию остановки скрипта на заданное время и, далее, продолжение его выполнения. Заранее отказался от вариантов пустых циклов. Вариант с onEnterFrame тоже не дал нужных результатов. Была мысль с использованием getTimer, но в этом случае выполнение скрипта делает плейер "невменяемым", выбивая его на это время. Появился ещё один вариант. Логически рассуждая, рабочий, но и тут заковыка имеется. Вот он:
Код:

if (!i) {
        var i:Number = 0;
}
function func(i) {
        i++;
        trace(i);
        return i;
}
setInterval(func, 1000, i);

Это вариант без проверки на соответствие интервалу. Пусть бы выдавал секундные метки, но по возрастанию. А в результате получаю лишь 1.
Может кто подскажет рецепт, или хотя бы направление ...выпишет :)

motor4ik 05.07.2006 14:00

пиши скрипт по функциям или по кадрам...и запускай соответственно через сет Интервал других способов нет...будет всеровно работать некорректно чтобы ты не придумал!!!!

iNils 05.07.2006 14:04

Tigor, я дал ответ в 5-ом посте.


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

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