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

Волгоградец 26.11.2007 00:09

Странная работа setInterval
 
Привет. Великие Гуру флэш, помогите разобраться с проблемой: написал функцию - на сцену с некоторой периодичностью должен вызываться клип из библиотеки. По окончании его проигрывания он должен удалиться. Эту функцию вызываю периодически с помощью setInterval. Так вот, все нормально, клип появляется и исчезает как положено, но после нескольких таких таких вызовов пропадает. Почему???
Код:

//Задаю время периодичности появления клипа
var t_nach:Date = new Date ();
var t_nach_sec:Number = t_nach.getSeconds ();
var b:Number = t_nach_sec;
var t_show:Number = 3;
function pokaz () {
        var t_tek:Date = new Date ();
        var t_tek_sec:Number = t_tek.getSeconds ();
          //Проверяю - если настало время показа клипа - аттачу его
        if (t_tek_sec >= b + t_show) {
                _root.attachMovie ("mov", "mov", this.getNextHighestDepth (), {_x:200, _y:200});
                      //Когда клип доигрывает до конца - удаляю его
                mov.onEnterFrame = function () {
                        if (mov._currentframe == mov._totalframes) {
                                mov.removeMovieClip ();
                                delete this.onEnterFrame;
                                            //Увеличиваю счетчик
                                b += t_show;
                        }
                };
        }
}
//Интервал
a = setInterval (pokaz, 1000);


qwerter 26.11.2007 00:14

может дело в
_root.attachMovie ("mov", "mov", this.getNextHighestDepth (), {_x:200, _y:200});
ты всегда одно и тоже имя присваиваешь клипу и потом работаешь с ним. может конфликт бывает? клип успевает исчезнуть до того как другой появится?

B0Bka 26.11.2007 00:25

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

можешь перед строкой создания
вставить еще одно удаление:
Код:

mov.removeMovieClip();
_root.attachMovie ("mov", "mov", this.getNextHighestDepth(), {_x:200, _y:200});

но, мне кажется, лучше вставлять всегда на известный слой
и как сказал qwerter _root тоже лучше не использовать

Волгоградец 26.11.2007 00:28

Но странно же - почему некоторое время работает нормально, а через 5 - 10 итераций (когда как) пропадает??? Т.е. запускается, клип появляется и исчезает как надо, но после нескольких таких повторений (всегда по-разному) клип совсем пропадает.

B0Bka 26.11.2007 00:32

мне кажется у тебя мувик mov имеет какую-то особенность, там анимация?
наверно это условие не проходит:
Код:

mov._currentframe == mov._totalframes
попробуй оттрейсить

для теста просто создай простой клип с одним кадром вместо mov что будет

iNils 26.11.2007 00:34

B0Bka, для оформления своего кода, надо использовать теги [code][/code], поэтому надо исправить ваши примеры выше.

qwerter 26.11.2007 00:38

у меня работает вроде бы

Волгоградец 26.11.2007 11:55

Там проходят все условия. Он нормально работает, но всегда разное количество раз (а должен постоянно). Можно по-другому конечно написать код, но просто интересно и хочется разобраться в чем здесь ошибка...


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

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