Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   getChildByName у потомка потомка? (http://www.flasher.ru/forum/showthread.php?t=114523)

mre 31.07.2008 22:39

Цитата:

Сообщение от BlooDHounD (Сообщение 755638)
mre, Вы издеваетесь? такое обращение не бывает необходимо :)

Не стану скрывать, конструкцией parent.child я порой пользуюсь, и до сегодняшнего дня у меня это не вызывало беспокойства.
Ситуация: класс Main, у него 2 child'а A и B. В слушателе некоторого события класса B мне необходимо вызвать метод класса A.
Простите мою некомпетентность, но как это можно сделать по-другому?
Или как переписать иерархию классов, чтобы не возникло такой ситуации?
Может быть мне никто ранее не открыл глаза на эти вещи :)

etc 31.07.2008 22:56

Цитата:

Сообщение от mre (Сообщение 755663)
В слушателе некоторого события класса B мне необходимо вызвать метод класса A.
Простите мою некомпетентность, но как это можно сделать по-другому?

Послать событие. Можно даже всплывающее.

mre 31.07.2008 23:17

Цитата:

> Послать событие. Можно даже всплывающее.
Я думал, что в стадии capture событие спускается со stage строго по ветви (stage -> child -> ... -> child -> target) до зкземпляра, инициирующего событие.
Или я ошибаюсь?

Или Вы имеете в виду в моем примере, что экземпляр B должен инициировать событие, затем нужно перехватить это событие в Main и в обработчике вызвать нужный мне метод класса A?

Felicast 31.07.2008 23:27

Цитата:

нужно напсиать вот так
Код:

MovieClip(this.parent.getChildByName("form")).getChildByName("txt")

а я бы сделал так
Код:

(this.parent.getChildByName("form") as MovieClip).getChildByName("txt")
Цитата:

Послать событие. Можно даже всплывающее.
можно вопрос? все-равно ведь нужно знать кому это событие посылать? или я ошибаюсь?

mre 31.07.2008 23:43

Цитата:

> можно вопрос? все-равно ведь нужно знать кому это событие посылать? или я ошибаюсь?
Событие нельзя послать кому-то.
Есть инициатор события и есть цепочка объектов по которым проходит событие и вызывает обработчиков если они есть.

etc 01.08.2008 05:03

Цитата:

Сообщение от mre (Сообщение 755670)
Я думал, что в стадии capture событие спускается со stage строго по ветви (stage -> child -> ... -> child -> target) до зкземпляра, инициирующего событие.
Или я ошибаюсь?

Ошибаетесь, событие посылает target, и оно всплывает до stage.

Цитата:

Сообщение от mre (Сообщение 755670)
Или Вы имеете в виду в моем примере, что экземпляр B должен инициировать событие, затем нужно перехватить это событие в Main и в обработчике вызвать нужный мне метод класса A?

Ну например да. Main суть контроллер A и B.

Felicast, событие просто рассылается по слушателям, если таковые есть.

mre 01.08.2008 10:20

Цитата:

> Ну например да. Main суть контроллер A и B.
Согласен, так более грамотно и эффективно.
Спасибо.

Felicast 01.08.2008 17:04

Цитата:

Сообщение от __etc (Сообщение 755702)
Felicast, событие просто рассылается по слушателям, если таковые есть.

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

ramshteks 01.08.2008 17:57

если яя не ошибаюсь система сообщений везде одна. просто можен на уровне реализации она разная.

программа отслеживает сообщения, а ты добавляешь функции и подписываешь их на события, это значит что твоя функция ставится в очередь. и когда система регистрирует некое событие она просто проходится по этй очереди.

А в виндовсе тже по сути есть слушатель, это та процедурка которую ты цепляешь к окну. просто она одна и вся обработка в ней.
суть та же...


Часовой пояс GMT +4, время: 21:26.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.