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

bars80080 16.06.2009 14:45

последовательное затирание линии
 
добрый день,

рисую линии:
Код AS1/AS2:

        mc.lineStyle(1, 0x00FF00, 100);
        mc.moveTo(10, 10);
        mc.lineTo(100, 100);
            //...цикл...
        mc.lineTo(someX, someY);
            //...

при этом будет происходить зарисовывание некоторой области этими линиями. каким образом можно последовательно затирать хвост линии?

т.е. чтоб было не зарисовывание, а словно ломанная линия будет метаться по области

что-то типа молнии

или это делают каким-то другим способом?

Wolsh 16.06.2009 15:05

Да уж точно не циклом. Кадр перерисовывается только ПОСЛЕ выполнения всего кода в нем. Т.е. сначала выполнится весь цикл, и по последнимм координатам будет нарисована линия.
Используйте onEnterFrame или таймер.

bars80080 16.06.2009 15:13

а, ну да, цикл я вставил только здесь, подразумевая дальнейшее продолжение линии в каком-то направлении

рисуется один отрезок на кадр по onEnterFrame

как затирать линии нарисованные n-кадров назад?

lexa2000lexa 16.06.2009 15:28

вот так можно
Код AS1/AS2:

var num = 10;
onEnterFrame = function(){
        if(num<100){
                num++;
                trace(mc)
                var mc:MovieClip = this.createEmptyMovieClip("mc",1)
                mc.lineStyle(3, 0xff0000, 100);
                mc.moveTo(num, 100);
                mc.lineTo(100, 100);
        }
        else{
                delete onEnterFrame;
                }
}


iflamberg 16.06.2009 15:30

ну, я полагаю, есть для этого много способов.
Например, каждую линию рисовать в отдельном мувике, удалять мувик по истечению времени.

UPD:
да, предыдущий пост - именно этот метод. пока писал...

bars80080 16.06.2009 15:36

в смысле уничтожение функции, запускаемой по смене кадра?

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

а во-вторых, у меня там хватает других действий, повешенных на кадровый счётчик, и рисование линии - всего лишь одно из них

Добавлено через 2 минуты
Цитата:

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

iflamberg 16.06.2009 16:03

ну, если не будите клипы сотнями тысяч рисовать - то не исчерпаете.

bars80080 16.06.2009 16:35

на частоте 24 кадра в секунду, тысяча клипов - это всего 40 секунд

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

ну, раз так, будем рисовать по клипово

я всё же надеялся, что у кого-нибудь есть волшебная задумка, как реализуются подобные вещи



ай, iNils, вы уничтожили интонацию фразы


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

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