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

kayama 08.03.2007 21:25

Пауза между действием эффекта
 
Драсти господа..

Есть такой код позиционирования:

Код:

var ar:Object = new Object();
this.ar.onResize = function() {
        if (Stage.width>1050) {
                Stage.align = "TL";
                cir._x = new mx.transitions.Tween(cir, "_x", mx.transitions.easing.Strong.easeOut, cir._x, Stage.width*.30, 1, true);
                rec._x = new mx.transitions.Tween(rec, "_x", mx.transitions.easing.Strong.easeOut, rec._x, Stage.width*.60, 1, true);
        }
};
Stage.addListener(ar);

Что нужно сделать, чтобы между работой cir и rec была пауза в пол секунды?
Заранее благодарен.

etc 08.03.2007 21:29

Поставь интервал, который запустит второй твин.
Только при новом вызове onResize очищай его.

iNils 08.03.2007 21:30

Между запуском обоих или окончанием одного и началом другого?

kayama 09.03.2007 01:05

Вот что вышло:
Код:

var ar:Object = new Object();
this.ar.onResize = function() {
        if (Stage.width>301) {
                Stage.align = "TL";
                cir._x = new mx.transitions.Tween(cir, "_x", mx.transitions.easing.Strong.easeOut, cir._x, Stage.width*.30, 1, true);
                var ai:Number;
                this.ai = setInterval(function () {
                        rec._x = new mx.transitions.Tween(rec, "_x", mx.transitions.easing.Strong.easeOut, rec._x, Stage.width*.60, 1, true);
                        clearInterval(ai);
                }, 1000);
        }
};
Stage.addListener(ar);

Эффект достигнут, но когда я начинаю дергать ресайз туда-сюда-обратно, такое впечатление, что интервал вдвое сокращается, где я недомудрил?

Mr. Fixit 09.03.2007 01:12

Логичнее и проще просто напиши код, и вообще как-то неправильно

etc 09.03.2007 01:21

Прочитай второй пост ещё раз и делай так:

Код:

var ar:Object = new Object();
this.ar.onResize = function() {
        if (Stage.width>301) {
                Stage.align = "TL";
          clearInterval(this.ai);
                cir._x = new mx.transitions.Tween(cir, "_x", mx.transitions.easing.Strong.easeOut, cir._x, Stage.width*.30, 1, true);
          this.func = function () {
                        rec._x = new mx.transitions.Tween(rec, "_x", mx.transitions.easing.Strong.easeOut, rec._x, Stage.width*.60, 1, true);
                        clearInterval(this.ai);
                }
                this.ai = setInterval(this,'func', 1000);
        }
};
Stage.addListener(ar);

Коряво, но работать должно.

kayama 09.03.2007 01:59

Цитата:

Сообщение от __etc
Коряво, но работать должно.

Чётенько все, спасибо.
PS: А в какой части «коряво»?

etc 09.03.2007 02:03

ну вот это объявление функции в функции, а так ничего :D

sem1313 09.03.2007 03:10

Код:

var ar:Object = new Object();
this.ar.onResize = function() {
        if (Stage.width>301) {
                Stage.align = "TL";

А на фига, в самом onResize каждый раз назначать align - TL?

etc 09.03.2007 12:41

А это, видимо, артефакт, не иначе :)
Или потом планировалось менять LT на T.


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

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