gpt4 book ai didi

actionscript-3 - AS3 使用静态类型类问题调用可能未定义的方法

转载 作者:行者123 更新时间:2023-12-02 05:10:05 24 4
gpt4 key购买 nike

收到错误通过静态类型类的引用调用可能未定义的方法 getStartButtongetQuitButton 也会发生这种情况

由于我是 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;
}
}
}

最佳答案

StartMenu.getStartButton(); 是您调用静态方法的方式,因为 getStartButton 不是静态的,您会收到此错误。

您可以将 getStartButton 更改为静态方法:

public static function getStartButton():Sprite

或者您可以创建 StartMenu 类的实例并调用它的实例方法。

var startMenu:StartMenu = new StartMenu();
var bStart:Sprite = startMenu.getStartButton();

关于actionscript-3 - AS3 使用静态类型类问题调用可能未定义的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15624972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com