fehler in script?

PHP:
if (this._x<250) {
 this._alpha -= 1;
} else {
 this._alpha+=3;
 color1=new Color (this);
 color1.setRGB (0xfe0000);
}
Du willst die gleiche Farbe dynamisch einem Objekt bei jedem Frame erneut zuordnen?

Geist
 
ähemm...ich sollte mal erwähnen, das ich grad angefangen habe mit flash umzugehen, und somit auch in AS.

aber trotzdem danke!

mal eine für euch klar! leichte frage:

wozu dient die funktion "eval"??

die erklärung aus der Hilfe,
-------------------------------------------------------------------
Funktion; greift dem Namen nach auf Variablen, Eigenschaften, Objekte oder Filmsequenzen zu. Wenn ausdruck eine Variable oder eine Eigenschaft ist, wird der Wert der Variablen oder Eigenschaft zurückgegeben. Wenn ausdruck ein Objekt oder eine Filmsequenz ist, wird eine Referenz auf das Objekt bzw. die Filmsequenz zurückgegeben. Wenn das in ausdruck angegebene Element nicht gefunden werden kann, wird undefiniert zurückgegeben.
--------------------------------------------------------------------

raff ich nich ganz... :(

nur wird die bei jedem zeugs zum vergleich angewendet....
hier zum beispiel aus dem flash5 trainingsbuch von macromedia:

if (eval(_root["tack" + tackID]._droptarget) == _root.tackBox){
_root["tack" + tackID].removeMovieClip();
}

oder hier aus der Online Referenz zu AS:

x = 3;
y = eval("x");

würde das alles nicht auch ohne diese "eval" funktion gehen??!?!?

ich wäre wirklich sehr dankbar für eine ordenliche erklärung, warum das "eval", vorallem bei dem ersten bsp. genutzt werden muss/sollte.

thx4hlp
 
Zuletzt bearbeitet:
Hi spliner

mach doch in zukunft einen neuen thread auf für sowas.

also eval dient dazu, einen string mit einer variablen zu einer neuen variable zu verschmelzen.

Bsp.

smart3="spliner"; //smart ist ein datavalue in form eines strings
x=3; //3 ist eine number, kein string, ohne ""
y=eval("smart"+3); //veeschmelzung
trace(y); //displays: spliner

ok?
Wozu das ganze: hilft zb bei der dynamischen erzeugung von objekten
bsp: eval("mc1"+i)

eval kann durch die [] ersetzt werden
Bsp:

_root["mc"+i] ist gleich wie eval("mc"+i) wenn i=3 ergibt das mc3




Zu meinem skript oben mit der move methode: wenn es dich interessiert kann ich's dir kurz erklären
 
Also, smart3, x und y sind Variablen, richtig?
dann weist du dem y das eval("smart"+3) zu.

Hier die erste Frage: Du hast die 3 dem x zugeordnet, warum dann also nicht eval("smart"+x)?

Was passiert mit der 3 oder auch mit dem x ?
Wenn du y ausgibst erscheint nur noch spliner.
Du sagtest allerdings das würde verschmelzen. Meine Logik ist also das da dann spliner3 oder splinerx dort erscheinen müsste.

(vielleicht hilft ja ein anderes Bsp. ?!?! )

unten das Bsp. mit der dynamischen Erzeugung hab ich verstanden, das "gehorcht" meiner Logik und verschmilzt wie oben gesagt.
das einzigste was mich hier stört ist dein Satz:
"eval kann durch die [] ersetzt werden"
unten im Bsp. aber, nimmst du das _root weg.
Zugegeben, so einen Ausdruck wie _root.eval oder so, wäre evtl. wirklich seltsam...

zu deinem angebot unten...DANKE!, nur ich bin wirklich froh wenn ich das erstmal richtig! kapiere.

thx
 
warum dann also nicht eval("smart"+x)?

dann könntst du ja auch gleich "smart3" schreiben. Das willst du aber nicht, du willst das Ganze ja dynamisch halten.

also am besten verstehst Du's wenn du in der bibliothek ein kleines rechteck als mc anlegst, in der biblithek auf das symbol klickst, rechte maustaste: verlinkung. im Dialogfeld für AS anklickst und dem rechteck den namen 'mc' gibst

im ersten frame der hauptzeitleiste schreibst du
PHP:
for (i=1;i<10;i++){
	_root.attachMovie("mc","mc"+i,i);
	eval ("mc"+i)._alpha-=(i*10);
	eval ("mc"+i)._x+=(i*54);
}

dann verstehst du's
 
@geist: hmmmm? weils eine Argument-Übergabe an eine eingebaute Methode der Klasse MovieClip ist? und das eval wahrscheinlich schon in der Methode drin ist? Gute Frage. Bin mir nicht sicher.

@spliner: hier noch MX-konform:



PHP:
for (i=1;i<10;i++){
	_root.attachMovie("mc","mc"+i,i);
	_root["mc"+i]._alpha-=(i*10);
	_root ["mc"+i]._x+=(i*54);
}

aber eval ist immer noch mx-konform. das heisst doch,dass eval noch was kann , was der Array-Operator nicht kann...ungutesGefühhab....
 

Neue Beiträge

Zurück