0

我无法SharedObject在我的游戏中实现。

我的主文档类Engine和一个名为 and 的单独类mcEndGameScreen,该类链接到我的 Flash CS6 文档。

在我的 Flash 文档中,有两个 Text 字段,其实例名称为finalScorebestScore

我想要完成的是保存并加载玩家在游戏结束时获得的最终当前分数和总体最佳分数。我当然希望这些值显示在我的mcEndGameScreen.

当用户玩游戏时,我如何更新和跟踪显示在游戏中的高分?

HighScore 在我的 Engine 类中,如下所示:

//Text Fields
public var highScoreText:TextField;
public var nScore:Number;

在我的引擎功能中:

//Add Text fields to stage
stage.addChild(highScoreText);

//Add score to text field
nScore = 0; 
updateHighScore();

然后是高分函数:

public function updateHighScore():void
{
   highScoreText.text = "High Score: " + nScore;
}

现在,我将如何分享分数并将它们显示在我的 mcEndGameScreen 上?同样在我的引擎中,我像这样引用屏幕:

public var menuEnd:mcEndGameScreen; 

然后我只是在游戏结束时打电话给孩子加载。

但我正在考虑在我的引擎课上做这样的事情:

public var _sharedObject:SharedObject;

然后在我的引擎构造函数中:

_sharedObject = SharedObject.getLocal("myGame");

但老实说,不太确定在那之后该怎么办?或者如何将public var finalScore:TextFieldandpublic var bestScore:TextField与我的主 Engine 类一起使用。因为它们链接到我的 mcEndGameScreen。

任何帮助将不胜感激。谢谢。

4

1 回答 1

1

如果您想将 highScore 传递给mcEndGameScreen类,请添加新的 var 和新的 setter 函数,如下所示:

private var _highScore:String;

public function set highScore(value:String): ():Void {
    _highScore = value;
}

现在在Engine课堂上这样设置:

menuEnd.highScore = String(nScore);

SharedObject像这样存储 highScore :

_sharedObject = SharedObject.getLocal("myGame");
_sharedObject.highScore = nScore;
_sharedObject.flush(); //Write to shared object

要访问highScore存储在SharedObject这样的:

menuEnd.highScore = _sharedObject.data.highScore;
于 2014-02-16T11:38:14.943 回答