符号类,用于记录类AS3

时间:2014-12-22 01:08:35

标签: actionscript-3 class

我的文档类中包含以下代码:

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?

由于

1 个答案:

答案 0 :(得分:1)

您需要引用Main内的MainMenu对象。您可以通过构造函数传递它:

mainMenu = new MainMenu(this);

MainMenu内,您现在可以将事件注册到Main内的方法。

public function MainMenu(main:Main) {
    logo.addEventListener(MouseEvent.CLICK, main.initGame);
    //...
}