Я пытаюсь сделать редактор вопросов XML во флэш-памяти.
В основном я загружаю XML в компонент Tree - XML примерно так:
<questions>
<question id="1" type="radio" text="This is question 1" isBranch="true">
<option id="1.1" correct="false" text="This is option 1" />
<option id="1.2" correct="false" text="This is option 2" />
<option id="1.1" correct="false" text="This is option 1" />
<option id="1.2" correct="false" text="This is option 2" />
<option id="1.3" correct="true" text="This is option 3" />
<option id="1.4" correct="false" text="This is option 4" />
</question>
<question id="2" type="check" text="This is question 2" isBranch="true">
<option id="2.1" correct="true" text="This is option 1" />
<option id="2.2" correct="false" text="This is option 2" />
<option id="2.3" correct="true" text="This is option 3" />
</question>
</questions>
Так что это входит в дерево. При изменении я получаю список опций для выбранного вопроса (item..option) - и этот XMLList передается в (пользовательский) компонент.
Этот компонент (не уверен, что это лучший способ сделать это, но все же ...) - имеет пару элементов управления Repeater - один связан с XMLList для вопроса о радио, другой связан с XMLList проверки коробочный вопрос.
Каждый ретранслятор зацикливает количество опций, помещая TextInput (для редактирования текста опций) и либо радио, либо флажок (в зависимости от типа вопроса)
Итак, что я получаю, когда текст редактируется для параметра, XML в этом TextInput привязывается к XML, который является dataProvider для дерева. Так, например, если «Это вариант 1» изменен на «Это вариант Foo» - дерево обновляется с этим.
Пока мой ретранслятор (например, для радиоприемников) выглядит так
<mx:Repeater id="repeaterRadio" dataProvider="{optionsListRadio}">
<mx:TextInput width="359" id="radioText"
editable="true" enabled="true" text="{repeaterRadio.currentItem.@text}"/>
<mx:RadioButton id="radioArray"
data="{repeaterRadio.currentItem.@id}"
selected="{repeaterRadio.currentItem.@correct=='true'}"/>
</mx:Repeater>
Без привязки работает - все, что я получаю, это предупреждения типа:
warning: unable to bind to property 'text' on class 'XML' (class is not an IEventDispatcher)
Я понимаю, почему это так, но затрудняюсь связать данные, которые пользователь может редактировать, с исходным XML-кодом. Я знаю, что могу сделать само дерево доступным для редактирования, но на самом деле это не вариант.
Так что любые указатели или идеи будут очень благодарны!