Flash错误1084:“语法错误”

时间:2012-04-08 11:02:42

标签: actionscript-3 flash

您好,我在使用actionscropt 3.0

时在Flash中收到两条错误消息
"Topbar,Layer 'Action Layer',Frame 1,line 12 1084: syntax error: expection semicolon before add.
"Topbar,Layer 'Action Layer',Frame 1,line 12 1084: syntax error: expection rightbrace before semicolon

以下是我的代码,任何人都可以对实际发生的事情有所了解,感谢并帮助纠正问题。

clip = Number(random(7)) + 1;
while (Number(clip) <= 7)
{
   clip = Number(clip) + 1;
   Scale = Number(random(80)) + 1;
   setProperty("/star", _x, Number(random(800)) + 10);
   setProperty("/star", _rotation, Number(random(330)) + 50);
   setProperty("/star", _xscale, Scale);
   setProperty("/star", _yscale, Scale);
   setProperty("/star", _y, Number(random(800)) + 50);
   n = Number(n) + 1;
   bn = "star" add n;
   duplicateMovieClip("star", bn, n);
   set(bn add ":n", n);
} // end while
clip = "0";

2 个答案:

答案 0 :(得分:2)

我不知道你从哪里得到这个语法:

bn = "star" add n;

但我想你的意思是

bn = "star" + n;

这就是导致错误消息的原因。

我也很惊讶你没有收到比这更多的错误消息,因为从{3}开始,setPropertyduplicateMovieClip都被弃用了。此外,所有以下划线(_x,_y等)开头的属性都已重命名。

在继续之前阅读使用ActionScript 3改变的内容可能是明智之举 - 否则你将会非常困难。

答案 1 :(得分:0)

您的代码在AS2中,转到您的发布设置并将您的脚本更改为AS2,下面是您的脚本编辑。

clip = Number(random(7)) + 1;
 while (Number(clip) <= 7)
 {
 clip = Number(clip) + 1;
 Scale = Number(random(80)) + 1;
 setProperty("/star", _x, Number(random(800)) + 10);
 setProperty("/star", _rotation, Number(random(330)) + 50);
 setProperty("/star", _xscale, Scale);
 setProperty("/star", _yscale, Scale);
 setProperty("/star", _y, Number(random(800)) + 50);
 n = Number(n) + 1;
 bn = "star" + n;
 duplicateMovieClip("star", bn, n);
 set(bn + ":n", n);
 } // end while
 clip = "0";

如上所述,我认为您应该转到Adobe Docs来检查他们对AS2 / AS3的更改,他们有很多变化,包括不允许代码或sdcripts导演放置在符号和按钮上,属性名称已被更改以及:示例:

_root // can no longer be targeted in this syntax
_xscale = scaleX // the underscores have been removed
                 // and the property names have been changed

希望它对你有所帮助。