有没有人知道使用AS3从动态加载的动画片段(使用addchild加载)触发根中的函数的最佳方法,我知道定位root不是最好的方法吗?
由于 保罗
答案 0 :(得分:1)
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();
}
更好的方法可能是使用事件来通知root调用函数...
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");
}
答案 1 :(得分:0)
你应该考虑一下你的概念。你加载的SWF应该从它加载的电影中调用一个函数才能正常工作?所以加载的电影永远不会独立运行?
您应该在加载程序(父)swf中实现所有功能。加载器电影知道他正在加载什么,所以也许他可以在加载的剪辑上调用一个函数。但另一种方式就是糟糕的设计。
您可以COMPLETE
(加载)或ADDED_TO_STAGE
对已加载的电影做出反应,并以这种方式实现您的功能。