我的文档类中包含以下代码:
package {
import flash.events.Event;
public class Main extends MovieClip {
public var mainMenu = new MainMenu();
public function Main() {
// constructor code
startGame();
}
public function startGame(){
mainMenu.x = stage.stageWidth/2
addChild(mainMenu);
}
public function initGame(event){
//Adding player with and stuff
}
}
}
这在我的MainMenu课程中:
package {
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
public class MainMenu extends MovieClip {
private var logo = new Logo();
public function MainMenu() {
// constructor code
logo.x = - logo.width/2;
logo.y = 50;
logo.addEventListener(MouseEvent.CLICK, initGame);
addChild(logo);
}
}
}
当我尝试测试游戏时,我收到此消息; 1120:访问未定义的属性initGame。 为什么mainMenu.as不能访问公共函数initGame?
由于
答案 0 :(得分:1)
您需要引用Main
内的MainMenu
对象。您可以通过构造函数传递它:
mainMenu = new MainMenu(this);
在MainMenu
内,您现在可以将事件注册到Main
内的方法。
public function MainMenu(main:Main) {
logo.addEventListener(MouseEvent.CLICK, main.initGame);
//...
}