Flashhilfe.de - Flash Community

Dynamische Variablennamen vergeben [Flash 10]

Forum > ActionScript 3.0 > Dynamische Variablennamen vergeben

 


AntwortenRegistrieren Seite1  

 23.01.2011, 20:40 
Beiträge: 24
Registriert: Mar 2010

Dynamische Variablennamen vergeben
Hallo Leute,

folgendes Problem.

Ich bastel mir dynamische Variablen:

ActionScript:
1
2
3
4
var array:Array = new Array("A","B","C","D");
for(var i = 0; i < 4; i++){
  this["a_" + array[i]] = 1;
}


Jetzt will ich aber auch mit diesen dynamischen Variablen eine Klassenvariable aufrufen. Also "irgendwie" so:

ActionScript:
1root.loaderInfo.parameters.this["a_" + array[i]]


So Funktioniert es nur leider nicht.  Kann mir jemand helfen?
 23.01.2011, 23:36Re1
Benutzerbild von RustyCake
Beiträge: 1769
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

//flashvars.url1 ="irgendeinstring";
var a:Array =["url"];
if(root.loaderInfo.parameters.url1 !=undefined){
vari1.text = root.loaderInfo.parameters[a[0]+"1"];
}
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
 24.01.2011, 17:37Re2
Beiträge: 24
Registriert: Mar 2010

Themenautor/in

Verstehe ich nicht ganz.
Also so: ?

