Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-09-2005, 08:16   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 40
Dynamische Variablen in Flash

Guten Morgen,

suche seit gestern im Internet wie man in Flash Dynamische Variablen schreibt.

Sprich mein Variablen Name ist halt immer anders...

z.B.

ActionScript:
  1. var test1 = hallo;
  2.  
  3. for (var i = 1; i <= 2; i++)
  4. {
  5. _root.gotoAndStop (test+i);
  6. }

Danke ....

Mfg
Marc
Marc Weller ist offline   Mit Zitat antworten
Alt 06-09-2005, 08:23   #2 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
ActionScript:
  1. var test1 = "hallo";
  2.  
  3. for (var i = 1; i <= 2; i++)
  4. {
  5.         _root.gotoAndStop (this["test"+i]);//es geht auch: _root.gotoAndStop (_root["test"+i]);
  6. }
...und 'nein, es fehlt kein Punkt..'

Gruß

Alois

Edit: ...wobei der Code wenig Sinn macht...
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-

Geändert von Alois (06-09-2005 um 08:28 Uhr)
Alois ist offline   Mit Zitat antworten
Alt 06-09-2005, 08:31   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 40
Hi,

dass hatte ich auch shcon ausprobiert geht aber bei mir nicht ..?? warum?

hier das script

ActionScript:
  1. //frame 1 auf _root
  2. var activ = this;
  3. var clicked;
  4. var gehe1 = "20";
  5. var gehe2 = "40";
  6. //
  7. for (var i = 1; i <= 2; i++)
  8. {
  9.     this["btn" + i].onRollOver = function ()
  10.     {
  11.         if (this != activ.clicked)
  12.         {
  13.             this.gotoAndStop (2);
  14.         }
  15.     };
  16.     this["btn" + i].onRollOut = this["btn" + i].onReleaseOutside = function () {
  17.         if (this != activ.clicked) {
  18.             this.gotoAndStop (1);
  19.         }
  20.     };
  21.     this["btn" + i].onRelease = function () {
  22.         if (this != activ.clicked) {
  23.             //hier die Navigations-Aktion...
  24.             _root.gotoAndStop (this["gehe"+i]);
  25.             activ.clicked.gotoAndStop (1);
  26.             activ.clicked.useHandCursor = true;
  27.             activ.clicked = this;
  28.             this.useHandCursor = false;
  29.         }
  30.     };
  31. }
Marc Weller ist offline   Mit Zitat antworten
Alt 06-09-2005, 09:09   #4 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
Zwei Gründe:
- in diesem Fall geht 'this["gehe"...' nicht weil Du das ja im this["btn" + i].onRelease-Handler schreibst und this dan entsprechend this.btn1 oder this.btn2 ist
-ausserdem steht im this.btnX.onRelease-Handler theoretisch folgender Code:
ActionScript:
  1. if (this != activ.clicked) {
  2.     //hier die Navigations-Aktion...
  3.     _root.gotoAndStop(this["gehe"+_root.i]);//weil der Code von _root kommt
  4.     activ.clicked.gotoAndStop(1);
  5.     activ.clicked.useHandCursor = true;
  6.     activ.clicked = this;
  7.     this.useHandCursor = false;
  8. }
und nach Vollendung der Schleife wird die _root.i als lokale Variable nicht mehr existieren oder (wenn du auf das var verzichtest) für alle buttons auf 3 stehen...
Hier mal 'korrigiert':
ActionScript:
  1. //frame 1 auf _root
  2. var activ = this;
  3. var clicked;
  4. var gehe1 = "20";
  5. var gehe2 = "40";
  6. //
  7. for (var i = 1; i <= 2; i++)
  8. {
  9. this["btn" + i].i=i;//jeder Button bekommt ein eigenes i...
  10.         this["btn" + i].onRollOver = function ()
  11.         {
  12.                 if (this != activ.clicked)
  13.                 {
  14.                         this.gotoAndStop (2);
  15.                 }
  16.         };
  17.         this["btn" + i].onRollOut = this["btn" + i].onReleaseOutside = function () {
  18.                 if (this != activ.clicked) {
  19.                         this.gotoAndStop (1);
  20.                 }
  21.         };
  22.         this["btn" + i].onRelease = function () {
  23.                 if (this != activ.clicked) {
  24.                         //hier die Navigations-Aktion...
  25.                         _root.gotoAndStop (_root["gehe"+this.i]);
  26.                         activ.clicked.gotoAndStop (1);
  27.                         activ.clicked.useHandCursor = true;
  28.                         activ.clicked = this;
  29.                         this.useHandCursor = false;
  30.                 }
  31.         };
  32. }
....wobei dann die Frage bleibt, warum nicht direkt die Werte aus den variablen....
ActionScript:
  1. //frame 1 auf _root
  2. var activ = this;
  3. var clicked;
  4. var gehe = [20,40];
  5.  
  6. //
  7. for (var i = 1; i <= 2; i++)
  8. {
  9. this["btn" + i].i=gehe[i-1];//jeder Button bekommt ein eigenes i...
  10.         this["btn" + i].onRollOver = function ()
  11.         {
  12.                 if (this != activ.clicked)
  13.                 {
  14.                         this.gotoAndStop (2);
  15.                 }
  16.         };
  17.         this["btn" + i].onRollOut = this["btn" + i].onReleaseOutside = function () {
  18.                 if (this != activ.clicked) {
  19.                         this.gotoAndStop (1);
  20.                 }
  21.         };
  22.         this["btn" + i].onRelease = function () {
  23.                 if (this != activ.clicked) {
  24.                         //hier die Navigations-Aktion...
  25.                         _root.gotoAndStop (this.i);
  26.                         activ.clicked.gotoAndStop (1);
  27.                         activ.clicked.useHandCursor = true;
  28.                         activ.clicked = this;
  29.                         this.useHandCursor = false;
  30.                 }
  31.         };
  32. }
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois ist offline   Mit Zitat antworten
Alt 06-09-2005, 09:17   #5 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 40
Hey, danke..

also Version 1 Geht leider nciht, aber die Version 2 geht supi!!

Danke .. werde jetzt mal versuchen zu verstehen was du da gemacht hast :-)

Mfg
Marc
Marc Weller 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 05:24 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele