![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 16
|
Доброго времени суток!
Ситуация такая: В основной ролик загружаю внешний swf через addChild(mc). Далее из этого внешнего swf мне нужно обратиться к функциям и свойствам основного ролика. Как это сделать? |
|
|||||
|
В основной:
var loader:Loader = new Loader(); loader.load(new URLRequest("url")); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); function onComplete (e:Event):void { // передаем внешней SWF ссылку на себя e.target.content.parent = this; } function MyFunction ():void { trace('goal'); } Вкратце так.
__________________
Счастье - это хорошее здоровье и плохая память Последний раз редактировалось _sestra_; 13.04.2011 в 18:29. |
|
|||||
|
Цитата:
Цитата:
заменить на это: если уж на то дело пошло )
__________________
Счастье - это хорошее здоровье и плохая память Последний раз редактировалось _sestra_; 13.04.2011 в 18:49. |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
бред какой-то
__________________
Отряд Котовскага |
|
|||||
|
__________________
Счастье - это хорошее здоровье и плохая память |
|
|||||
|
Сори, тупанул.
Однако, всяко лучше делать это через интерфейс: package { import flash.events.IEventDispatcher; /** * Интерфейс для основного класса загружаемой флешки * * @author gloomyBrain */ public interface IContent extends IEventDispatcher { function biteMe():String; } } Если же нам нужно о чем-то попросить главный модуль из загружаемого, мы можем сделать это через sharedEvents: И загружающая флешка: package { import flash.display.Loader; import flash.display.LoaderInfo; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.errors.IllegalOperationError; import flash.events.Event; import flash.net.URLRequest; import flash.system.LoaderContext; /** * * * @author gloomyBrain */ public class Main extends Sprite { public function Main() { if (super.stage) this.init(); else super.addEventListener(Event.ADDED_TO_STAGE, init); } private function init(event:Event = null):void { super.removeEventListener(Event.ADDED_TO_STAGE, init); super.stage.scaleMode = StageScaleMode.NO_SCALE; super.stage.align = StageAlign.TOP_LEFT; // entry point var loader:Loader = new Loader(); var request:URLRequest = new URLRequest("..."); var context:LoaderContext = new LoaderContext(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); loader.load(request, context); } private function onComplete(event:Event):void { var loaderInfo:LoaderInfo = event.currentTarget as LoaderInfo; loaderInfo.removeEventListener(event.type, arguments.callee); var content:IContent = loaderInfo.content as IContent; if (!content) throw new IllegalOperationError("Загруженный контент не реализует IContent!"); // вот тут можем управлять загруженной флешкой из основной content.biteMe(); // или подписаться на события content.loaderInfo.haredEvents.addEventListener(someEvent, someListener); } private function someListener(event:someEvent):void { (event.currentTarget as IContent).biteMe(); } } }
__________________
...вселенская грусть |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 16
|
to _sestra_:
Вы описали обращение в функции родителя, это понятно, а если нужно обратиться к функциям произвольного объекта из основного клипа? Добавлено через 3 минуты to gloomyBrain: сорри, но с Вашим кодом мне нужно разбираться. С ходу не пойму. Не тот у меня уровень работы с as3. |
|
|||||
|
Цитата:
__________________
Счастье - это хорошее здоровье и плохая память |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 16
|
[quote=_sestra_;989255]Сохраняйте ссылку на объект и обращайтесь к его методам
Это обращение в функциям объекта, а мне нужно из подгруженного объекта обратиться к функциям произвольных объектов в основном клипе (видимо по именам этих объектов). |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:48. |
|
|
« Предыдущая тема | Следующая тема » |
|
|