Flash AS3-如何从嵌套的动态加载movieclip调用根中的函数?

Flash AS3-如何从嵌套的动态加载movieclip调用根中的函数?,flash,actionscript-3,Flash,Actionscript 3,有人知道使用AS3从动态加载的movieclip(使用addchild加载)触发根目录中函数的最佳方法吗?我知道以根目录为目标不是最好的方法 谢谢 保罗你应该考虑一下你的想法。您加载的SWF应该调用它加载到的电影中的函数才能正常工作?那么加载的电影永远不会独立运行 您应该在加载程序(父级)swf中实现所有功能。加载器电影知道他正在加载什么,所以也许他可以在加载的剪辑上调用一个函数。但另一方面就是糟糕的设计 您可以对加载的电影的完成(加载)或添加到舞台做出反应,并以这种方式实现您的功能。Danie

有人知道使用AS3从动态加载的movieclip(使用addchild加载)触发根目录中函数的最佳方法吗?我知道以根目录为目标不是最好的方法

谢谢
保罗你应该考虑一下你的想法。您加载的SWF应该调用它加载到的电影中的函数才能正常工作?那么加载的电影永远不会独立运行

您应该在加载程序(父级)swf中实现所有功能。加载器电影知道他正在加载什么,所以也许他可以在加载的剪辑上调用一个函数。但另一方面就是糟糕的设计


您可以对加载的电影的
完成
(加载)或
添加到舞台
做出反应,并以这种方式实现您的功能。

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");
}

嗨,Daniel,问题是一旦加载的movieclip中的动画完成,我不会使用基于根的函数触发,所以我不知道如何从父级监视它?+1为什么我没有提到事件调度方法;-)他应该这样做。