![]() |
Хаотичное распределение объектов (резина)
Подскажите, есть ли способ программно хаотично расположить объекты по всей ширине резинового флеша? При этом объекты не должны выходить за пределы видимой области.
Наподобие того, как реализовано тут http://www.norwegianoil40years.no/, только без анимации. |
А с упорядоченным, нехаотичным расположением по всей ширине "резинового" флеша получается? В чем загвоздка-то?
Берите ширину Stage.width и раскидывайте рандомно по ней ваши объекты. |
С объектами всё в порядке. Дело в том, что задача не раскидать объекты по сцене, а поместить на сцену 1 мувик (кроме него на сцене есть другие мувики), в котором много объектов. Вот именно их надо разбросать по всей ширине. То, что имеется на сцене, нормально «прорезинено».
|
Добавляете на сцену ваш мувик, в котором много объектов и распределяете в нем их рандомно, с учетом Stage.width.
Задаете максимальное значение x и минимальное значение. Если ваш мувик-контейнер приаатачивается в начало координат (по умолчанию так), то минимальное будет 0. Ну и скооректировать их тоже нужно, учитывая размеры объектов, чтобы они вблизи границ не залезали на них. Трудность-то или непонимание на каком этапе? |
То есть, выходит, что для отдельного мувика тоже можно задавать значения Stage.width? Попробую...
|
Да нет же. Stage.width (и Stage.height) используете при расчете рандомного разброса.
PS. Если мувиков будет много и их анимация не предполагается, во избежание тормозов также рекомендую отрисовать контейнер с ними в битмапу. PPS. Еще нюанс - вам надо определиться с одним моментом: либо разброс делать всякий раз заново при растяжении окна браузера (по вашей ссылке разброс идет вообще непрерывно), либо разброс сразу сделать достаточно большим по ширине и высоте, чтобы при растяжении окна браузера площадь гарантированно была покрыта объектами. Правда как быть при этом быть с "не должны выходить за пределы видимой области", я не знаю. Вам должно быть виднее, как это противоречие разрешить - ведь с одной стороны вы не хотите, чтобы объекты вылезали или находились на границе окна, с другой стороны, "резиновость" предполагает то, что пользователь в любой момент может растянуть / сжать окно, то есть изменить расположение его границ. |
Сейчас сценарий несколько изменился: объекты могут выйти за пределы сцены. Объекты предполагаются анимированными (шарики будут дрожать мелкой дрожью). Придумали примерно так: есть несколько кнопок, при нажатии на одну из кнопок из центра сцены выскакивают шарики (что-то типа взрыва, как по ссылке), но останавливаются и просто висят, дрожжа.
Собственно, я могу сделать это и ручками, однако, придётся каждому шарику присваивать своё имя и прописывать в коде сцены, что как-то слишком громоздко. Другой вариант — поместить шарики в отдельный мувик, который потом и бросить на сцену. Вот тут-то и проблема: как распределить эти шарики по всей ширине сцены. |
Пример накидаю, обождите.
|
Вот посмотрите. По нажатию на кнопку тут нет, зато все перестраивается по мере изменения размера окна.
По нажатию думаю, не очень сложно сделать будет. http://21multihinge.ru/test/rubber/rubber.html Код AS1/AS2:
Процессор грузится, конечно, прилично, но можно попробовать оптимизировать - например, отрисовать в битмапу кадры анимированного мувика. Главное тут, это: Код AS1/AS2:
|
Спасибо за пример! Сейчас попробую наколдовать что-нибудь :-)
|
| Часовой пояс GMT +4, время: 04:13. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.