Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-10-2009, 21:17   #1 (permalink)
Neuer User
 
Benutzerbild von velocity.
 
Registriert seit: May 2005
Beiträge: 310
eval()-Problem

Hi!

Ich habe eigentlich kein Problem mit eval(), allerdings kam ich heute auf eine Information, dass es eval() nicht unbedingt braucht und ich anstatt this[] oder set verwenden kann.

Ich möchte mehrere Variablen wie zum Beispiel test1, test2, test3 dynamisch ansprechen und würde das wie folgt lösen:


eval("test"+x)=1;

wie müsste es denn lauten wenn ich es mit this[]anspreche, normalerweise sollte folgendes doch funktioniert:

this["test"+x]=1;

was es aber leider nicht tut! Vielen Dank schon einmal und noch einen schönen Abend!
__________________
- we start 2009 -


http://www.aelfsciene.com - © Copyright. All rights reserved.
velocity. ist offline   Mit Zitat antworten
Alt 18-10-2009, 21:44   #2 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Vielleicht kannst du uns ein wenig mehr aus deinem "Code-Umfeld" berichten, und nicht nur vermelden, dass etwas nicht funktioniert… rein syntaktisch ist das nämlich ok, was du da schreibst.
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist gerade online   Mit Zitat antworten
Alt 19-10-2009, 16:24   #3 (permalink)
Neuer User
 
Benutzerbild von velocity.
 
Registriert seit: May 2005
Beiträge: 310
Hi!

Danke erstmal für die Antwort!

Ich werde heute abend nochmal nachsehen und den Teil des Codes Posten. Aber was ist denn genau der Unterschied zwischen eval() und this[]...!

Vielen Dank schon einmal!
__________________
- we start 2009 -


http://www.aelfsciene.com - © Copyright. All rights reserved.
velocity. ist offline   Mit Zitat antworten
Alt 19-10-2009, 19:53   #4 (permalink)
Neuer User
 
Benutzerbild von velocity.
 
Registriert seit: May 2005
Beiträge: 310
Also das Problem liegt einfach nur dabei, dass folgeden Beispiel1 funktioniert aber Beispiel2 nicht, am Code wurde selber weiter nichts verändert:

eval("testarray"+1)[1]=1;
//trace(testarray1[1]) = 1;


this["testarray"+1][1]=1;
//trace(testarray1[1]) = undefinded

Tausche ich this mit _root aus, funktioniert es, aber _root ist ja nicht immer sinnvoll.
__________________
- we start 2009 -


http://www.aelfsciene.com - © Copyright. All rights reserved.
velocity. ist offline   Mit Zitat antworten
Alt 19-10-2009, 21:30   #5 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Funktioniert natürlich schon:
PHP-Code:
var testarray1:Array = new Array();

eval(
"testarray" 1)[1] = 1;
trace(testarray1[1]); // --> 1

this["testarray" 1][1] = 2;
trace(testarray1[1]); // --> 2 
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist gerade online   Mit Zitat antworten
Alt 20-10-2009, 08:54   #6 (permalink)
Neuer User
 
Benutzerbild von velocity.
 
Registriert seit: May 2005
Beiträge: 310
Aber mit this funktioniert es doch nicht immer, manchmal benötige ich _root und das ist nicht immer sinnvoll! Oder sollte this immer funktionieren!
__________________
- we start 2009 -


http://www.aelfsciene.com - © Copyright. All rights reserved.
velocity. ist offline   Mit Zitat antworten
Alt 20-10-2009, 09:26   #7 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
das kommt halt drauf an wo im Code du dich befindest und wo das Objekt liegt auf das du mit this zugreifen willst.

PHP-Code:
einmc.onPress = function():Void {
  
trace(this); 

Das bezieht sich auf "einmc" ... wenn du nun dort über this ein z.B. Array ansprechen willst das auf der Hauptzeitleiste liegt, also:

PHP-Code:
var arr:Array = new Array("eins","zwei");

einmc.onPress = function():Void {
  
trace(this.arr[0]);

geht das natürlich nicht, weil das Array auf der Hauptzeitleiste liegt aber das this sich auf den MC bezieht ... da müsste das heissen:

PHP-Code:
var arr:Array = new Array("eins","zwei");

einmc.onPress = function():Void {
  
trace(this._parent.arr[0]);
  
// oder halt:
  
trace(_root.arr[0]);

Aber _root ist auch kein Allheilmittel. Letztendlich kommt es darauf an wo im Code du dich befindest und wo das Element liegt das du ansprechen willst, im Zweifelsfall hilft meistens ein einfache "trace(this);" um sich Orientierung zu verschaffen.
__________________
Bitte keine Privaten Nachrichten mit Fragen, dazu ist das Forum selbst da. Danke.

'We live in an amazing, amazing world, and it's wasted on the crappiest generation of spoiled idiots.'
readme.txt 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
problem mit eval() dantesinferno Flash MX 2004 1 23-03-2005 23:04
Problem mit eval() mirzahat ActionScript 1 3 24-10-2004 14:42
Problem mit eval nccool Softwarearchitektur und Entwurfsmuster 1 17-11-2003 22:27
eval problem lepimax ActionScript 1 2 18-11-2002 11:29
eval problem cris ActionScript 1 8 30-06-2001 08:45


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:54 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele