您好,我在使用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";
答案 0 :(得分:2)
我不知道你从哪里得到这个语法:
bn = "star" add n;
但我想你的意思是
bn = "star" + n;
这就是导致错误消息的原因。
我也很惊讶你没有收到比这更多的错误消息,因为从{3}开始,setProperty
和duplicateMovieClip
都被弃用了。此外,所有以下划线(_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
希望它对你有所帮助。