![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jul 2002
Адрес: Israel
Сообщений: 24
|
Не могу найти, как создать динамически фамильное дерево.
что то типа этого: ![]() буду благодарен за любую наводку!
__________________
Graphictest |
|
|||||
|
Регистрация: Nov 2009
Сообщений: 300
|
Цитата:
Может у тебя что-то конкретно не получается? |
|
|||||
|
Регистрация: Dec 2006
Сообщений: 1,764
|
так можно сделать такое дерево самому, или в чем проблема?
__________________
а за окном атлантический океан! |
|
|||||
|
Регистрация: Jul 2002
Адрес: Israel
Сообщений: 24
|
Просто не выходит построение самого дерева с любым количеством нодов
типа такого рисунка (organization chart) ![]() Добавлено через 1 минуту я не программер - работаю только во Flash
__________________
Graphictest |
|
|||||
|
Banned
|
Цитата:
2) Заказать разработку в разделе Вакансии P.S. навскидку, то, с чем придется столкнуться: Function, Переменные, Повтор, XML, Sprite, TextField, Graphics, EventDispatcher Последний раз редактировалось toFL; 19.08.2011 в 12:29. |
|
|||||
|
Регистрация: Jul 2002
Адрес: Israel
Сообщений: 24
|
я попросил только подсказку, как построить дерево с разным количесивом нодов и не просил, чтобы мне дали готовую аппликацию. ас3 мне знаком
__________________
Graphictest |
|
|||||
|
указывайте родителя объекта и все , если родителя нет значит объект первый. вообще трудно так на пальцах объяснить как это сделать , но ничего в этом сложного нет
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
|
типа подсказка как построить дерево
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); } } } } |
|
|||||
|
Регистрация: Jul 2002
Адрес: Israel
Сообщений: 24
|
спасибо!
я только не могу одного понять, как расположить все это дело по центру и по горизонтали(но это проще )буду разбираться....
__________________
Graphictest |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:51. |
|
|
« Предыдущая тема | Следующая тема » |
|
|