0

我在导入课程时遇到问题。我可以创建类的实例,但不能使用公共静态成员。当我将所有文件放在同一个包中时,我没有任何问题,但是当我必须导入时,我收到此错误:1119:通过静态类型 Class 的引用访问可能未定义的属性 MAIN_MENU。

这是主要课程的开始:

import flash.display.Sprite;
import flash.events.Event;

import classes.gameStates.MainMenuScreen;

public class DocumentClass extends Sprite
{
    private var mainMenuScreen:MainMenuScreen;

    public function DocumentClass()
    {
        displayMainMenu();
    }

    private function displayMainMenu():void
    {
        mainMenuScreen = new MainMenuScreen();
        mainMenuScreen.x = 0;
        mainMenuScreen.y = 0;
        mainMenuScreen.addEventListener(MainMenuScreen.START_GAME, onStartGame);
        mainMenuScreen.addEventListener(MainMenuScreen.CREDITS, onCredits);
        addChild(mainMenuScreen);
    }

这是 MainMenuScreen 类

package classes.gameStates
{   
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.SimpleButton;

public class MainMenuScreen extends Sprite
{   
    public static const START_GAME:String = "startGame";
    public static const CREDITS:String = "credits";

    public function MainMenuScreen()
    {
        startGameButton.addEventListener(MouseEvent.CLICK, onStartGame);
        creditsButton.addEventListener(MouseEvent.CLICK, onStartCredits);
    }

    public function Destroy():void
    {
        startGameButton.removeEventListener(MouseEvent.CLICK, onStartGame);
        creditsButton.removeEventListener(MouseEvent.CLICK, onStartCredits);
    }

    private function onStartGame(e:MouseEvent):void
    {
        dispatchEvent(new Event(MainMenuScreen.START_GAME));
    }

    private function onStartCredits(e:MouseEvent):void
    {
        dispatchEvent(new Event(MainMenuScreen.CREDITS));
    }
}
}
4

1 回答 1

0

你怎么能让这个工作?或者你已经截断了你的代码?首先,您在 MainMenuS 中的按钮未构造。其次,onStartGame 和 onCredit() 是 PRIVATE,DocumentClass 无法访问它。

尝试先更改其修饰符。

于 2012-07-23T14:44:35.450 回答