2

エラーの受信静的型クラスの参照を介した未定義の可能性のあるメソッドgetStartButtonの呼び出しこれはgetQuitButtonでも発生します

私はOOPを初めて使用するため、クラスの利用方法にまだ迷っています。誰かが私が間違っていることを理解するのを手伝ってくれませんか?

ここに私のメインクラスの関数があります:

function getStartMenu():void {
    var bFormat:TextFormat, bStart:Sprite, bQuit:Sprite;

    bStart = StartMenu.getStartButton();
    bQuit = StartMenu.getQuitButton();

    bStart.addEventListener(MouseEvent.CLICK, bStartPress);
    bQuit.addEventListener(MouseEvent.CLICK, bQuitPress);
}

私の外部クラスファイルStartMenu.as

package
{
    import flash.display.*;
    import flash.text.TextField;
    import flash.text.TextFormat;

    public class StartMenu extends Sprite
    {

        public function StartMenu():void
        {

        }

        public function getStartButton():Sprite {
            var bFormat:TextFormat, bStart:Sprite, bStartText:TextField;
            bFormat = getFormat();
            bStart = getMenuButton(uint("0X00FF00"));
            bStart.x = stage.stageWidth / 2 - bStart.width - 100;
            bStart.y = stage.stageHeight - bStart.height - 100;
            bStartText = getTextButton(bFormat, "Start");
            bStartText.defaultTextFormat = bFormat;
            return bStart;
        }

        public function getQuitButton():Sprite {
            var bFormat:TextFormat, bQuit:Sprite, bQuitText:TextField
            bFormat = getFormat();
            bQuit = getMenuButton(uint("0X0000FF"));
            bQuit.x = stage.stageWidth / 2 + 100;
            bQuit.y = stage.stageHeight - bQuit.height - 100;
            bQuitText = getTextButton(bFormat, "Quit");
            bQuitText.defaultTextFormat = bFormat;
            return bQuit;
        }


        public function getFormat():TextFormat {
            var bFormat:TextFormat = new TextFormat()
            bFormat.font = "Arial";
            bFormat.bold = true;
            bFormat.color = 0x000000;
            bFormat.size = 28;
            bFormat.align = "center";
            return bFormat;
        }

        public function getMenuButton(bColor:uint):Sprite {
            var bButton:Sprite = new Sprite();
            bButton.graphics.beginFill(bColor, 1);
            bButton.graphics.drawRect(0, 0, 100, 50);
            bButton.graphics.endFill();
            bButton.buttonMode = true;
            bButton.mouseChildren = false;
            return bButton
        }

        public function getTextButton(bFormat:TextFormat, sText:String):TextField {
            var bText:TextField = new TextField()
            bText.defaultTextFormat = bFormat
            bText.text = sText;
            bText.x = -4;
            bText.y = 4;
            return bText;
        }       
    }
}
4

1 に答える 1

5

StartMenu.getStartButton();静的ではないため、静的メソッドを呼び出す方法ですgetStartButton。このエラーが発生します。

getStartButton次のように変更することで、静的メソッドに変えることができます。

public static function getStartButton():Sprite

または、StartMenuクラスのインスタンスを作成して、そのインスタンスメソッドを呼び出すこともできます。

var startMenu:StartMenu = new StartMenu();
var bStart:Sprite = startMenu.getStartButton();
于 2013-03-25T21:40:47.833 に答える