Кто-нибудь знает, как удалить родительский экземпляр из одного из его детей в AS 3? - PullRequest
0 голосов
/ 01 февраля 2011

Я собираю небольшую программу во Flash, в которой есть маленькие окна, которые пользователь может разместить на холсте. Я хочу, чтобы на них были маленькие кнопки «закрыть», но указанные кнопки были бы дочерними элементами окна и имели свои собственные классы. Поскольку в AS 3 нет глобальных переменных, кто-нибудь знает, как я могу это сделать? Вызов «parent.parent.parent.deleteWindow ()» не работает. Объяснение высокого уровня ОК; Я могу опубликовать код (это как четыре класса), если кто-то хочет увидеть особенности.

Ответы [ 2 ]

1 голос
/ 01 февраля 2011

для кнопки добавьте прослушиватель события при нажатии, и тогда функция для нее может быть примерно такой:

function onClick($e:MouseEvent):void{
  var parentMC:MovieClip = e.target.parent;
}

это немного грубый подход, и вы должны подумать о создании более безопасного подхода. Использование регистрации событий / диспетчеризации или еще лучше сигналов , ООП, MVC RobotLegs и т. Д.

удачи

1 голос
/ 01 февраля 2011

Вы хотите, чтобы ваш класс Button был 'EventDispatcher'.Когда кнопка нажата, вы можете отправить свой closeEvent и прослушать событие в вашем окне.Это позволит вашему окну выполнять необходимую логику для выключения и удаления самого себя.

Если вы хотите, чтобы ваш основной Canvas управлял окнами, вы можете заставить свой холст прослушивать событие в окнах.Если событие вызывается на кнопке, оно должно всплыть до вашего окна UIComponent, и Canvas может удалить любые окна, в которые отправляется «closeEvent».

Если вы предоставите примеры кода, я могу дать вам более конкретныйпример.

...