来自儿童SWF的沟通

时间:2012-08-10 12:44:27

标签: flash actionscript dispatchevent

我正在努力在一个项目中从一个孩子到父SWF的沟通,其中父母从一个动画片段中调用一个孩子。

父动画片段在动作图层

中有此功能
var loader:Loader = new Loader();
var defaultSWF:URLRequest = new URLRequest("child.swf");
loader.load(defaultSWF);

//I'm using an if statement to check if the movieclip is loaded to stage

if (loader.parent != null) {
loader.dispatchEvent(new Event(Event.ADDED_TO_STAGE)); 
trace("loader added to stage");  // trace returns positive
loader.content.addEventListener("directions", childLoader_someSignalHandler);
}

//once a button in the child SWF is clicks the playhead will 
//change position on the parent.    
function childLoader_someSignalHandler(event:Event):void {
    gotoAndStop("directions");
}

子SWF将此代码发送给父母:

centre_btn.addEventListener(MouseEvent.MOUSE_DOWN, childBtn_mouseDownHandler);
 // thanks to "Florent" for this code.
function childBtn_mouseDownHandler(event:MouseEvent) {
    dispatchEvent(new Event("directions"));
}

我要回复的错误是:

  

TypeError:错误#1009:无法访问null的属性或方法   对象参考。

1 个答案:

答案 0 :(得分:0)

从子MovieClip中,您需要引用回到父MC。相信这可以通过以下方式完成:

MovieClip(root).dispatchEvent(new Event("directions"));