![]() |
Флэш и более 3.000 объектов.
Добрый день.
делал карту во флеше. И столкнулся с такой проблемой: Накопилось на карте уже более 3000 объектов. И карта стала тормозить жутко. Как можно облегчить жизнь карте? ПОдумал, может создавать объекты только тогда, когда они в поле зрения должны быть. Есть файл с коориднатами этих объектов. Когда ролик загружается, он создает и размешает на карте эти объекты. Вот думаю, сделать что-нить с hitTest. Но как сделать, чтобы он по всей базе пробегал, и узнавал какие объекты сейчас в поле зрения должны быть? Или может как-нить подругому можно сделать? Добавлено через 21 минуту Код AS1/AS2:
ну вот что получилось. На поле есть объект, который масштабируется по размеру окна. hitTest проверяет столкновение этого объекта с объектами из массива. Какой-нить другой способ есть? |
Если объекты неанимированные - можно в bitmapdata их отрисовывать поверх карты.
|
но получиться что просто рисованная карта. Объекты нужно чтобы были активны.
Добавлено через 14 минут проблемка с тем кодом котовый выше. Появляются только те объекты, который попадают в кооридантную сетку mc_hittest. как решить ее? :( |
Можно всеравно с битмапом работять зная координаты обьектов. Просто рисовать что нужно когда нужно, на самом деле довольно удобно правда не по флешийски... Ну вообще советую описать все более подробна тогда и помощь будет более обьемна.
|
т.е. получилось что подгруженные объекты находяться в объекте, который мы передвигаем с помощью startDrag(). Следовательно их координаты не меняются (так и нада).
А в hitteste мы сравниваем координаты mc_hittest c координатами из базы этих объектов. Но mc_hittest ведь не перемещается, а стоит на месте. Получается в итоге, что мы видим только часть объектов, координаты которых равны mc_hittest. Вот. Получается, нам нужно двигать и это mc_hittest? Добавлено через 5 минут Более подробно: Все объекты во флеше отрисованы. Карта города. Фон сохраннен отдельно, дома сохранены отдельно (отдельная файл). Загружается флешка. Фон подгрузился. На него подгружаем дома и распологаем их согласно их ним координатам. Вот. Двигаем все это чудо просто с помощью startDrag(). ОБъектов слишком много. тормозит это дело. Поэтому решил, создавать объекты не сразу, а по мере их необходимости. Вот. На поле, в root'e есть объект, который выступает в роле видимого поля. Он ресайзиться под размер окна. Я сравнию координаты из базы домов, с координатами этого объекта. Но коориднаты этого объекта статичны ведь будут, как быть в этом случае? Насчет битмапа - не делал ниразу. Читаю. Но я так понял, это просто создание большой картинки получиться? а как же кликабельность объектов? |
Ну как по клику смотреть есть ли дом в этой точке(если это точка то идеально ^^). Далее делаем что надо или рисуем подсвеченый дом в место обычного или там какие то действия делаем если клик был по дому %)
|
| Часовой пояс GMT +4, время: 22:30. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.