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

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

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

Регистрация: May 2003
Адрес: Москва
Сообщений: 186
По умолчанию Хаотичное распределение объектов (резина)

Подскажите, есть ли способ программно хаотично расположить объекты по всей ширине резинового флеша? При этом объекты не должны выходить за пределы видимой области.

Наподобие того, как реализовано тут http://www.norwegianoil40years.no/, только без анимации.
__________________
Достал уж всех своими глупыми вопросами...

Старый 02.07.2010, 18:40
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
А с упорядоченным, нехаотичным расположением по всей ширине "резинового" флеша получается? В чем загвоздка-то?

Берите ширину Stage.width и раскидывайте рандомно по ней ваши объекты.


Последний раз редактировалось mooncar; 02.07.2010 в 18:45.
Старый 02.07.2010, 19:01
serdeles вне форума Посмотреть профиль Отправить личное сообщение для serdeles Найти все сообщения от serdeles
  № 3  
Ответить с цитированием
serdeles

Регистрация: May 2003
Адрес: Москва
Сообщений: 186
С объектами всё в порядке. Дело в том, что задача не раскидать объекты по сцене, а поместить на сцену 1 мувик (кроме него на сцене есть другие мувики), в котором много объектов. Вот именно их надо разбросать по всей ширине. То, что имеется на сцене, нормально «прорезинено».
__________________
Достал уж всех своими глупыми вопросами...

Старый 02.07.2010, 19:18
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Добавляете на сцену ваш мувик, в котором много объектов и распределяете в нем их рандомно, с учетом Stage.width.
Задаете максимальное значение x и минимальное значение. Если ваш мувик-контейнер приаатачивается в начало координат (по умолчанию так), то минимальное будет 0. Ну и скооректировать их тоже нужно, учитывая размеры объектов, чтобы они вблизи границ не залезали на них.
Трудность-то или непонимание на каком этапе?


Последний раз редактировалось mooncar; 02.07.2010 в 19:22.
Старый 05.07.2010, 11:20
serdeles вне форума Посмотреть профиль Отправить личное сообщение для serdeles Найти все сообщения от serdeles
  № 5  
Ответить с цитированием
serdeles

Регистрация: May 2003
Адрес: Москва
Сообщений: 186
То есть, выходит, что для отдельного мувика тоже можно задавать значения Stage.width? Попробую...
__________________
Достал уж всех своими глупыми вопросами...

Старый 05.07.2010, 11:24
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Да нет же. Stage.width (и Stage.height) используете при расчете рандомного разброса.
PS. Если мувиков будет много и их анимация не предполагается, во избежание тормозов также рекомендую отрисовать контейнер с ними в битмапу.
PPS. Еще нюанс - вам надо определиться с одним моментом: либо разброс делать всякий раз заново при растяжении окна браузера (по вашей ссылке разброс идет вообще непрерывно), либо разброс сразу сделать достаточно большим по ширине и высоте, чтобы при растяжении окна браузера площадь гарантированно была покрыта объектами. Правда как быть при этом быть с "не должны выходить за пределы видимой области", я не знаю.
Вам должно быть виднее, как это противоречие разрешить - ведь с одной стороны вы не хотите, чтобы объекты вылезали или находились на границе окна, с другой стороны, "резиновость" предполагает то, что пользователь в любой момент может растянуть / сжать окно, то есть изменить расположение его границ.


Последний раз редактировалось mooncar; 05.07.2010 в 11:49.
Старый 05.07.2010, 12:04
serdeles вне форума Посмотреть профиль Отправить личное сообщение для serdeles Найти все сообщения от serdeles
  № 7  
Ответить с цитированием
serdeles

Регистрация: May 2003
Адрес: Москва
Сообщений: 186
Сейчас сценарий несколько изменился: объекты могут выйти за пределы сцены. Объекты предполагаются анимированными (шарики будут дрожать мелкой дрожью). Придумали примерно так: есть несколько кнопок, при нажатии на одну из кнопок из центра сцены выскакивают шарики (что-то типа взрыва, как по ссылке), но останавливаются и просто висят, дрожжа.

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

Другой вариант — поместить шарики в отдельный мувик, который потом и бросить на сцену. Вот тут-то и проблема: как распределить эти шарики по всей ширине сцены.
__________________
Достал уж всех своими глупыми вопросами...

Старый 05.07.2010, 12:39
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Пример накидаю, обождите.

Старый 05.07.2010, 13:08
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 9  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Вот посмотрите. По нажатию на кнопку тут нет, зато все перестраивается по мере изменения размера окна.
По нажатию думаю, не очень сложно сделать будет.
http://21multihinge.ru/test/rubber/rubber.html
Код AS1/AS2:
Stage.scaleMode = 'noscale';
Stage.addListener(this);
 
var sWidth:Number = Stage.width ;
var sHeight:Number = Stage.height ;
this.onResize = stOnRezize; 
this.createEmptyMovieClip('balls', 0);
setBalls();
 
function stOnRezize () 
{
	sWidth = Stage.width;
	sHeight = Stage.height;
	setBalls();	
}
 
function setBallsProp(obj) {
	obj._x = Math.random() * sWidth;
	obj._y = Math.random() * sHeight;
	obj._xscale = obj._yscale = Math.random() * 90 + 10;
	obj._rotation = Math.random() * 360;
	obj._alpha = Math.random() * 100;
}
 
 
function setBalls() 
{
	for (z = 1; z < 200; z++) {
		var tmp = balls.attachMovie('ball_id', 'ball' + z, z);
		setBallsProp(tmp);
		var fr:Number = Math.round(Math.random() * 14) + 1;
		tmp.gotoAndPlay(fr);
	}	
}
Есть тут немного лишнего, например, рандомные задания альфы, угла поворота и масштабирования, но это для наглядности.
Процессор грузится, конечно, прилично, но можно попробовать оптимизировать - например, отрисовать в битмапу кадры анимированного мувика.
Главное тут, это:
Код AS1/AS2:
	obj._x = Math.random() * sWidth;
	obj._y = Math.random() * sHeight;


Последний раз редактировалось mooncar; 05.07.2010 в 13:18.
Старый 05.07.2010, 13:48
serdeles вне форума Посмотреть профиль Отправить личное сообщение для serdeles Найти все сообщения от serdeles
  № 10  
Ответить с цитированием
serdeles

Регистрация: May 2003
Адрес: Москва
Сообщений: 186
Спасибо за пример! Сейчас попробую наколдовать что-нибудь :-)
__________________
Достал уж всех своими глупыми вопросами...

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

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

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


 


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


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