Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   "Безразмерная" сцена (http://www.flasher.ru/forum/showthread.php?t=204615)

Странник 06.11.2013 20:44

"Безразмерная" сцена
 
Приветствую!

Возможно, мой вопрос звучит некорректно. Возможно, звучит не первый раз (и всё равно некорректно :). Но всё-же: можно ли как-то задать параметры сцены, чтобы она была как некий безразмерный фон, который бесконечно растягивается/стягивается?

Для чего это нужно, сейчас объясню. Я специализируюсь в области психопатологии; для визуализации данных (обучения, наглядности, выявления некоторых сильных-слабых мест в классификации, итд), хочу сделать что-то вроде интерактивной карты психических болезней. Визуально достаточно простенькую, в виде графов. Грубо говоря, несколько заболеваний (кружков-кнопок) объединяются в некую систему линиями. Нажимаем на кружок - и он разворачивается ещё на ряд линий и кружков, соединяющихся с ним в особом порядке (обязательные симптомы - короткими подсвеченными линиями, дополнительные - длинными, факультативные - длинными и пунктирными и т.д.). При нажатии на симптом, выдаётся его краткое описание в несколько предложений и кнопка "подробнее", выводящее на отдельную страницу, где будет подробнее. Но суть уже не в этом.

А в том, что таких симптомов будет очень много (более 500). На экран они не поместятся. К тому же, если карта ещё и развёртывается как матрёшка (а она развёртывается в двух случаях: болезнь на синдромы, синдром на симптомы) - нужно недюжего размера сцена, где разместить это всё. Чтоб удобно зуммировать, иметь на экране только нужный кусок этой карты, вращать её во все стороны, удерживая мышкой.
Так что же, ставить изначально 100500 на 100500 пикселей, либо есть некая опция сцены как фона гибко растягивающегося/сужающегося?

Возможно, реализовать это можно и нужно как-то иначе.. но я не знаю, как :)
Буду рад советам!


P.S. Как реализовать зуммирование и возможность движения по сцене, удерживая курсор (как в гугл картах, например), я тоже не знаю. Но начать надо с того, в верном ли направлении я думаю. Когда-то делал анимации в флэш 8м, ещё от макромедии, теперь как-то подзабылось :)

dark256 06.11.2013 22:56

Вложений: 1
Можно. Наработка на эту тему.
Бесконечное раскрывание веток, взаимосвзяи, зум, панорамирование.

Наработки есть. Описать и научить - не смогу. Можете взять в соавторы.

Зум реализуется колесом мышки, но на форуме флэшка не получает фокус, поэтому он не работает.

Fractional.swf   (12.9 Кб)

Akopalipsis 07.11.2013 01:20

Цитата:

Зум реализуется колесом мышки, но на форуме флэшка не получает фокус, поэтому он не работает.
В IE работает зум.

Добавлено через 31 секунду
А вот в АС вообще не показывает.

dark256 08.11.2013 02:17

Я привел пример. в Хроме - не работет. Общая идея понятна.

Тут лучше видно:

http://galaxywars.ru/FM.html

Dukobpa3 08.11.2013 02:28

Всё ок в хроме) как минимум в моем)
Занятная поделка:) Можно код поглядеть?

dark256 08.11.2013 02:44

Дюк......... Ну таки тебе смотреть мой код - это портить фэншуй и кунг-фу.
Не стоит :)

Dukobpa3 08.11.2013 03:01

Дарк :)
Если код работает его язык не повернется г-нокодом назвать:)
Феншуй в результатах, а не в процессе:) Я пропагандирую те практики, которые как минимум мне помогают достигать этих результатов. Надеюсь кому-то еще.

Ты на другой стороне силы :) Но она не менее интересна :)
В твоих работах всегда есть некая изюминка :)

Странник 15.11.2013 19:38

Спасибо!

На днях найду свободную минуту и гляну код/подумаю/отвечу.
Пока что - набросал пример одной маленькой развёртки, чтоб самому посмотреть как оно будет выглядеть. Чуть позже выложу.

Добавлено через 7 минут
dark256, пример крайне хорош, по части зума, наверное, идеально.

Более того, он оказался настолько крут, что можно растягивать объекты в любую сторону и карта будет запоминать эту структуру. А можно ли сделать, допустим, так, что бы разок эту структуру задать вручную (всё равно придётся - в силу учёта расстояния и отношения между объектами как легенды карты), то есть, один раз расположить как надо, и программа запомнит это/будет всегда выдавать такое расположение?

В соавторы? Почему бы и нет)

dark256 19.11.2013 10:32

Теоретически - да, изначальная структура будет задаваться.
Сейчас это просто собранный на коленке образец.

Странник 02.12.2013 14:40

Ещё раз всем салют!

Был кусок свободного времени и отсутствие цивилизации, в течении которого немного разобрался с кодом. С безразмерной сценой вопрос отпал - сцена растягивается сама: то, что не помещается -не пропадает. Теперь я научился вертеть карту (макет) путём 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, где осуществляется управление юзером и лежит код). Только что-то упускаю

mooncar 02.12.2013 15:14

Странник, код в сообщении оформляется тегами. Отредактируйте.


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

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