![]() |
Нужен совет профессионала
Я делал карту города. ~1300 улиц. Все улицы - мувики, размещённые вручную и каждый со своим именем. Все должны реагировать на события onPress. Есть компонент ComboBox. В нём 1300 строк - названий этих улиц. Вот вопрос: это всё очень тормозит. Даже по отдельности. Неужели FLASH загибается при таком количестве объектов и строк в списке. Ссылку на карту города достану завтра (я не помню адресс, сайт не мой). Может я изначально выбрал не тот путь решения. Может надо было размещать строки во внешнем XML, а улицы как-то подгружать по мере необходимости с проверкой, не входят ли улицы в область просмотра? Или вообще названия улиц выдавать из SQL. Чтобы самому найти оптимальное решение, нужно перелопатить ОЧЕНЬ, ОЧЕНЬ много... После ваших ответов я буду хоть знать, в какую сторону всё это лопатить. Заранее БаЛЬШОЕ СПАСИБО!
|
А вы часто видели в Windows выпадающие списки с 1300 опциями? я что то не припомню.
Думаю в виндах тоже будет тормозить. Как вариант могу посоветовать сделать ComboBox'ов два. В одном пользователь выбирает район, а в другом появляються улицы района..стоит постараться, чтобы не было более 50 опций на ComboBox |
Еше надо знать в каком районе находится данная улица. Лучше делать в первом алфавит, а вот втором уже улицы на эту букву.
|
по районам мне кажется будет громоздко (улиц в районе много), согласен с inils'ом насчет алфавита
|
Еще вариант. Первоночально ComboBox пуст. Вводишь первую букву и в него грузятся улицы начинающиеся на нее и так далее.
|
В Windows точно видел. Есть карта алматы(она не моя)(сделана на каком-то языке программирования). Хотел прикрепить, но она весит 1.8Мб в архиве. Работает очень быстро, но моя карта размещается на сайте и при этом она весит ~400кб. Вот приемущество FLASH! А недостаток - тормоза...
|
И как можно прикрепить файл размером 1Мб и более? Или никак? А иначе вопрос не будет понятен до конца.
|
Какой файл?
|
Вероятно, программу...
|
Изучаем: http://www.mapnetwork.com/maps/ .
Совершенно нецелесообразно постоянно держать в Комбо улицы типа "1-го заводского" переулка и "2-го переулка Строителей". В комбо должны висеть основные магистрали и обьекты. Все остальное грузи в МуСКуЛ-базу и пусть тянут поиском. Даже в этом случае группировка целесообразна. |
Nirth обещал помочь с выкладыванием архива в 1,8Мб. Тогда всем будет пища для ума. Это катра Алматы с самыми мелкими улицами и в ComboBox, и на катре. Делаю подобное, с дальнейшим улучшением. Работы ещё дофига. Прошу снисхождения по поводу недоделок. Вот моя карта...
|
:-( Моя карта 220Кб. не могу вложить. Уже написал письсо Nirth. Ладно качайте её с http://www.1kz.biz/maps/almaty/.
|
Bar_Duck13, надо оптимизировать алгоритм.
Если постоянно держать информацию обо всем городе - то естествено ролик будет тормозить. один из вариантов - разбить город на районы (гениально - правда?) для каждого района - свой свф-файл и лист для комбоБокса. Или структуировать это как то по алфавиту - действительно не стоит работать с целым списком сразу - пользователю это не нужно, а машине тем более. Подгружать информацию только по мере необходимости. Главное увязать список с соответсвующей свф-кой через уникальный id |
Пока еще тонна недоделок, но вопрос извлечения "тенге" решен в первую очередь.:)
Две основные недоработки по коду ( я не затрагиваю диз ): 1.Карту можно утянуть за ее пределы и полностью потерять ориентацию. Необходим ограничитель. Вполне возможно, что это и внутри города - просто пустошь без улиц. Ничего не понятно. 2.Люди, хорошо не знающие города, чувствуют растерянность. Необходима маленькая карта, отображающая весь город и позицию видимой части карты. Все это даже важнее, чем тормоза в Комбо - я их особо и не почувствовал. И еще, информацию об улицах и обьектах необходимо вынести из флеш-ролика во внешний ХМЛ-файл или МуСКуЛ-базу. ЗЫ. Насколько мне известно, конкурирующий проект для Алма-Аты есть сейчас в разработке и они дальше продвинулись. Так что не теряй время. :) |
Подход изначально неверный. Основную нагрузку должна нести база данных, а flash должен предоставлять красивый удобный интерфейс. Прежде чем сделать карту, нужно продумать архитектуру всего приложения. Тогда она у тебя будет весить не 400 кб. а как минимум в 2 раза меньше.
|
на счет комбо. можно хоть 10000 тыщь засунуть только нужно комбо нормально написать (т.е. не юзать стандартный). допустим 10 позиций для отображения, улицы просто в массиве, скролом завазян на массиве а не на списке, мы меняем положение стартового индекса в массиве и отображаем в позициях 10 шт начиная со стартового индекса.
Идеем дальше... _kos верно сказал - нужно думать, прежде чем делать!!!. карту удобнее разбить на районы (повторяюсь немного), но для того чтобы нормально/быстрее работало при отображении и зуме (минимальный зум - показываем только все районы с важными улицами/названиями, при увеличинии показываем конкретный район с большей детализацией). т.е. количество элементов отрисованных в данный момент сводим к минимуму.. (типа 20 райнов* (5 главных улиц +5 главных заведений) = 200 объектов. уже легче чем 1300, 1 район 30 улиц + 100 домов). ну это я так в общем, филосовствую... при нормальном подходе я думаю получиться цаца |
Я думаю стоит использовать связку Flash - SwfKit - SQL, если не критично то, что исходный файл будет "exe".
БД SQL без проблем цепляется к SWFKit, работает гораздо быстрее, чем при использовании XML. |
Цитата:
|
__i - дельный совет, и про комбобокс и про степень детализации,
только я разбивал бы не на районы, а на квадраты, как это делается на бумажных картах |
artcraft - ну да я это и имел ввиду %), район отображения, а не конкретный район города %))
|
| Часовой пояс GMT +4, время: 17:01. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.