Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash MX 2004

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-12-2005, 15:25   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 33
eval against this

Hallo,

habe ein älteres Senso Spiel (Melodie nachklicken) ein wenig abgewandelt.
Nur erhielt ich im Debugger Fehlermeldungen: "Die linke Seite des Zuweisungsoperators muss eine Variable oder eine Eigenschaft sein"

In MX kann eval ja nicht mehr für die Variablen verwendet werden..

Es geht um folgenden Code:

Code:
on (press) {
	_root.arm.gotoAndPlay(8);
	tellTarget ("_root.2") {
		gotoAndPlay (1);
	}
	i = _root.index;
	eval("_root.userArray["+i+"]") = 1;
	if (eval("_root.userArray["+i+"]") eq eval("_root.computerArray["+i+"]")) {
		trace ("true");
		_root.userIndex = _root.userIndex+1;
		_root.index = _root.index+1;
	_root.score = _root.count*_root.count
	} else {
		gotoAndStop(30);
	}
		trace (_root.userIndex);
		trace (_root.count);
	// -----------------------------------------------
	if (_root.userIndex<_root.count) {
		trace ("out");
	} else {

		_root.p = 1;
		_root.index = 1;
		_root.userIndex = 0;
		gotoAndPlay (15);
	}
	// -----------------------------------------------
}
ich hatte die betrefenden Zeilen so geändert:

Code:
this[_root.userArray+i] = 1;
	if (this[_root.userArray+i] == this[_root.computerArray+i]) {
Allerdings funktioniert das Spiel dann fehlerhaft ("else" wird nicht ausgeführt)

Kann mir jemand erklären, wie ich es richtig umsetzen kann?

PS. es sind noch zwei weitere "evals" vorhanden:

Code:
eval("computerArray["+n+"]") = Number(rand);

und


temp = eval("computerArray["+t+"]");
eval("_root."+temp).gotoAndPlay(2);

Danke !
bistar ist offline   Mit Zitat antworten
Alt 21-12-2005, 15:31   #2 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.412
hi,

probiers mal so (repräsentativ für alle anderen):
Code:
this[_root.userArray[i]]
__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs
:: RK :: ist offline   Mit Zitat antworten
Alt 21-12-2005, 16:16   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 33
Hallo,


das ergibt das gleiche Resultat, wie die erstgenannte Version...
Ein "Fehler im Spiel" gibt es nicht mehr...

ich habe die Fla hochgeladen...wer kurz mal Zeit hat darauf zu schauen....


http://www.bimondo.de/simon.fla


Grüße
bistar ist offline   Mit Zitat antworten
Alt 21-12-2005, 16:30   #4 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Es würde mich wundern, wenn der Code überhaupt mal funktioniert hat. Oder ist das Javascript?

PHP-Code:
//das entspricht von der Logik her
eval("_root.userArray["+i+"]")
//dem hier, das obere würde aber in Flash so eh nicht klappen
_root.userArray[i
mfg. r

Geändert von bokel (21-12-2005 um 17:03 Uhr)
bokel ist offline   Mit Zitat antworten
Alt 21-12-2005, 16:40   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2005
Beiträge: 33
Hallo,


das Spiel klappt, sofern man die Exporteinstellungen auf Flash Player 5 / AS 1.0 lässt. Siehe hier: http://www.bimondo.de/simon.html

Da ich aber für die Übertragung des Scores einen Webservice anspreche, benötige ich die Webservice-Komponente von MX 2004 Prof, die aber erst im Player der Version 7 und AS 2.0 läuft...
Sobald ich die Einstellungen auf Player 6 oder höher stelle, kommen folgende Meldungen:

Code:
**Fehler** Szene=Scene 1, Ebene=Layer 4, Bild=2:Zeile 9: Die linke Seite des Zuweisungsoperators muss eine Variable oder eine
 Eigenschaft sein.
     	eval("computerArray["+n+"]") = Number(rand);

**Fehler** Szene=Scene 1, Ebene=Layer 13, Bild=11:Zeile 7: Die linke Seite des Zuweisungsoperators muss eine Variable oder eine
 Eigenschaft sein.
     	eval("_root.userArray["+i+"]") = 2;

**Fehler** Szene=Scene 1, Ebene=Layer 13, Bild=11:Zeile 7: Die linke Seite des Zuweisungsoperators muss eine Variable oder eine
 Eigenschaft sein.
     	eval("_root.userArray["+i+"]") = 3;

**Fehler** Szene=Scene 1, Ebene=Layer 13, Bild=11:Zeile 7: Die linke Seite des Zuweisungsoperators muss eine Variable oder eine
 Eigenschaft sein.
     	eval("_root.userArray["+i+"]") = 4;

**Fehler** Szene=Scene 1, Ebene=Layer 13, Bild=11:Zeile 7: Die linke Seite des Zuweisungsoperators muss eine Variable oder eine
 Eigenschaft sein.
     	eval("_root.userArray["+i+"]") = 5;

**Fehler** Szene=Scene 1, Ebene=Layer 13, Bild=11:Zeile 7: Die linke Seite des Zuweisungsoperators muss eine Variable oder eine

Eigenschaft sein.
     	eval("_root.userArray["+i+"]") = 1;

Anzahl der ActionScript-Fehler: 6 	 Gemeldete Fehler: 6
(Man möge mich berichtigen, bzw eine Lösung nennen)


Danke

Geändert von bistar (21-12-2005 um 16:46 Uhr)
bistar ist offline   Mit Zitat antworten
Alt 21-12-2005, 22:31   #6 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Funktioniert denn die Lösung oben nicht? Eventuell musst du die Arrays noch am Anfang irgendwo initialisieren.

PHP-Code:
//irgendwo bevor jemand anders auf diese Array zugreift
_root.computerArray = new Array();
_root.userArray = new Array(); 
mfg. r
bokel ist offline   Mit Zitat antworten
Alt 21-12-2005, 22:43   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 272
mal ne grundsatzfrage..

warum:
PHP-Code:
    eval("_root.userArray["+i+"]") = 1;
    if (eval(
"_root.userArray["+i+"]"eq eval("_root.computerArray["+i+"]")) { 
und nicht:

PHP-Code:
    eval("_root.userArray["+i+"]") = 1;
    if (eval(
"_root.computerArray["+i+"]" eq 1)) { 
bzw.
PHP-Code:
 _root.userArray[i]) = 1;
    if (
_root.computerArray[i] == 1)) { 

wäre doch das selbe

btw lass dir dochmal die beiden array felder zwischen den beiden zeilen da austracern.

mfg
Muh_Lan ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 00:49 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele