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 に答える