Управление гибким деревом, отображающее только элементы ветви, а не конечные элементы - PullRequest
0 голосов
/ 24 сентября 2010

Я создал страницу mxml, которая отображает древовидный элемент управления, однако данные отображаются только в виде ветвей. Даже элементы, которые являются листьями, отображаются как ветви. Что я делаю неправильно? Пожалуйста, помогите!

спасибо, тон

<mx:Script>

    <![CDATA[

        import mx.collections.ArrayCollection;

        public function init():void {
            var item:Object;
            var array:Array = new Array();

            var xml:XML =      
                <course>          
                    <section>              
                        <title>Introduction to Actionscript</title>              
                        <section>              
                            <title>Lesson 1: Variables</title>              
                            <section>                  
                                <title>Topic 1: Data types</title>              
                            </section>              
                        </section>          
                    </section>      
                </course>;    



            item = parseStructure(xml);  

            array.push(item);

            var arrColl:ArrayCollection = new ArrayCollection(array);

            Tree.dataProvider = arrColl;

        }


        private function parseStructure(xml:XML):Object{    
            var obj:Object = new Object();
            obj.label = xml.title;
            if(xml.section != null) {
                obj.children = new ArrayCollection();
                for each (var child:XML in xml.section) {
                    obj.children.addItem(parseStructure(child));         
                }
            }

            return obj;

        }

    ]]>


</mx:Script>


<mx:HBox>
    <mx:Tree id="Tree" width="300"/>       
</mx:HBox>

Ответы [ 2 ]

1 голос
/ 28 сентября 2010

Я подозреваю, что при отладке кода вы увидите, что xml.section не равен нулю. Обработка XML в flex временами глупа и пытается быть полезной. Вероятно, он делает что-то глупое, например, возвращает весь объект XML, когда xml.section имеет значение null ...

0 голосов
/ 09 апреля 2014

Да, свойство children объекта должно быть нулевым, этого недостаточно, если это пустая коллекция. Ссылка на hasChildren не совсем ясна в этом отношении, по крайней мере мне :):

Для других объектов возвращает true, если у узла есть непустое дочернее поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...