PDA

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


bars80080
16.06.2009, 14:45
добрый день,

рисую линии:
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
вот так можно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, вы уничтожили интонацию фразы