Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.03.2012, 01:04
un1ted вне форума Посмотреть профиль Отправить личное сообщение для un1ted Найти все сообщения от un1ted
  № 1  
Ответить с цитированием
un1ted

Регистрация: May 2010
Сообщений: 3
Question Многоуровневая древовидная диаграмма

Всем привет,
делаю сейчас вот такую штуку (во вложении картинка diagramm.gif)..

Диаграмма имеет один центр и n вложений. Все они должны распределяться в зависимости от уровня и количества их на уровне.

Идея заимствована c http://mbostock.github.com/d3/ex/tree.html

Итак, есть XML-ка вида

Код:
<?xml version="1.0" encoding="UTF-8"?>
<category0 cat_name="Уровень 0">
	<category1 cat_name="Уровень 0.1">
		<category2 cat_name="Уровень 0.1.0">
			<category3 cat_name="Уровень 0.1.0.0"/>
		</category2>
		<category2 cat_name="Уровень 0.1.1">
			<category3 cat_name="Уровень 0.1.1.0"/>
		</category2>
	</category1>	
</category0>
, я ее гружу, разбираю и вытаскиваю все параметры. Затем я аттачу клипы на сцену и даже задаю им координаты.

Код AS1/AS2:
function circ_attach():Void
{
	for(var i=0; i<cat_num; i++){
 
		main_mc.attachMovie("circ_mc", "circ"+i+"_mc", i);
		main_mc["circ"+i+"_mc"].cat_name_txt.text = cat_arr[i];
		main_mc["circ"+i+"_mc"].cat_name_txt.autoSize = true;
 
		main_mc["circ"+i+"_mc"]._x = 50 * lvl_arr[i];
		main_mc["circ"+i+"_mc"]._y = num_arr[i] * 20 + Stage.height/2;
 
	}
}
Как мне их правильно распределить по кругу в зависимости от подуровня, его родителя и угла поворота?

Вопросы вдогонку:
Как сделать такие же соединительные кривые как на картинке?
Как сделать, чтобы при наведении на кружек n-го уровня подсвечивались все его родители?

Спасибо.
Изображения
 

Старый 01.03.2012, 16:53
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
un1ted, задачка интересная, но коротким решением тут не ограничиться, ответ тянет на небольшую, но полноценную разработку. Одними советами тут не обойтись.
Если сами принимаете решения, что-то попроще может быть выберите для реализации?
__________________
Идите первым!

Старый 06.03.2012, 18:05
un1ted вне форума Посмотреть профиль Отправить личное сообщение для un1ted Найти все сообщения от un1ted
  № 3  
Ответить с цитированием
un1ted

Регистрация: May 2010
Сообщений: 3
Окей,
остался один вопрос, из тех, что вдогонку:

Как сделать такие же соединительные кривые как на картинке?

Координаты точек задаются через радиус и угол. Провел прямые, скривить их получается, только не могу найти зависимость. Про кубические сплайны читал, но как их сделать во флэше, если в методе curveTo можно добавлять только одну якорную точку? Составить из двух?

После просмотра тонны формул выкипает уже немного.. может кто сталкивался и есть готовое решение?

Старый 06.03.2012, 18:16
lexa2000lexa вне форума Посмотреть профиль Отправить личное сообщение для lexa2000lexa Найти все сообщения от lexa2000lexa
  № 4  
Ответить с цитированием
lexa2000lexa

Регистрация: Sep 2005
Сообщений: 950
посмотрите вот тут http://www.silin.su/#AS2/fit

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:17.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
as2 , диаграмма , поворот объекта
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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