преобразование поставщика условных данных в дерево на основе выбора списка - PullRequest
0 голосов
/ 02 августа 2011

Это мои данные XML в файле с именем nodesAndStuff.xml.

<?xml version="1.0" encoding="utf-8"?>
<root>
    <node label="One" />
    <node label="Two" />
    <node label="Three" />
    <node label="Four" />
    <node label="Five" />
    <node label="Six" />
    <node label="Seven" />
    <node label="Eight" />
    <node label="Nine" />
</root>

. Компонентом, использующим этот источник данных, является XMLListCollection, связанный с искрой List, и код для этогоis:

<s:Application name="Spark_List_dataProvider_XML_test"
    xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:mx="library://ns.adobe.com/flex/halo"
    initialize="init();">

<fx:Script>
    <![CDATA[
        private function init():void {
            xmlListColl.source = nodes.children();
        }
    ]]>
</fx:Script>

<fx:Declarations>
    <fx:XML id="nodes" source="nodesAndStuff.xml" />
</fx:Declarations>

<s:List id="lst"
        labelField="@label"
        horizontalCenter="0" verticalCenter="0">
    <s:dataProvider>
        <s:XMLListCollection id="xmlListColl" />
    </s:dataProvider>
</s:List>

Теперь я добавил свое дерево чуть ниже списка и сохранил счет от 10 до 19 в one.xml, от 20 до 29 в two.xml и т. д.в другом файле XML.Я понятия не имею, как подключить XML, содержащий счет от 10 до 19, как один узел в дереве при выборе метки один в списке.

1 Ответ

0 голосов
/ 02 августа 2011

Есть много способов сделать то, что вы хотите сделать.Следуя духу вашего примера, я изменил его, чтобы сделать то, что я думаю вы просите:

<fx:Script>
    <![CDATA[
        private function init():void {
            processXML(one);
        }

        private function processXML(nodes:XML):void {
            xmlListColl.removeAll();
            xmlListColl.source = nodes.children();
        }

    ]]>
</fx:Script>

<fx:Declarations>
    <fx:XML id="one" source="one.xml" />
    <fx:XML id="two" source="two.xml" />
</fx:Declarations>

<s:List id="lst"
        labelField="@label"
        horizontalCenter="0" verticalCenter="0">
    <s:dataProvider>
        <s:XMLListCollection id="xmlListColl" />
    </s:dataProvider>
</s:List>

<s:Button label="Change" click="processXML(two)" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...