PDA

Просмотр полной версии : Фамильное дерево hierarchy tree


graphictest
17.08.2011, 17:48
Не могу найти, как создать динамически фамильное дерево.
что то типа этого:http://www.adesblog.com/images/geni.jpg
буду благодарен за любую наводку!

saikspaik
17.08.2011, 17:53
Не могу найти, как создать динамически фамильное дерево.
Странно, как такое можно искать. Тебе нужна команда createDynamicFamilyTree? Такой нет.
Может у тебя что-то конкретно не получается?

NikolyA
17.08.2011, 18:07
так можно сделать такое дерево самому, или в чем проблема?

Astraport
18.08.2011, 10:20
Во Flex не сложно. В TourDeFlex есть похожие вещи с исходниками.

graphictest
19.08.2011, 12:16
Просто не выходит построение самого дерева с любым количеством нодов
типа такого рисунка (organization chart)
http://www.imbrandon.com/wp-content/uploads/2011/05/organization-chart4.gif

Добавлено через 1 минуту
я не программер - работаю только во Flash

toFL
19.08.2011, 12:24
я не программер - работаю только во Flash

1) Немного придется углубиться в AS3
2) Заказать разработку в разделе Вакансии (http://www.flasher.ru/forum/forumdisplay.php?f=75)

P.S. навскидку, то, с чем придется столкнуться:
Function (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/Function.html?filter_flex=4.1&filter_flashplayer=10.2&filter_air=2.6), Переменные (http://help.adobe.com/ru_RU/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7fcf.html), Повтор (http://help.adobe.com/ru_RU/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7fcf.html), XML (http://help.adobe.com/ru_RU/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7ff5.html), Sprite (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/display/Sprite.html?filter_flex=4.1&filter_flashplayer=10.2&filter_air=2.6), TextField (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/text/TextField.html?filter_flex=4.1&filter_flashplayer=10.2&filter_air=2.6), Graphics (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/display/Graphics.html?filter_flex=4.1&filter_flashplayer=10.2&filter_air=2.6), EventDispatcher (http://help.adobe.com/ru_RU/AS3LCR/Flex_4.0/flash/events/EventDispatcher.html)

graphictest
19.08.2011, 13:01
я попросил только подсказку, как построить дерево с разным количесивом нодов и не просил, чтобы мне дали готовую аппликацию. ас3 мне знаком

Genzo
19.08.2011, 13:26
указывайте родителя объекта и все , если родителя нет значит объект первый. вообще трудно так на пальцах объяснить как это сделать , но ничего в этом сложного нет

silin
19.08.2011, 14:15
типа подсказка как построить дерево
package
{
import flash.display.Sprite;
import flash.events.Event;

public class Main extends Sprite
{

public function Main():void
{
var data:XML =
<node label="root">
<node label="level1_1">
<node label="level1_1_1"/>
<node label="level1_1_2"/>
</node>
<node label="level1_2">
<node label="level1_2_1">
<node label="level1_2_1">
<node label="level1_2_1_1"/>
</node>
</node>
</node>
</node>;

addChild(new Node(data));

}

}

}
//////////////
import flash.display.Graphics;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Rectangle;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;

class Node extends Sprite
{
public const GAP:Number = 10;
public var label:TextField = new TextField();
private var data:XML;

public function Node(data:XML)
{
this.data = data;
//рисует себя
label.text = data.@label;
label.autoSize = TextFieldAutoSize.LEFT;
label.border = true;
label.background = true;
label.backgroundColor = 0xEEEEEE;
addChild(label);
addEventListener(Event.ADDED_TO_STAGE, addedToStage);

// добавляет детей
for (var i:int = 0; i < data.*.length(); i++)
{
addChild(new Node(data.*[i]));
}


}

private function addedToStage(e:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, addedToStage);

y = parent.getBounds(parent).bottom + GAP;
x = parent.x + GAP;
if (parent is Node)
{
var pRect:Rectangle = Node(parent).label.getRect(this);
if (parent is Node)
{
graphics.lineStyle(0);
graphics.lineTo(pRect.left, pRect.bottom);
}
}
}

}

graphictest
29.08.2011, 00:48
спасибо!
я только не могу одного понять, как расположить все это дело по центру и по горизонтали(но это проще :))
буду разбираться....