我正在尝试为我正在制作的Flash游戏设置一个保存和加载系统。目前,我决定尝试将新游戏菜单中的“保存文件选择”部分工作,然后再继续使用它。我在flash中绘制了“DifficultySelect”屏幕(其中包含保存文件选择以及其他一些内容),然后将其转换为符号。我在其中创建了10个保存文件符号,并为它们创建了基本的动作脚本文件。一旦你进入标题画面,整个'DifficultySelect'就成了我'Main.as'的孩子。我正在尝试将我的保存文件数据保存在我的Main.as中,例如级别,运行状况,进度等,以及当前正在使用的保存文件。但是,我无法为我的Main.as创建一种方法来访问保存文件的MouseClick函数,因为我不能简单地在Main.as文件中有一个Savefile0.MouseEvent.CLICK事件,因为我没有创建一个变量,将其添加到舞台上。
我想我的情况的tl; dr问题版本是:当点击SaveFile0时,如何让我的Main.as激活其中一个函数?另外,我如何引用父类中的孩子?
答案 0 :(得分:0)
你问如何从父母那里引用一个孩子,但由于孩子通常“知道”其父母,我建议遵循以下解决方案:
您的孩子(SaveFile)应该监听事件(MouseEvent)。调度事件后,您有两种选择。您可以在父级上调度自定义事件,也可以直接调用父级的公共函数。
答案 1 :(得分:0)
这是假设您的SaveFile是添加到Main的MovieClip:
在SaveFile中:
var _parentMC:MovieClip = this.parent as MovieClip;
_parentMC.functionToCall();
然而,最好的做法是在SaveFile中调度自定义事件,并在main中监听它:
在SaveFile中:
var customEvent:Event = new Event("customEvent");
this.dispatchEvent(customEvent);
Inside Main:
saveFile.addEventListener("customEvent",functionToCall();
functionToCall(e:Event):void{
}