![]() |
"Безразмерная" сцена
Приветствую!
Возможно, мой вопрос звучит некорректно. Возможно, звучит не первый раз (и всё равно некорректно :). Но всё-же: можно ли как-то задать параметры сцены, чтобы она была как некий безразмерный фон, который бесконечно растягивается/стягивается? Для чего это нужно, сейчас объясню. Я специализируюсь в области психопатологии; для визуализации данных (обучения, наглядности, выявления некоторых сильных-слабых мест в классификации, итд), хочу сделать что-то вроде интерактивной карты психических болезней. Визуально достаточно простенькую, в виде графов. Грубо говоря, несколько заболеваний (кружков-кнопок) объединяются в некую систему линиями. Нажимаем на кружок - и он разворачивается ещё на ряд линий и кружков, соединяющихся с ним в особом порядке (обязательные симптомы - короткими подсвеченными линиями, дополнительные - длинными, факультативные - длинными и пунктирными и т.д.). При нажатии на симптом, выдаётся его краткое описание в несколько предложений и кнопка "подробнее", выводящее на отдельную страницу, где будет подробнее. Но суть уже не в этом. А в том, что таких симптомов будет очень много (более 500). На экран они не поместятся. К тому же, если карта ещё и развёртывается как матрёшка (а она развёртывается в двух случаях: болезнь на синдромы, синдром на симптомы) - нужно недюжего размера сцена, где разместить это всё. Чтоб удобно зуммировать, иметь на экране только нужный кусок этой карты, вращать её во все стороны, удерживая мышкой. Так что же, ставить изначально 100500 на 100500 пикселей, либо есть некая опция сцены как фона гибко растягивающегося/сужающегося? Возможно, реализовать это можно и нужно как-то иначе.. но я не знаю, как :) Буду рад советам! P.S. Как реализовать зуммирование и возможность движения по сцене, удерживая курсор (как в гугл картах, например), я тоже не знаю. Но начать надо с того, в верном ли направлении я думаю. Когда-то делал анимации в флэш 8м, ещё от макромедии, теперь как-то подзабылось :) |
Вложений: 1
|
Цитата:
Добавлено через 31 секунду А вот в АС вообще не показывает. |
Я привел пример. в Хроме - не работет. Общая идея понятна.
Тут лучше видно: http://galaxywars.ru/FM.html |
Всё ок в хроме) как минимум в моем)
Занятная поделка:) Можно код поглядеть? |
Дюк......... Ну таки тебе смотреть мой код - это портить фэншуй и кунг-фу.
Не стоит :) |
Дарк :)
Если код работает его язык не повернется г-нокодом назвать:) Феншуй в результатах, а не в процессе:) Я пропагандирую те практики, которые как минимум мне помогают достигать этих результатов. Надеюсь кому-то еще. Ты на другой стороне силы :) Но она не менее интересна :) В твоих работах всегда есть некая изюминка :) |
Спасибо!
На днях найду свободную минуту и гляну код/подумаю/отвечу. Пока что - набросал пример одной маленькой развёртки, чтоб самому посмотреть как оно будет выглядеть. Чуть позже выложу. Добавлено через 7 минут dark256, пример крайне хорош, по части зума, наверное, идеально. Более того, он оказался настолько крут, что можно растягивать объекты в любую сторону и карта будет запоминать эту структуру. А можно ли сделать, допустим, так, что бы разок эту структуру задать вручную (всё равно придётся - в силу учёта расстояния и отношения между объектами как легенды карты), то есть, один раз расположить как надо, и программа запомнит это/будет всегда выдавать такое расположение? В соавторы? Почему бы и нет) |
Теоретически - да, изначальная структура будет задаваться.
Сейчас это просто собранный на коленке образец. |
Ещё раз всем салют!
Был кусок свободного времени и отсутствие цивилизации, в течении которого немного разобрался с кодом. С безразмерной сценой вопрос отпал - сцена растягивается сама: то, что не помещается -не пропадает. Теперь я научился вертеть карту (макет) путём start/stop drag через события мышки. Scaling карты сделал так: " function mouseWheel (event:MouseEvent): void { var tempScale:Number = (event.delta < 0) ? -0.1 : 0.1; evts.scaleX = evts.scaleY += tempScale; } " Ещё научился делать переключатель из одной клавиши (нажимаешь 1 раз - появляется объект, 2й - исчезает). Разобраться довольно полезно, макет работает. Всё двигается, это хорошо : ) Осталось только одно: когда переходишь от карты к описанию симптома, карта исчезает. Когда возвращаешься обратно - хорошо бы вернуться в те самые координаты (масштаб, х, у карты), которые задал за миг до этого перехода - т.е. именно в то место, откуда пришёл (нажал на кнопку). Сейчас думаю т.о.: в коде кнопки надо задать перменные, равняющуеся х, у и масштабу объекта карты. При возвращении в кадр 1, допустим, этими переменными дать координаты объекту (дальше он переходит к кадру 2, где осуществляется управление юзером и лежит код). Только что-то упускаю |
| Часовой пояс GMT +4, время: 15:38. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.