Перезагрузить переменную главного окна во всплывающем окне - PullRequest
0 голосов
/ 12 августа 2011

У меня есть вопрос о том, как получить доступ к переменной главного окна из всплывающего окна.

Я создаю всплывающее окно в главном окне и передаю переменную «содержимое» в это всплывающее окно в виде следующего кода:

<mx:Script>
    <![CDATA[
    // ......
    popwin = PopUpManager.createPopUp(UIComponent(parentApplication), PopupWindow, true) as PopupWindow;
    popwin.parentView = this; // parentView is an IFlexDisplayObject
    popwin.content = content;
    PopUpManager.centerPopUp(popwin);
    // ......
    ]]>
</mx:Script>

В popwin я изменил значение переменной «content», но я хочу сбросить значение «content» при нажатии кнопки «Сброс» на popwin.

Я знаю, я отправляюсобытие в окне popwin и добавление прослушивателя в главное окно. Фрагмент кода в popwin:

parentView.dispatchEvent( new CustomEvent(CustomEvent.RESET) );

Фрагмент кода в главном окне:

addEventListener(CustomEvent.RESET, resetContent);

public function resetContent():void{
    this.content = loadContent();
}

Но значение «content» не зависитСброс в popwin.

Есть ли что-то, что я пропустил?

Есть ли другой способ обновить "содержимое" во всплывающем окне?

===================== Обновление вопроса на 15/8/2011 =============================

Я использую следующий код в функции createComplete () в popwin:

BindingUtils.bindProperty(textInput, "text", content, "name", false);

Когда я изменяю текстовое значение textInput и сбрасываю содержимое, оно загружает оригинальное значение content.name вмy журнал трассировки, но текстовое значение textInput не возвращается к исходному значению.

Если я использую следующий код вместо BindingUtils.bindProperty:

[Bindable]
public var content:Content;
......
<mx:TextInput id="textInput" text="{content.name}" />

И выполните то же действие,content.name перезагружается в моем журнале трассировки, но текстовое значение в textInput установлено пустым.

Кто-нибудь знает почему?

Ответы [ 2 ]

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

Просто установите контент снова.

public function resetContent():void{
    if (popwin != null){
     popwin.content = this;
    }
}
0 голосов
/ 12 августа 2011

Попробуйте использовать:

popwin = PopUpManager.createPopUp(UIComponent(parentApplication), PopupWindow, true) as PopupWindow;
popwin.parentView = this; // parentView is an IFlexDisplayObject
popwin.content = content;
BindingUtils. bindProperty(popwin, "content", this, "content", false, true);
PopUpManager.centerPopUp(popwin);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...