![]() |
Можно ли как-то загрузить 500к элементов.
Хочу в один муви клип загрузить 500 000 кнопок, чтобы каждая выполняла определенные действия при нажатии.
Я пробовал создавать муви клип как огромный, по размеру слой, И в него добавлял кнопки(муви клипов), максимум на что комп способен, это 50к-100к кнопок. А нужно раз в 10 больше. Если ли какие либо обходные возможности. Например я создал мувиклип, в который вставлял вручную картинку, после чего программно добавлял 10000 мувиклипов, которые добавлялись 400 мс, а если вручную добавить 10 картинок в муви клип, а потом этот мувиклип добавить 10000 раз, то он это делает те же 400 мс. То есть получается что всего 100000 картинок. А как кнопки их сделать можно просто область проверять в которой находится курсор, и если он производит какието манипуляции в области, то чтото менять. Чисто теоретически можно добавить в один мувиклип 500к картинок, и загрузить всего один мувиклип. Но в ручную добавлять 500к картинок, это безумие. А когда пробую циклом, то опять получается безумно долго. Есть другие варианты? |
А не проще сделать одну картинку и по нажатию смотреть в какую координату тыкнули?
|
Зачем вам полмиллиона (!!) кнопок?
|
Цитата:
|
Цитата:
Добавлено через 2 минуты А по-существу, действительно по-моему единственный вариант - сделать одну картинку. и при нажатии проверять куда ткнули. Если требуются эффекты при наведении - будет конечно посложней, но все равно реализуемо. Добавлено через 4 минуты Хотя тогда придется обрабатывать MOUSE_MOVE объекта, судя по всему невообразимых размеров. И это будет жутко тормозить. Так что от эффектов лучше отказаться ;) |
Карта навигации c Deep zoom'ом, будут города, при наведении на которые, появляться справка (будут не только города). Я хотел обойтись 2 масштабами, которые можно приближать и отдалять от построек, до максимального отдаления всей карты под размер стейджа, и вот при макс отдалении как раз будут видны города(и не только) и объектов будет примерно 500к-1м. Причем карта интерактивная, так что статичной картинкой сделать не особо получается.
Есть возможность такое реализовать? |
Посмотрите как сделал Гугл.
|
Да посмотрел на карту гугл. там действительно можно включать метки картинок, плюсметки википедии, в общей сложности там тонна элементов, как это они реализовали, как раз то что я хочу у вас узнать.
|
Подгружайте то, что в экран попадает. Как с экрана пропадет - удаляйте.
|
Хм, ну без этого то никак, это и так понятно, вопрос в другом, при максимальном отдалении в экран попадает - все. Так что по любому будет тонна объектов, видимо выход один, делать максимальное отдаление так чтобы объектов было не более 5к.
|
При максимальном отдалении иконки элементов всё равно будут налезать друг на друга, так что можно скажем сотню кнопок заменить на одну, а для неё выводить информацию по всем элементам, которые там собраны. Соответственно при приближении кнопка рассыпается на элементы.
|
А если создать одну картинку - карту, и координатно распределить над ней мувиклипы (города и прочее).
Мувиклипам выставить уровевнь зума. При клике мыши считывать координаты и подгружать соответствующую графику. Например при максимальном удалении показываются 10 самых крупных городов, при максимальном приближении - кусок карты + все объекты, попавшие в экран. |
Очевидно нужна реализация слоев.
|
В картах обычно отображение не прямолинейно - что попало, то и видим, - а более сложное: каждый тип объектов имеет свойство отображения себя только в определенном диапазоне масштабов. К примеру, реки могут быть "от и до", наиболее крупные города от очень малого масштаба до нескольких миллиметров в диаметре - как точка (кружочек), при большем отображение города уже не идет, отображаются крупные улицы. И так далее, главное - "умная" система отображения и хорошо спроектированная база данных.
|
Да придется повозиться, видимо самый грамотный вариант, при максимальном отдалении, надо оставлять только крупные объекты.
А по поводу одной картинки, опять таки не могу, потому что меняется динамически, значит все время картинка будет меняться. |
Цитата:
|
Цитата:
|
| Часовой пояс GMT +4, время: 15:32. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.