1

嗨,我在使用 actioncropt 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";
4

2 回答 2

2

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

bn = "star" add n;

但我想你的意思是

bn = "star" + n;

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

我也很惊讶您没有收到比这更多的错误消息,因为从 AS3 开始,两者setProperty都已duplicateMovieClip被弃用。此外,所有以前以下划线开头的属性(_x、_y 等)都已重命名。

也许在继续之前阅读 ActionScript 3 的变化是明智的 - 否则您将很难过。

于 2012-04-08T11:16:47.587 回答
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";

如前所述,我认为您应该转到 Adob​​e 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

希望它可以帮助你。

于 2012-04-08T11:32:10.363 回答