2012-04-08 17 views
1

Hallo Ich erhalte zwei Fehlermeldungen in Flash, wenn actionscropt 3,0Flash-Fehler 1084: „Syntaxfehler“

"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 

Hier verwenden ist mein Code könnte jemand einen Einblick geben, was tatsächlich durch geschieht und hilft auf berichtigt das Problem, danke.

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

Ist das as3 oder as2? In beiden Fällen liegt das Problem in dieser Zeile: 'bn =" Stern "add n;' und diese Zeile: 'set (bn add": n ", n);'. Es sollte wahrscheinlich irgendeine Art von Operator zwischen "" star "' und 'add' und' n' geben, ich vermute ein '+' – cmann

+0

das war Legacy-Code bereits, als Actionscript 2 eingeführt wurde, was bedeutet, dass dieser Code wahrscheinlich 10 ist + Jahre alt. Es ist Zeit, es neu zu schreiben. – grapefrukt

Antwort

2

Ich weiß nicht, wo Sie diese Syntax von bekam:

bn = "star" add n; 

Aber ich nehme an, was du meinst ist

bn = "star" + n; 

Das ist, was die Fehlermeldung verursacht.

Ich bin auch wirklich überrascht, dass Sie nicht mehr Fehlermeldungen erhalten, da sowohl setProperty als auch duplicateMovieClip ab AS3 veraltet sind. Außerdem wurden alle Eigenschaften, die mit einem Unterstrich (_x, _y usw.) beginnen, umbenannt.

Vielleicht wäre es klug, sich über ActionScript 3 zu informieren, bevor Sie fortfahren - sonst wird es Ihnen wirklich schwer fallen.

+0

Es ist Macromedia Flash 4 (1999, glaube ich) Syntax: Obwohl sehr alt für die Browser-Entwicklung, war es ziemlich üblich bis vor einigen Jahren, als es als Basis für Flash Lite 1.1-Plugin verwendet wurde. – AsTheWormTurns

+0

Ja, ich erinnere mich, dass es alle möglichen unbequemen textbasierten Operationen hatte, wie "eq" für "equals" und so ... Schmerzhaft. Ich bin immer noch ein wenig verwirrt, dass irgendjemand es verwenden würde, um mit der Flash-Entwicklung heute zu beginnen (oder wiederzukommen) - anstatt nur ein AS3-Tutorial durchzugehen. – weltraumpirat

+0

Ich erinnere mich an Leute, die alle möglichen Dinge mit dieser Sprache machen :-) Das ist immer noch damit gemacht: http://www.ferryhalim.com/orisinal/ – AsTheWormTurns

0

Ihr Code ist in AS2, gehen Sie zu Ihren Veröffentlichungseinstellungen und ändern Sie Ihr Skript zu AS2, unten ist die Bearbeitung Ihres Skripts.

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

erwähnt Wie ich denke, Sie sollten goto Adobe Docs ihre Änderungen von AS2/AS3 zu überprüfen, ihre sind darunter auch viele Änderungen nicht Code oder sdcripts ermöglicht directorly platziert auf Symbole und Schaltflächen, Eigenschaftsnamen aswell geändert wurden: Beispiel :

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

Ich hoffe, es hilft Ihnen.

+0

gibt es eine Möglichkeit, beides zu haben, da ich bereits Actionscript 3.0 habe, um einen anderen Teil zu steuern, entweder, wie würde ich es in Actionscript 3.0 konvertieren? –

+0

ja das ist möglich, aber nicht in der gleichen SWF/Film. Also, was Sie tun werden, ist ein swf in den anderen laden – joshua