Форум 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=176055)

un1ted 01.03.2012 01:04

Многоуровневая древовидная диаграмма
 
Вложений: 1
Всем привет,
делаю сейчас вот такую штуку (во вложении картинка 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-го уровня подсвечивались все его родители?

Спасибо.

mooncar 01.03.2012 16:53

un1ted, задачка интересная, но коротким решением тут не ограничиться, ответ тянет на небольшую, но полноценную разработку. Одними советами тут не обойтись.
Если сами принимаете решения, что-то попроще может быть выберите для реализации?

un1ted 06.03.2012 18:05

Окей,
остался один вопрос, из тех, что вдогонку:

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

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

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

lexa2000lexa 06.03.2012 18:16

посмотрите вот тут http://www.silin.su/#AS2/fit


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

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