【问题标题】:AS3 Syntax error: expecting identifier before varAS3 语法错误:在 var 之前需要标识符
【发布时间】:2020-04-27 18:00:13
【问题描述】:

我收到以下错误:

1084: 语法错误:在 var 之前需要标识符。

这是我的代码,我在谷歌上尝试了很多搜索这个错误,但没有。 我该如何解决?

代码:

 public function setAchievements(Subject:Array, Desc:Array, Coins:Array, Score:Array, Completed:Array) : *
  {
(error line here)      for(var achievement:Achievement = null,var color:Color = null; this.achievements_mc.achievements_content.content_mc.numChildren > 0; )
     {
        this.achievements_mc.achievements_content.content_mc.removeChildAt(0);
     }
     var x:* = 0;
     var y:* = 0;
     for(var i:int = 0; i < Subject.length; i++)
     {
        achievement = new Achievement();
        achievement.Subject_txt.text = Subject[i];
        achievement.Description_txt.text = Desc[i];
        achievement.Coins_txt.text = String(Coins[i]);
        achievement.Score_txt.text = String(Score[i]);
        if(Completed[i])
        {
           color = new Color();
           color.brightness = -0.4;
           achievement.transform.colorTransform = color;
           achievement.icon.visible = true;
        }
        achievement.x = x;
        achievement.y = y;
        y = y + 125;
        this.achievements_mc.achievements_content.content_mc.addChild(achievement);
     }
  }

【问题讨论】:

  • 您可能不允许在 for 循环的第一部分声明 2 个变量。尝试在循环语句之前声明 achievement 和 color。
  • 我试试这个,但后来不行
  • 你想用那个错误行来实现什么?即使它有效,它也只会删除添加到content_mc 中的第一件事。每个addChid 都会在一个新层上创建,因此您要删除MovieClip 的第1 层(从位置0 开始)。那是你要的吗?或者您可能想清空整个 MClip?

标签: actionscript-3


【解决方案1】:

AS3中for/for每个语句的正确语法是:

for each (var yourvariable:TypeOfVariable in list of objects)

即

for (var currObject:Person in listPerson)

(您的 listPerson 是一个 ArrayCollection)

另一种正确的语法是:

for (var i:int; i < list.length(); i++)

但你已经写了:

for(var achievement:Achievement = null,var color:Color = null;
this.achievements_mc.achievements_content.content_mc.numChildren > 0;)

这不是一个正确的语法,因为循环变量和退出条件之间没有联系

也许你想写

for each(var achievement:Achievement in
this.achievements_mc.achievements_content.content_mc.numChildren)

然后就可以初始化了

var color:Color = 0 or another value linked to iteration

【讨论】:

    猜你喜欢
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-05
    相关资源
    最近更新 更多