AS3 - Как вызвать функцию в корне из динамически загруженного мувиклипа? - PullRequest
0 голосов
/ 13 мая 2011

Кто-нибудь знает лучший метод для запуска функции в корне из динамически загруженного мувиклипа (загружаемого с помощью addchild) с использованием AS3, я понимаю, что ориентация на root не лучший способ сделать это?

Спасибо, Пол

Ответы [ 2 ]

1 голос
/ 13 мая 2011

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

private var _functionCaller:MovieClip;

private function onLoadComplete(event:Event):void
{
   _functionCaller = this.parent; // or this.parent.parent or whatever else  
}

private function callExternalFunction():void
{
    if( _functionCaller != null )
       _functionCaller.execute(); 
}

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

private var _dispatcher:EventDispatcher;

//this function will be called from the parent
public function init(dispatcher:EventDispatcher):void
{
   _dispatcher = dispatcher  
}

private function callExternalFunction():void
{ 
    // You could also create a Custom Event
    if( _dispatcher != null )
       _dispatcher.dispatchEvent("call external function");
}
0 голосов
/ 13 мая 2011

Вы должны подумать о своей концепции. Ваш загруженный SWF-файл должен вызывать функцию из фильма, в который он загружен, для правильной работы? загруженный фильм никогда не будет работать автономно?

Вы должны реализовать все функции в вашем загрузчике (родительском) SWF. Загрузчик фильма знает, что он загружает, поэтому, возможно, он сможет вызвать функцию для загруженного клипа. Но наоборот - просто плохой дизайн.

Вы можете реагировать на COMPLETE (загрузка) или ADDED_TO_STAGE для загруженного фильма и реализовывать свою функциональность таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...