Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Нужен совет профессионала (http://www.flasher.ru/forum/showthread.php?t=79445)

Bar_Duck13 08.05.2006 16:34

Нужен совет профессионала
 
Я делал карту города. ~1300 улиц. Все улицы - мувики, размещённые вручную и каждый со своим именем. Все должны реагировать на события onPress. Есть компонент ComboBox. В нём 1300 строк - названий этих улиц. Вот вопрос: это всё очень тормозит. Даже по отдельности. Неужели FLASH загибается при таком количестве объектов и строк в списке. Ссылку на карту города достану завтра (я не помню адресс, сайт не мой). Может я изначально выбрал не тот путь решения. Может надо было размещать строки во внешнем XML, а улицы как-то подгружать по мере необходимости с проверкой, не входят ли улицы в область просмотра? Или вообще названия улиц выдавать из SQL. Чтобы самому найти оптимальное решение, нужно перелопатить ОЧЕНЬ, ОЧЕНЬ много... После ваших ответов я буду хоть знать, в какую сторону всё это лопатить. Заранее БаЛЬШОЕ СПАСИБО!

Nirth 08.05.2006 16:37

А вы часто видели в Windows выпадающие списки с 1300 опциями? я что то не припомню.
Думаю в виндах тоже будет тормозить.
Как вариант могу посоветовать сделать ComboBox'ов два.
В одном пользователь выбирает район, а в другом появляються улицы района..стоит постараться, чтобы не было более 50 опций на ComboBox

iNils 08.05.2006 16:42

Еше надо знать в каком районе находится данная улица. Лучше делать в первом алфавит, а вот втором уже улицы на эту букву.

orangeline 08.05.2006 16:47

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

iNils 08.05.2006 16:49

Еще вариант. Первоночально ComboBox пуст. Вводишь первую букву и в него грузятся улицы начинающиеся на нее и так далее.

Bar_Duck13 08.05.2006 17:04

В Windows точно видел. Есть карта алматы(она не моя)(сделана на каком-то языке программирования). Хотел прикрепить, но она весит 1.8Мб в архиве. Работает очень быстро, но моя карта размещается на сайте и при этом она весит ~400кб. Вот приемущество FLASH! А недостаток - тормоза...

Bar_Duck13 08.05.2006 17:07

И как можно прикрепить файл размером 1Мб и более? Или никак? А иначе вопрос не будет понятен до конца.

iNils 08.05.2006 17:23

Какой файл?

etc 08.05.2006 19:18

Вероятно, программу...

valvika 09.05.2006 15:33

Изучаем: http://www.mapnetwork.com/maps/ .
Совершенно нецелесообразно постоянно держать в Комбо улицы типа "1-го заводского" переулка и "2-го переулка Строителей". В комбо должны висеть основные магистрали и обьекты. Все остальное грузи в МуСКуЛ-базу и пусть тянут поиском. Даже в этом случае группировка целесообразна.

Bar_Duck13 09.05.2006 21:06

Nirth обещал помочь с выкладыванием архива в 1,8Мб. Тогда всем будет пища для ума. Это катра Алматы с самыми мелкими улицами и в ComboBox, и на катре. Делаю подобное, с дальнейшим улучшением. Работы ещё дофига. Прошу снисхождения по поводу недоделок. Вот моя карта...

Bar_Duck13 09.05.2006 21:38

:-( Моя карта 220Кб. не могу вложить. Уже написал письсо Nirth. Ладно качайте её с http://www.1kz.biz/maps/almaty/.

bbexp 09.05.2006 23:54

Bar_Duck13, надо оптимизировать алгоритм.
Если постоянно держать информацию обо всем городе - то естествено ролик будет тормозить.
один из вариантов - разбить город на районы (гениально - правда?)
для каждого района - свой свф-файл и лист для комбоБокса.
Или структуировать это как то по алфавиту - действительно не стоит работать с целым списком сразу - пользователю это не нужно, а машине тем более. Подгружать информацию только по мере необходимости.
Главное увязать список с соответсвующей свф-кой через уникальный id

valvika 10.05.2006 03:28

Пока еще тонна недоделок, но вопрос извлечения "тенге" решен в первую очередь.:)
Две основные недоработки по коду ( я не затрагиваю диз ):
1.Карту можно утянуть за ее пределы и полностью потерять ориентацию. Необходим ограничитель. Вполне возможно, что это и внутри города - просто пустошь без улиц. Ничего не понятно.
2.Люди, хорошо не знающие города, чувствуют растерянность. Необходима маленькая карта, отображающая весь город и позицию видимой части карты.
Все это даже важнее, чем тормоза в Комбо - я их особо и не почувствовал. И еще, информацию об улицах и обьектах необходимо вынести из флеш-ролика во внешний ХМЛ-файл или МуСКуЛ-базу.
ЗЫ. Насколько мне известно, конкурирующий проект для Алма-Аты есть сейчас в разработке и они дальше продвинулись. Так что не теряй время. :)

_kos 10.05.2006 10:29

Подход изначально неверный. Основную нагрузку должна нести база данных, а flash должен предоставлять красивый удобный интерфейс. Прежде чем сделать карту, нужно продумать архитектуру всего приложения. Тогда она у тебя будет весить не 400 кб. а как минимум в 2 раза меньше.

__i 11.05.2006 16:35

на счет комбо. можно хоть 10000 тыщь засунуть только нужно комбо нормально написать (т.е. не юзать стандартный). допустим 10 позиций для отображения, улицы просто в массиве, скролом завазян на массиве а не на списке, мы меняем положение стартового индекса в массиве и отображаем в позициях 10 шт начиная со стартового индекса.

Идеем дальше... _kos верно сказал - нужно думать, прежде чем делать!!!.
карту удобнее разбить на районы (повторяюсь немного), но для того чтобы нормально/быстрее работало при отображении и зуме (минимальный зум - показываем только все районы с важными улицами/названиями, при увеличинии показываем конкретный район с большей детализацией). т.е. количество элементов отрисованных в данный момент сводим к минимуму.. (типа 20 райнов* (5 главных улиц +5 главных заведений) = 200 объектов. уже легче чем 1300, 1 район 30 улиц + 100 домов). ну это я так в общем, филосовствую... при нормальном подходе я думаю получиться цаца

UrbanMan 14.05.2006 20:59

Я думаю стоит использовать связку Flash - SwfKit - SQL, если не критично то, что исходный файл будет "exe".

БД SQL без проблем цепляется к SWFKit, работает гораздо быстрее, чем при использовании XML.

Antares 14.05.2006 23:27

Цитата:

Сообщение от iNils
Еще вариант. Первоночально ComboBox пуст. Вводишь первую букву и в него грузятся улицы начинающиеся на нее и так далее.

Made my day

artcraft 15.05.2006 01:54

__i - дельный совет, и про комбобокс и про степень детализации,
только я разбивал бы не на районы, а на квадраты,
как это делается на бумажных картах

__i 15.05.2006 15:37

artcraft - ну да я это и имел ввиду %), район отображения, а не конкретный район города %))


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

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