События - общий подход, как говорит другой ответ, и хороший, потому что они отделяют ваше окно заголовка от главного окна. Это хорошая привычка во Flex, и она стоит затраченных усилий, так что это, вероятно, лучший ответ.
Создание массива общедоступной привязываемой переменной в главном окне и заполнение его из окна заголовка - это второй способ, но мне не нравится этот подход, потому что два компонента слишком много знают друг о друге, и вы полагаетесь на данные привязка, которая, вероятно, будет делать больше, чем нужно на самом деле (например, если вы привязываете элемент управления в главном окне к тому же массиву, он будет занят обновлением в фоновом режиме, пока отображается окно заголовка. Это означает, что у вас есть неудобное «Отмена» "иметь дело, если вам нужно).
Просто чтобы дать вам третий подход, вы можете передать функцию в окно заголовка, которая вызывается при закрытии окна. например в вашем окне заголовка у вас есть объявление ...
public var onClose:Function;
напишите себе обработчик в окне заголовка, связанный с событием close
, которое вызывает внешнюю функцию и передает массив ...
private function doClose():void
{
if (onClose != null) onClose(myArray);
}
В этом случае вызывающая сторона должна иметь функцию, которую можно вызвать ...
private function handleTitleWindowClose(myArray:Array):void
{
// do something in here
}
и вы передаете это классу TitleWindow, прежде чем показать его ...
ttlWindow.onClose = handleTitleWindowClose;
Это, вероятно, не так хорошо, как событие, но лучше, чем общая магическая переменная. Это непонятный API, потому что аргументы onClose нигде не задокументированы, и компилятор не обнаружит ошибку в списке аргументов, но это полезный шаблон, чтобы знать.
НТН