ActionScript:
1
2
3
4
5
6
7
var array:Array = new Array("A","B","C","D");
for(var i = 0; i < 4; i++){
    this["a_" + array[i]] = 1;
  flashvars.url = array[i];
  if(root.loaderInfo.parameters.url !=undefined){
  instanz.text = root.loaderInfo.parameters.url;
  }
 
nicht sichtbar bei eingeloggten Mitgliedern
 24.01.2011, 17:56Re3
Benutzerbild von RustyCake
Beiträge: 1769
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

Das war nur ein Beispiel wie man Dynamisch richtig zusammen setzt.
Apropos nichzt verstehen, das hier "this["a_" + array[i]] = 1;" check ich nicht?
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
 24.01.2011, 18:35Re4
Beiträge: 24
Registriert: Mar 2010

Themenautor/in

Hab ich irgendwo gefunden, um Variablen dynamisch zu machen.

ActionScript:
1
2
3
4
5
var array:Array = new Array("A","B","C","D");
for(var i = 0; i < 4; i++){
  if(root.loaderInfo.parameters[array[i]] != undefined){
  var ["wert_" + array[i]] = root.loaderInfo.parameters[array[i]];
  }


Etwa so? Da gibts immer noch Fehler beim debuggen:

1084: Syntaxfehler: identifier vor leftbracket erforderlich.
1084: Syntaxfehler: rightbrace vor end of program erforderlich.


EDIT:

Habs hinbekommen.

ActionScript:
1
2
3
4
5
6
7
for(var i = 0; i < 15; i++){
  if(root.loaderInfo.parameters[array[i]] != undefined){
  wert[array[i]] = root.loaderInfo.parameters[array[i]];
  balken_anzahl += 1;
  antworten_gesamt += parseInt(this["wert" + array[i]]);
  }
}


Wie genau müssen jetzt meine Variablen WERT und wie genau meine übergebenen Parameter heißen?
Geändert von Dopar am 24.01.11 um 18:57 Uhr

 24.01.2011, 19:30Re5
Benutzerbild von RustyCake
Beiträge: 1769
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

Zeig mal deine flashvars, vielleicht kann man sich dann zusammen reimen, was Du vor hast.
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
 
nicht sichtbar bei eingeloggten Mitgliedern
 24.01.2011, 19:52Re6
Beiträge: 24
Registriert: Mar 2010

Themenautor/in

Sehr viel mehr gibt es noch nicht. Habs jetzt gekürzt auf:

ActionScript:
1
2
3
4
5
6
7
for(var i = 0; i < 15; i++){
  if(root.loaderInfo.parameters[i] != undefined){
  wert[i] = root.loaderInfo.parameters[i];
  balken_anzahl += 1;
  antworten_gesamt += parseInt(wert[i]);
  }
}


Ziel ist, dass ich hinterher 15 Variablen habe:

wert1
wert2
wert3
wert4

Die den 15 übergebenen Parametern:

1 = asd
2 = twesf
3 = wqra
4 = saf

entsprechen.
Kannst du mir folgen.
Geändert von Dopar am 24.01.11 um 20:02 Uhr

 24.01.2011, 23:21Re7
Benutzerbild von RustyCake
Beiträge: 1769
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

ne nicht so wirklich.
Die flashvars würde mich noch interessieren.
Vielleicht macht es ja dann klick.
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
Geändert von RustyCake am 24.01.11 um 23:48 Uhr

 25.01.2011, 15:32Re8
Beiträge: 24
Registriert: Mar 2010

Themenautor/in

Die root.loaderInfo.parameters werden als ?1=Eins&2=Zwei&3=Drei&4=Vier an den Aufruf der Datei angehängt. Und da es 15 Stück davon gibt will ich, dass in dieser Schleife die Zuordnung wie folgt gemacht wird:

ActionScript:
1
2
3
4
var wert1 = root.loaderInfo.parameters.1;
var wert2 = root.loaderInfo.parameters.2;

...


Nur eben als Schleife.
Geändert von Dopar am 25.01.11 um 15:33 Uhr

 25.01.2011, 16:41Re9
Benutzerbild von RustyCake
Beiträge: 1769
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

Und die var werte liegen in einem Array?
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
 25.01.2011, 17:26Re10
Beiträge: 24
Registriert: Mar 2010

Themenautor/in

Glaube ich verstehe die Frage nicht.

Die parameter werden an die URL übergeben. Also

sonstnochwas.swf?1=Eins&2=Zwei&3=Drei&4=Vier

und dann soll hinther je eine Variable (kein Array) in der Form

ActionScript:
1
2
var wert1 = root.loaderInfo.parameters.1;
var wert2 = root.loaderInfo.parameters.2;


raus kommen
Geändert von Dopar am 25.01.11 um 17:27 Uhr

 25.01.2011, 17:28Re11
Benutzerbild von RustyCake
Beiträge: 1769
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

OK, Wenn die Variablen "wert1-wert15", werte übergeben bekommen wie "eins-fünfzehn".
Was soll da dann zB. parseInt(wert[i].
Ich sage es immer wieder, und immer wieder gerne.
Bessere erklärt, bedeutet bessere Hilfe ;-)
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
 25.01.2011, 19:41Re12
Benutzerbild von RustyCake
Beiträge: 1769
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

Nochmal ein Beispiel, wie Du Dynamisch Variablen ansprechen kannst.
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*
var flashvars = {};
flashvars.v1 ="eins";
flashvars.v2 ="zwei";
flashvars.v3 ="drei";
flashvars.v4 ="vier";
*/

var wert1:String;
var wert2:String;
var wert3:String;
var wert4:String;
for (var i:Number =1; i<=4; i++) {
     if (root.loaderInfo.parameters["v" + i] != undefined) {
        this["wert" + i] = root.loaderInfo.parameters["v" + i];
        this["vari_txt" + i].text = this["wert" + i];
        //balken_anzahl = i;
   }
}
/* Ausgabe in den Textfeldern
vari_txt1 == "eins";
vari_txt2 == "zwei";
vari_txt3 == "drei";
vari_txt4 == "vier";
*/

Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
Geändert von RustyCake am 25.01.11 um 19:48 Uhr

 25.01.2011, 21:34Re13
Beiträge: 24
Registriert: Mar 2010

Themenautor/in

Hey,

vielen vielen Dank. Das Beispiel hat's gebracht. Jetzt hab auch ich's geblickt.

Jetzt hab ich noch ein Problem. Ich will jetzt noch nach dem selben Prinzip einen Eventlistener hinzufügen. (Das habe ich sogar selber geschafft ;) ) Nur jetzt klemmt es an der Funktion.

Den Eventlistener füge ich wie folgt hinzu:

ActionScript:
1this["stage" + i].addEventListener(Event.ENTER_FRAME,zeige);


Jetzt muss ich nur noch die Funktion zeige(e:Event) richtig machen. Meine Idee wäre, der Funktion einen 2ten Parameter zu übergeben (die Zahl des Wertes) damit ich in die Funktion auf die richtige Variable zurückgreifen kann.

Nur weiß ich nicht, wie ich bei nem EventListener einen 2ten Parameter an die Funktion anhängen kann. Kanst du mir da auch noch helfen?

Mein Ansatz:


ActionScript:
1
2
3
4
function zeige(e:Event):void{
  zwr = e.target.substring(4);
  this["ziel" + zwr] = "Neuer Wert";
}
Geändert von Dopar am 25.01.11 um 21:49 Uhr

 26.01.2011, 01:26Re14
Benutzerbild von RustyCake
Beiträge: 1769
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

Da ich nicht weis was ["stage"+i] is, ein Beispiel ohne Gewähr.
ActionScript:
1
2
3
4
5
6
this["stage" + i].ID = i;
this["stage" + i].addEventListener(Event.ENTER_FRAME,zeige);
function zeige(e:Event):void{
    zwr = e.target.ID;//oder e.currentTarget.ID
  this["ziel" + zwr] = "Neuer Wert";
}
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
 26.01.2011, 13:50Re15
Beiträge: 24
Registriert: Mar 2010

Themenautor/in

Hey,

danke dir vielmals. Ich weiß, dass meine Frage etwsa .... kompliziert gestellt war.. deswegen doppeltes Dankeschön an dieser Stelle. Mit hilfe des Beispiels hab ich meinen Script nochmal genau durch gesehen und habe die Fehler gefunden.

Danke ;)
 
Themen
Ähnliche Beiträge zum Thema
array variablennamen anzeigen [SWiSH] 13.07.2009 - zuckerwassertrinker
 

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de