![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2007
Сообщений: 7
|
Имеется мувиклип в котором, с помощью функции рисуется случайная кривая линия (на самом деле пусть даже горизонтальная прямая, проблема не меняется)
По X: от 0 и до бесконечности с шагом 0.5, по Y: от 0 до +-100. frame rate: 25 Сам мувиклип с шагом 0.5 уезжает влево, чтобы виден был сам процесс рисования. А проблема в том, что при продолжительном воспроизведении флешролика (больше 1-2 минут) рисование линии начинает тормозить. По-логике понятно почему - со временем линия вырисовывается сколь угодно длинная. Можно ли очищать, то что уже вне экрана? Или есть какое-то другое решение? Спасибо. |
|
|||||
|
Регистрация: Feb 2006
Сообщений: 588
|
а не проще ли отрисовывать линию от 0 до +- бесконечность, без перемещения мувика?
Нужен эффект "плавающей" волны чтоль? |
|
|||||
|
Регистрация: Feb 2007
Сообщений: 7
|
Цитата:
|
|
|||||
|
Регистрация: Feb 2007
Сообщений: 7
|
в таком плане
![]() |
|
|||||
|
Banned
[+1 08.05.08]
[+4 14.04.08] [+1.3 02.05.08] Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
|
кинь исходник..
|
|
|||||
|
Регистрация: Feb 2007
Сообщений: 264
|
Некоторые мысли по этому поводу:
- линия рисуется в пустом мувиклипе. Длина клипа-родителя определяется длиной линии. Проверка длины клипа-родителя, сравнение с длиной сцены. Далее. Нужно как-то удалять части линии выходящие за сцену. Я сам линии никогда не рисовал, так что подсказать тут не смогу... |
|
|||||
|
Регистрация: May 2004
Адрес: Kiev
Сообщений: 704
|
Отрисовывай кривую порциями. Создай мувиклип mcLine, содержащий мувиклипы с фрагментами кривой. Кривая отрисовывается в крайнем правом мувиклипе с шагом N пикселей по оси _y. Как только ширина клипа становится больше некой величины, прекращаем рисовать в нем линию и продолжаем уже в новом пустом клипе. В то же время сдвигаем наш mcLine влево с тем же шагом N. При этом если левый крайний подклип оказывается полностью за пределами видимой области, то мы его удаляем.
|
|
|||||
|
Регистрация: Feb 2007
Сообщений: 7
|
Цитата:
pos = {x:0, y:0};
stageWidth = Stage.width;
stageHeight = Stage.height;
k=1; i=0;
myArray = new Array();
myObject = new Object();
pos = new Object();
pos.x = 600;
pos.y = 0;
//lineTo(pos.x, pos.y);
placeLine = function(){
var lineColor = Math.floor(Math.random()*16777215);
this.lineStyle(2, 0xf80fc3, 100);
pos.x += _parent.moveR;
if(Math.random()>.5){
if(pos.y>30)pos.y -= Math.random()*k;
else pos.y += Math.random()*k;
}
else {
if(pos.y<-30)pos.y += Math.random()*k;
else pos.y -= Math.random()*k;
}
if(k==15&&i<50) i++;
else if(i>=50) {k=2; i=0; pos.y=0;};
this.lineTo(pos.x, pos.y);
trace(pos.y);
}
this.onEnterFrame = placeLine;
|
|
|||||
|
Регистрация: Feb 2007
Сообщений: 7
|
Цитата:
![]() |
|
|||||
|
я 1 мувом обошелся при помощи clear()
гораздо удобнее да и алгоритмическинезапутано хотя трудности были
__________________
"We Are The Champions My Friends!" Queen |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:37. |
|
|
« Предыдущая тема | Следующая тема » |
|
|