Fehlermeldung - Script startet nicht

Meikel25

Erfahrenes Mitglied
Hallo zusammen!

Ich habe ein kleines Problem.
Ein Kollege ist krank und ich soll die Seite fertig basteln, jetzt bekomme ich immer wieder eine Meldung:

**Fehler** Symbol=Symbol 14, Ebene=Action Layer, Bild=1:Zeile 33: Die linke Seite des Zuweisungsoperators muss eine Variable oder eine Eigenschaft sein.
eval(starinst + ":sx") = random(1000) - 500;

**Fehler** Symbol=Symbol 14, Ebene=Action Layer, Bild=1:Zeile 34: Die linke Seite des Zuweisungsoperators muss eine Variable oder eine Eigenschaft sein.
eval(starinst + ":sy") = random(1000) - 500;

**Fehler** Symbol=Symbol 14, Ebene=Action Layer, Bild=1:Zeile 35: Die linke Seite des Zuweisungsoperators muss eine Variable oder eine Eigenschaft sein.
eval(starinst + ":sz") = Number(dist) + Number(random(1000));

Anzahl der ActionScript-Fehler: 3 Gemeldete Fehler: 3

Und hier ist das Script dazu, kann mir einer einen Tipp geben?

setProperty("star", _visible, false);
starcount = 20;
dist = "150";
zinc = "0";
starwidth = 100;
starheight = 100;
for (sc = 0; Number(sc) < Number(starcount); sc = Number(sc) + 1)
{
starinst = "star" + sc;
n = int(Math.random() * 4) + 1;
switch (n)
{
case 1:
{
duplicateMovieClip("star", starinst, sc);
break;
}
case 2:
{
duplicateMovieClip("star2", starinst, sc);
break;
}
case 3:
{
duplicateMovieClip("star3", starinst, sc);
break;
}
default:
{
duplicateMovieClip("star", starinst, sc);
}
} // End of switch
eval(starinst + ":sx") = random(1000) - 500;
eval(starinst + ":sy") = random(1000) - 500;
eval(starinst + ":sz") = Number(dist) + Number(random(1000));
} // end of for

:confused:
 
Hi,

Code:
eval(starinst + ":sx") = random(1000) - 500;
Ab Flash 5 kann ein Ausdruck mit eval() nicht mehr auf der linken Seite einer Zuweisung stehen. Zusammengesetzte Bezeichner kannst Du allerdings über den Array-Zugriffsoperator ansprechen:
Code:
this[starinst + ":sx"] = Math.random() * 1000 - 500;
Achtung: Ich habe die Flash 4-Syntax nicht mehr genau im Kopf, denke aber, dass es sich bei "sx", "sy" und "sz" um Variablen in den jeweiligen MovieClips handelt und nicht Bestandteile des Instanznamens sind. In diesem Fall wäre die korrekte Syntax diese:
Code:
this[starinst].sx = Math.random() * 1000 - 500;

Poste bitte zur Sicherheit einmal die .fla.

Gruß
.
 
Hi,

da war doch noch einiges mehr zu machen (vieles hat sich seit Flash 4 geändert. ;)). Ich habe Dir die Datei mal für AS2.0 angepasst (für Flash 7 exportiert):
  • Schrägstrichsyntax in Punktsyntac umgewandelt

  • Unnötige Castings entfernt

  • Verwendung der Math-Klasse statt random(x)

  • Zugriff über Operator []

  • Aufruf eines Scriptes über call(bildbezeichner) (das gabs mal? :eek:) in einen Funktionsaufruf geändert.

Gruß
.
 

Anhänge

:) :)

Cool es hat funktioniert...danke dir.

Jetzt habe ich noch ein kleines Problem.
Die Seite sollte Sound abspielen, tut dies auch, aber startet den Loop dann nicht mehr.
Und der Ein/Ausschalter hat auch keine Funktion.

Was kann ich da machen
Hast Du da evtl. auch noch einen Tipp

das steht im Script:
onClipEvent (load)
{
_root.soundstatus = "on";
_root.mySound = new Sound(_level0);
_root.mySound2 = new Sound(_level1);
_root.mySound3 = new Sound(_level2);
_root.mySound4 = new Sound(_level3);
_root.mySound5 = new Sound(_level4);
maxvolume = 100;
minvolume = 0;
}
onClipEvent (enterFrame)
{
if (_root.soundstatus == "on")
{
step = 5;
} // end if
if (_root.soundstatus == "off")
{
step = -5;
} // end if
maxvolume = maxvolume + step;
if (maxvolume > 100)
{
maxvolume = 100;
} // end if
if (maxvolume < 0)
{
maxvolume = 0;
} // end if
_root.mySound.setVolume(maxvolume);
_root.mySound2.setVolume(maxvolume);
_root.mySound3.setVolume(maxvolume);
_root.mySound4.setVolume(maxvolume);
_root.mySound5.setVolume(maxvolume);
}

mfg,
Meikel25
 
Hi,

laut Referenz lassen sich Soundobjekte nicht auf Stufen (_levelX), sondern nur auf MovieClips erstellen. Mit der vorliegenden Syntax wirst Du die verschiedenen Sounds nicht getrennt voneinander in der Lautstärke regeln können.

Zu den erwähnten Problemen: Da in dem geposteten Code die Sounds weder abgespielt noch geloopt werden und erst recht nichts über etwaige Start- und Stopp-Buttons enthalten ist, kann ich Dir in dieser Hinsicht keine Tipps geben, ohne die Datei gesehen zu haben.

Gruß
.
 
Zurück