Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   собственный слушатель событий (http://www.flasher.ru/forum/showthread.php?t=193216)

pomuс 24.01.2013 14:27

это что мне в конструкторе класса B надо указывать параметр - класс А ???
чего то я нифига не понимаю. Если бы я имел такую структуру, то я мог бы просто обратится из класса В через гетер к классу А и получить что мне надо, но это мне не подходит

СлаваRa 24.01.2013 14:31

Вы не поняли примера. Класс В слушает класс А.
У вас же класс B слушает сам себя, т.е. он ждет, когда он же отправит событие.
Я не знаю как у Вас устроен проект, поэтому я написал небольшой пример, в котором показал 1 из вариантов решения задачи, а так же как один объект получает событие от другого.

strangedk 24.01.2013 14:32

проверьте трейсом xmlList.length(), и поставьте трейс в самом начале ф-ции arrayFill.

Подозрение что либо функция не вызывается, либо XML приходит пустой, следовательно цикл не выполняется вовсе.

pomuс 24.01.2013 14:46

Вложений: 1
strangedk там все в порядке. Все выводится.

СлаваRa да, я как то не догнал я примера... Еще раз просмотрел- получатся передаете в экземпляр класса В параметр а, с типом данных класса А.
Я не могу понять как это можно применить в моем случае? Мне надо передать либо xml:XML либо idArr:Array.
вот структура

pomuс 24.01.2013 15:14

Вложений: 1
вот вырезка из Мука... что то я совсем запутался. Вроде делаю как у него в примере

СлаваRa 24.01.2013 15:40

В последнем скрине, в конструкторе создается экземпляр класса Game и осуществляется подписка на событие Game.GAME_OVER. Выше, видимо, описан класс Game, который рассылает событие Game.GAME_OVER в методе endGame.

Мой пример отличается тем, что класс A не создается в конструкторе, а передается туда в качестве параметра.

Wolsh 24.01.2013 15:42

pomuс предполагает, что события рассылаются в эфир и вылавливаются оттуда всеми, в ком написано addEventListener, внутри.
На самом деле слушатель добавляется конкретному объекту, который может послать интересующее событие.
Событие отправляется не в "эфир", а конкретным подписчикам лично в руки. По сути, объект, рассылающий событие, просто вызывает у подписавшихся объектов метод и отдает этому методу объект класса Event, содержащий описание события.

Слушается не событие в вакууме, а объект, который может послать событие.

pomuс 24.01.2013 15:47

так, в общем в любом случае тогда надо создавать экземпляр класс загрузчика XML и обработчика массива. Это лучше сделать если просто написать отдельный класс, который делает только эту функцию, и передает определенные параметры (массивы)
Что же, спасибо за разъяснение

Wolsh 24.01.2013 15:51

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

pomuс 24.01.2013 15:55

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


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

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