Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-08-2003, 11:19   #1 (permalink)
Neuer User
 
Benutzerbild von TOWi
 
Registriert seit: Feb 2002
Beiträge: 72
eval, string, [], verknüpfen

Hallo zusammen!

Ich hab zu diesem s.o. Thema schon einmal 'ne Frage gepostet, aber die Antwort war zu speziell - trotzdem Danke.

Also folgendes Problem:
Ich habe zwei Teile auf der Bühne deren Position ich tauschen möchte. Die Namen der Teile stehen in einem ARRAY
FeldTeile = teil1,.......,teil12,teil13,teil14,teil15,teil0

Ausgangspunkt ist momentan das Teil15 im array
Tauschen möchte ich mit teil0, also Teil15+1

//Also merke ich mir die Position des leereTeils (teil0), temporär:
leer_x = _root[_root.feldTeile[_root.TeilPosition + 1]]._x;
leer_y = _root[_root.feldTeile[_root.TeilPosition + 1]]._y;
trace ("leer_x = " + (leer_x));
//das funktioniert : leer_x = 209.95
// nun möchte ich die xy Position des leerenTeils auf die des Teils15 setzen
(eval (_root[_root.feldTeile[_root.TeilPosition + 1]]) + "._x") = (_root[_root.feldTeile[_root.TeilPosition]]._x);
(eval (_root[_root.feldTeile[_root.TeilPosition + 1]]) + "._y") = _root[_root.feldTeile[_root.TeilPosition]]._y;
trace ("leer neue Pos = " + _root[_root.feldTeile[_root.TeilPosition + 1]]._y);
trace ("leer Name = " + eval (_root[_root.feldTeile[_root.TeilPosition +1 ]]) + "._y");
// Das funktioniert leider nicht, ich bekomme die Meldung:
"Die linke Seite des Zuweisungsoperators muss eine Variable oder eine Eigenschaft sein."
Jetzt setze ich Teil15 auf die Position des leeren Teils
_root.feldTeile[_root.TeilPosition]._x = leer_x;
_root.feldTeile[_root.TeilPosition]._y = leer_y;
klappt auch nioch nicht....

Mein Problem ist die Umwandlung von Strings, Objekten, Eigenschaften, Arrays usw.
Kennt jemand ein Tutorial oder ein Buch wo dazu mal ausführliche Beispiele zu finden sind?

Ich wäre über jeden Tipp dankbar!

Besten Gruß aus Köln
TOWi
TOWi ist offline   Mit Zitat antworten
Alt 12-08-2003, 11:56   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Der Indextausch ist ja ziemlich einfach, wenn du wie hier genau weisst, welche Indizes zu tauschen sind:
ActionScript:
  1. merkerx = Feldteile[14]._x;
  2. merkery = Feldteile[14]._y;
  3.  
  4. Feldteile[14]._x = Feldteile[15]._x;
  5. Feldteile[14]._y = Feldteile[15]._y;
  6.  
  7. Feldteile[15]._x = merkerx;
  8. Feldteile[15]._y = merkery;

Wenn du Objektpfade mit den eckigen Klammern schreibst, solltest du eval weglassen.

Umwandlung von Objekten, Strings, Zahlen usw. kann man besonders gut in den Standardbüchern zu Actionscript von Colin Moock nachlesen.
  Mit Zitat antworten
Alt 12-08-2003, 12:55   #3 (permalink)
Neuer User
 
Benutzerbild von TOWi
 
Registriert seit: Feb 2002
Beiträge: 72
geht leider nicht

Danke für die Antwort - aber....
Dies ist aus meinem Script und funktioniert:
leer_x = _root[_root.feldTeile[_root.TeilPosition + 1]]._x;

wenn ich Dich richtig verstanden habe ist Dein Vorschlag:
leer_x = _root.feldTeile[_root.TeilPosition +1]._x;
geht aber nicht.
trace (leer_x) ist "LEER"
Ich denke das Problem ist das verschachteln von Variablen "_root.TeilPosition", Feldern und Eigenschaften?!

Wäre super wenn Du noch mal 'drauf schauen könntest.

Danke
TOWi ist offline   Mit Zitat antworten
Alt 12-08-2003, 13:01   #4 (permalink)
Neuer User
 
Benutzerbild von TOWi
 
Registriert seit: Feb 2002
Beiträge: 72
...nach was...

wenn ich mir diese ZEile betrachte:
Feldteile[14]._x = Feldteile[15]._x;
dann steht doch auf beiden Seiten ein Wert, wie kann ich die gleichsetzen? Links muß doch eine Eigenschaft stehen - oder?
TOWi ist offline   Mit Zitat antworten
Alt 12-08-2003, 15:54   #5 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Feldteile[14]._x = Feldteile[15]._x;
Ich hab das aus deinem Thread so verstanden, dass du für verschiedene Positionen Arrays nutzt, also bspw. 15 Array-Indizes für x-Pos und dto für y-Pos. Wenn du also Pos 14 und 15 tauschen willst, funzt das wie angeführt, wenn die Indizes vorbelegt sind.

Vielleicht solltest du dein Problem und die dazugehörenden Variablen noch einmal exakt aufführen. Du fängst nämlich mit einem Array Feldteile an und zeigst aber nicht, wie Teilposition und _x und _y dazupassen...
  Mit Zitat antworten
Alt 12-08-2003, 16:50   #6 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
also so wie ich das verstehe wilst du das die mc's "teil15" und
"teil0" die positionen tauschen.
ActionScript:
  1. TeilPosition=1
  2. feldTeile = ["teil1","teil15","teil0"]
  3.  
  4. temp_x =this[feldTeile[TeilPosition+1]]._x
  5. temp_y =this[feldTeile[TeilPosition+1]]._y
  6.  
  7. this[feldTeile[TeilPosition+1]]._x=this[feldTeile[TeilPosition]]._x
  8. this[feldTeile[TeilPosition+1]]._y=this[feldTeile[TeilPosition]]._y
  9.  
  10. this[feldTeile[TeilPosition]]._x=temp_x
  11. this[feldTeile[TeilPosition]]._y=temp_y
__________________
gruß Harry

Geändert von HAY (12-08-2003 um 16:51 Uhr)
HAY ist offline   Mit Zitat antworten
Alt 13-08-2003, 07:44   #7 (permalink)
Neuer User
 
Benutzerbild von TOWi
 
Registriert seit: Feb 2002
Beiträge: 72
ja - genau so!

Danke für die Hilfe.
Genau die letzte Variante hab ich inzwischen "gebaut" und es funktioniert.

Gruß aus Köln
TOWi 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 08:28 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele