![]() |
события из подгруженного клипа
Здравствуйте.
Есть два клипа loader & loaded. Прошу, не обращайте внимание, что скрипт для Loader написан в АС1 - это по-быстрому для наглядности и здесь проблем нет Код:
import mx.events.EventDispatcher;это то, что в loaded - но мне не очень нравится работа с рутом. Код:
import mx.events.EventDispatcher; |
А что ты хочешь оставить в _root? Если уж так хочется, то можешь юзать LocalConnection…
з.Ы. Delegate.create(this,gameHandler) — ссылка будет на mclListener внутри gameHandler. Я не вижу смысла в создании Listener-а, почему бы не подписать самого себя на события MovieClipLoader-а? |
__etc, код для лоадера грязен, он лишь для экспериментов. Там и делегат я случайно всунул - по-привычке из АС2. Проблема у меня с подгружаемым - и то теоритическая. В руте подгружаемого клипа я хотел бы оставить только инициализацию класса и все. Но, понятно, что в таком случае loader должен подписываться на события примерно так game.B.addEventListener(тра-ла-ла). Т.е. я должен знать имя объекта класса внутри loaded - а вот этого-то я и не хочу знать.
|
Тогда сделайте один общий класс, у которого одно из статических свойств ссылается на интерфейс. А в loaded.swf напишите класс, реализующий данный интерфейс и замените ссылку в общем классе на данный.
Если непонятно, я объясню на примере. |
интересно для меня. К сожалению, я довольно плохо разбираюсь в интерфейсах (во всяком случае с данным их назначением). Не могли бы для примера дать пару строк принципиального кода?
|
У нас есть интерфейс IGameClass:
Код:
interface IGameClass {Код:
import IGameClass;Код:
import LinkExchanger;Код:
import GameClass;Код:
import LinkExchanger;На выходе в loader.swf не должно быть класса GameClass. |
спасибо, дальше разберусь.
|
Да, необходимые методы для общения нужно описать в интерфейсе и реализовать в классе…
|
это уже понятно, спасибо еще раз. Интуитивно понимаю, что интерфейсы - мощная штука, но вот вразумительных объяснений не находил. Теперь, на конкретном примере, разберусь.
|
сори если не в тему (тут такие механизмы в ход пошли..), но если ворос тока в том 'чтоб код, генерирующий события, прописывать не в _root ', то я не вижу почему бы его не прописыать где угодно, а вещать заставить третий объект, в глобале например
loader: Код:
AsBroadcaster.initialize(_global.broadcaster={});Код:
var game=new GameClass();Код:
class GameClass{ |
| Часовой пояс GMT +4, время: 13:26. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.