【问题标题】:Display dynamic variable on next key frame AS3在下一个关键帧 AS3 上显示动态变量
【发布时间】:2012-09-03 18:40:57
【问题描述】:

我正在使用 AS3 创建游戏。游戏结束时,我需要在下一个关键帧上显示玩家的最终得分。当玩家与敌人发生碰撞时,玩家得分增加 1。

这是我更新分数的代码。

var playerScore:int = 0;

function updateTextFields():void
{
    playerScoreText.text = ("Score: " + playerScore);
}

function caught(enemy:MovieClip):void 
{
    enemy.removeEventListener(Event.ENTER_FRAME,dropEnemy);
    removeChild(enemy);
    playerScore++;
    updateTextFields(); 
}

我需要在游戏结束屏幕上显示玩家的最终得分,但因为 playerScore 的值是动态的并且递增 1,所以我不能只显示

playerScoreText.text = ("Score: " + playerScore); 

因为变量默认为0。

我已经尝试过,但我不知道如何让它发挥作用。

var playerScore = playerScore;   

【问题讨论】:

  • 你的问题不是很清楚,是什么问题? playerScore 总是 0 吗?你想避免 0 吗?

标签: actionscript-3 flash variables


【解决方案1】:

如果您想在每一帧中使用 var,您必须将其放入一个类中(在 Main 函数之前)。此外,您应该使用公共或私有前缀。如果添加 private,则只能在此类中使用此变量,而 public 将使您能够在与该文件相关的每个类中使用它。此外,最好使用 uint 而不是 int。

例如,它应该是这样的:

package
{
       //import...
       public class Main extends //(you should write Sprite, MovieClip... there)
       {
            public var playerScore:uint = 0;
            public function Main()
            {
                //constructor
            }
       }
}

【讨论】:

  • -1 为什么使用uint 而不是intint 表现更好。 uint 应仅在值不应低于 0 或表示永远不会低于 0 的值时使用。此外,您没有必须使用 public 或 @987654328 @当你声明成员时,如果你不声明,它们将默认为internal
【解决方案2】:

如果您摆脱了= 0,那么它应该可以工作。帧脚本将 playerScore 设置为 0。如果您只有声明var playerScore:int;,则该变量将默认为零,并且Flash 不会将声明playerScore = 0 添加到帧脚本(每次到达特定帧时调用的函数)。

一般来说,最好显式声明一个类。 Flash 从添加到帧的脚本生成类的方式可能相当混乱,因为单个语句可能会出现在两个地方。例如,您上面的代码实际上将变为以下内容:

package filename_fla 
{
  public dynamic class MainTimeLine extends MovieClip
  {
    public var playerScore:int;

    internal function frame1:* 
    {
      playerScore = 0;
    }

    public function updateTextFields():void 
    {
      playerScoreText.text = ("Score: " + playerScore);
    }

    public function caught(enemy:MovieClip):void 
    {
      enemy.removeEventListener(Event.ENTER_FRAME,dropEnemy);
      removeChild(enemy);
      playerScore++;
      updateTextFields(); 
    }
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 2017-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多