![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2009
Сообщений: 3
|
Здравствуйте, если тема уже была, не пинайте - не нашел...
Подскажите, возможно ли генерировать событие в подгруженном мувиклипе так, чтобы оно было принято и обработано в ролике верхнего уровня? С DispatchEvent'ом не получилось, но, возможно, я не так делаю ![]() Пока единственная идея - на таймер в основном ролике вешаю обработчик, который проверяет переменные - флаги в _root и по ним запускает функции, а флаги пишутся в _root подгруженными файлами. По-моему, это ущербный и ресурсоёмкий путь. подскажите, можно ли событиями такое сделать? Заранее благодарю ![]() Последний раз редактировалось theBlackCat; 01.03.2009 в 16:57. Причина: опечатка |
|
|||||
|
Banned
[+5 15.02.09]
[++5 15.02.09] Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
|
А примрер кода чтобы понять что не так?
|
|
|||||
|
Регистрация: Mar 2009
Сообщений: 3
|
Есть 2 файла:
ticker import mx.events.EventDispatcher; _root.Eventer = function():Void { dispatchEvent({type:"tick"}); trace("tick!"); } _root.EventerID = setInterval(_root, "Eventer", 1000); import mx.events.EventDispatcher; var MainListen:Object = new Object(); var mcLoader:MovieClipLoader = new MovieClipLoader(); lo = new Object(); lo.tick = function(evt){ trace("tack"); } mcLoader.addListener(MainListen); MainListen.onLoadInit = function (mc:MovieClip) { if(mc) { trace("loaded"); ms.addEventListener("tick", lo); } } _root.createEmptyMovieClip("MainMenu", _root.getNextHighestDepth()); mcLoader.loadClip("ticker.swf",MainMenu); ![]() ![]() |
|
|||||
|
Banned
[+5 15.02.09]
[++5 15.02.09] Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
|
Ну поидее нет мувиклип ведь не EventDispatcher.
ticker import mx.events.EventDispatcher; var dispatcher:EventDispatcher = new EventDispatcher(); /*Почему так:/? _root.Eventer = function():Void { this.dispatcher.dispatchEvent({type:"tick"}); trace("tick!"); } _root.EventerID = setInterval(_root, "Eventer", 1000); */ function flushEvent():Void { dispatcher.dispatchEvent({type:"tick"}); } var inteval:Number = setInterval(this, "flushEvent", 1000); function addEventListener(key:String, f:Object):Void { dispatcher.addEventListener(key, f); } var MainListen:Object = new Object(); var mcLoader:MovieClipLoader = new MovieClipLoader(); lo = { }; //Почему не просто функция @_@ - гипновзлгяд :E lo.tick = function():Void { trace("tack"); } mcLoader.addListener(MainListen); MainListen.onLoadInit = function (mc:MovieClip) { if(mc) { trace("loaded"); ms.addEventListener("tick", lo); } } _root.createEmptyMovieClip("MainMenu", _root.getNextHighestDepth()); mcLoader.loadClip("ticker.swf",MainMenu); |
|
|||||
|
Регистрация: Mar 2009
Сообщений: 3
|
Спасибо огромное!!
Всё заработало. Теперь осталось понять принцип ![]() Кто будет пользоваться, как примером - в onLoadInit'е не ms.addEvent, а mc.addEvent (очепятка у меня вышла) |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:24. |
|
|
« Предыдущая тема | Следующая тема » |
|
|