Flex 3: целевые данные XML с идентификатором textarea - PullRequest
1 голос
/ 06 марта 2012

Здравствуйте и спасибо за ваше время. Рассмотрим следующий уменьшенный пример более крупного приложения:

У меня есть текстовые области с атрибутами id и событиями клика:

<mx:TextArea click="launchMyPopUp(event);" id="box1" text="blahblahblah"/>
<mx:TextArea click="launchMyPopUp(event);" id="box2" text="blahblahblah"/>
<mx:TextArea click="launchMyPopUp(event);" id="box3" text="blahblahblah"/>

Они запускают следующую функцию:

private function launchMyPopUp(e:MouseEvent):void{
      var myId:String = e.currentTarget.id;
      var win:Window = new Window();
      win.title = myId;
      win.sourceId = myId;
      PopUpManager.addPopUp(win,this,true);
      PopUpManager.centerPopUp(win);
 }

Это хорошо работает. Появится всплывающее окно с общедоступной переменной 'sourceId', вставленной в тег label. Итак, я знаю, что я получаю значение атрибута id выбранного элемента (box1, box2 или box3) во всплывающее окно.

Введите образец XML-файла:

<gallery>
<car id="box1">
    <pic>camaro1.jpg</pic>
    <title>Camaro 1</title>
    <date>1997</date>
</car>
<car id="box2">
    <item>box2</item>
    <pic>camaro2.jpg</pic>
    <title>Camaro 2</title>
    <date>1998</date>
</car>
<car id="box3">
    <item>box3</item>
    <pic>camaro3.jpg</pic>
    <title>Camaro 3</title>
    <date>1999</date>
</car>

То, что я хотел бы видеть, - когда щелкают текстовые области, их соответствующее значение id передается функции всплывающего окна, которая затем используется для получения связанных дочерних данных из файла XML и отображения их во всплывающем окне (которое является компонентом TitleWindow).

Я дошел до того, что увидел переданный идентификатор в теге метки во всплывающем окне:

<mx:Label text="{sourceId}"/>

Я не уверен, как разговаривать с XML-файлом со значением id. Я перепробовал множество вариантов и потерпел неудачу. Любая помощь будет оценена. Ура!

1 Ответ

0 голосов
/ 07 марта 2012

Как насчет добавления источника XML в свойство win.data, а затем, когда у вас есть идентификатор, вы можете выполнить цикл через this.data.car внутри окна и искать car.id == sourceId.

Когда вы нашли это, остальное можно использовать.

...