Ошибка флэш-памяти 1084: синтаксическая ошибка

Привет, я получаю два сообщения об ошибках во Flash при использовании actionscropt 3.0

"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";

person Elliot Broomhall    schedule 08.04.2012    source источник
comment
Это as3 или as2? В любом случае проблема в этой строке: bn = "star" add n; и в этой строке: set(bn add ":n", n);. Вероятно, между "star" и add и n должен быть какой-то оператор, я предполагаю, что +   -  person cmann    schedule 08.04.2012
comment
это был устаревший код, когда был представлен ActionScript 2, а это означает, что этому коду, вероятно, более 10 лет. пора его переписать.   -  person grapefrukt    schedule 08.04.2012


Ответы (2)


Я не знаю, откуда у вас этот синтаксис:

bn = "star" add n;

Но я полагаю, что вы имеете в виду

bn = "star" + n;

Вот что вызывает сообщение об ошибке.

Я также очень удивлен, что вы не получаете больше сообщений об ошибках, поскольку и setProperty, и duplicateMovieClip устарели с AS3. Кроме того, были переименованы все свойства, которые раньше начинались с подчеркивания (_x, _y и т. Д.).

Возможно, было бы разумно прочитать, что изменилось в ActionScript 3, прежде чем продолжить - в противном случае вам будут очень трудно.

person weltraumpirat    schedule 08.04.2012
comment
Это синтаксис Macromedia Flash 4 (я полагаю, 1999 г.): хотя он очень старый для разработки браузеров, он был довольно распространен до тех пор, пока несколько лет назад не использовался в качестве основы для плагина Flash Lite 1.1. - person AsTheWormTurns; 09.04.2012
comment
Да, я помню, там были разные неудобные текстовые операции, вроде eq для равных и тому подобных ... Утомительно. Я все еще немного озадачен тем, что кто-то сегодня воспользуется им, чтобы начать (или пересмотреть) разработку Flash, вместо того, чтобы просто пройти через руководство по AS3. - person weltraumpirat; 09.04.2012
comment
Я помню, как люди делали разные вещи с этим языком :-) С ним все еще работают: ferryhalim.com/ орисинал - person AsTheWormTurns; 09.04.2012
comment
Удивительный. AS2, должно быть, существует уже ... о, верно: 8 лет (MX2004). Ух ты. - person weltraumpirat; 10.04.2012

Ваш код находится в 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

Надеюсь, это поможет тебе.

person joshua    schedule 08.04.2012
comment
Есть ли способ иметь и то, и другое, поскольку у меня уже есть ActionScript 3.0, который уже управляет другой частью, либо как я могу преобразовать его в ActionScript 3.0? - person Elliot Broomhall; 08.04.2012
comment
да, это возможно, но не в том же swf / фильме. Итак, что вы сделаете, это загрузите swf в другой - person joshua; 08.04.2012