Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.02.2007, 21:17
imoto вне форума Посмотреть профиль Отправить личное сообщение для imoto Найти все сообщения от imoto
  № 1  
Ответить с цитированием
imoto

Регистрация: Feb 2007
Сообщений: 7
По умолчанию Drawing API. Перегрузка.

Имеется мувиклип в котором, с помощью функции рисуется случайная кривая линия (на самом деле пусть даже горизонтальная прямая, проблема не меняется)

По X: от 0 и до бесконечности с шагом 0.5,

по Y: от 0 до +-100.

frame rate: 25

Сам мувиклип с шагом 0.5 уезжает влево, чтобы виден был сам процесс рисования.


А проблема в том, что при продолжительном воспроизведении флешролика (больше 1-2 минут) рисование линии начинает тормозить.

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


Можно ли очищать, то что уже вне экрана? Или есть какое-то другое решение? Спасибо.

Старый 20.02.2007, 22:08
sem1313 вне форума Посмотреть профиль Отправить личное сообщение для sem1313 Найти все сообщения от sem1313
  № 2  
Ответить с цитированием
sem1313

Регистрация: Feb 2006
Сообщений: 588
а не проще ли отрисовывать линию от 0 до +- бесконечность, без перемещения мувика?
Нужен эффект "плавающей" волны чтоль?

Старый 20.02.2007, 23:16
imoto вне форума Посмотреть профиль Отправить личное сообщение для imoto Найти все сообщения от imoto
  № 3  
Ответить с цитированием
imoto

Регистрация: Feb 2007
Сообщений: 7
Цитата:
Сообщение от sem1313
а не проще ли отрисовывать линию от 0 до +- бесконечность, без перемещения мувика?
Нужен эффект "плавающей" волны чтоль?
В том то и дело, что если без перемещения, то получится - линия уйдет за правую границу экрана и будет рисоваться где-то там сама по себе. Но мне-то важен сам процес рисования - что-то типа кардиограммы.

Старый 20.02.2007, 23:26
imoto вне форума Посмотреть профиль Отправить личное сообщение для imoto Найти все сообщения от imoto
  № 4  
Ответить с цитированием
imoto

Регистрация: Feb 2007
Сообщений: 7
в таком плане

Старый 21.02.2007, 01:10
Mr. Fixit вне форума Посмотреть профиль Найти все сообщения от Mr. Fixit
  № 5  
Ответить с цитированием
Mr. Fixit
Banned
[+1 08.05.08]
[+4 14.04.08]
[+1.3 02.05.08]

Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
кинь исходник..

Старый 21.02.2007, 01:17
this.create вне форума Посмотреть профиль Отправить личное сообщение для this.create Найти все сообщения от this.create
  № 6  
Ответить с цитированием
this.create

Регистрация: Feb 2007
Сообщений: 264
Некоторые мысли по этому поводу:
- линия рисуется в пустом мувиклипе. Длина клипа-родителя определяется длиной линии. Проверка длины клипа-родителя, сравнение с длиной сцены.
Далее. Нужно как-то удалять части линии выходящие за сцену. Я сам линии никогда не рисовал, так что подсказать тут не смогу...

Старый 21.02.2007, 01:54
kruasan вне форума Посмотреть профиль Отправить личное сообщение для kruasan Найти все сообщения от kruasan
  № 7  
Ответить с цитированием
kruasan
 
Аватар для kruasan

Регистрация: May 2004
Адрес: Kiev
Сообщений: 704
Отрисовывай кривую порциями. Создай мувиклип mcLine, содержащий мувиклипы с фрагментами кривой. Кривая отрисовывается в крайнем правом мувиклипе с шагом N пикселей по оси _y. Как только ширина клипа становится больше некой величины, прекращаем рисовать в нем линию и продолжаем уже в новом пустом клипе. В то же время сдвигаем наш mcLine влево с тем же шагом N. При этом если левый крайний подклип оказывается полностью за пределами видимой области, то мы его удаляем.

Старый 21.02.2007, 17:58
imoto вне форума Посмотреть профиль Отправить личное сообщение для imoto Найти все сообщения от imoto
  № 8  
Ответить с цитированием
imoto

Регистрация: Feb 2007
Сообщений: 7
Цитата:
Сообщение от Mr. Fixit
кинь исходник..
код мувиклипа
Код:
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;

Старый 21.02.2007, 18:00
imoto вне форума Посмотреть профиль Отправить личное сообщение для imoto Найти все сообщения от imoto
  № 9  
Ответить с цитированием
imoto

Регистрация: Feb 2007
Сообщений: 7
Цитата:
Сообщение от kruasan
Отрисовывай кривую порциями. Создай мувиклип mcLine, содержащий мувиклипы с фрагментами кривой. Кривая отрисовывается в крайнем правом мувиклипе с шагом N пикселей по оси _y. Как только ширина клипа становится больше некой величины, прекращаем рисовать в нем линию и продолжаем уже в новом пустом клипе. В то же время сдвигаем наш mcLine влево с тем же шагом N. При этом если левый крайний подклип оказывается полностью за пределами видимой области, то мы его удаляем.
логика понятна, так и попробую сделать. Спасибо

Старый 21.02.2007, 18:09
CorC вне форума Посмотреть профиль Отправить личное сообщение для CorC Найти все сообщения от CorC
  № 10  
Ответить с цитированием
CorC
 
Аватар для CorC

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
я 1 мувом обошелся при помощи clear()
гораздо удобнее да и алгоритмически
незапутано хотя трудности были
Вложения
Тип файла: rar linez.rar (778 байт, 46 просмотров)
__________________
"We Are The Champions My Friends!" Queen

Создать новую тему Ответ Часовой пояс GMT +4, время: 07:37.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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