Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-08-2004, 17:30   #1 (permalink)
aka stauby
 
Benutzerbild von webdust
 
Registriert seit: Mar 2004
Ort: Würzburg
Beiträge: 705
Variablenname in Schleife deklarieren

Hallo,

stehe grade ein bisschen auf dem Schlauch. Ich möchte in einer Schleife eine Variable deklarieren und der ein setInterval zuweisen, also

PHP-Code:
for(i=0;i<10;i++= {
 
id setInterval(irgendwas,1000);

Nun würde ja jedesmal diese Variable überschrieben werden. Wie mache ich also bei der Deklaration den Namen der Variable vom Laufparameter abhängig? Habe schon ["id"+i], eval,... und anderes mehr oder weniger sinnvolles probiert.
__________________
"The things you own end up owning you."
webdust ist offline   Mit Zitat antworten
Alt 15-08-2004, 17:47   #2 (permalink)
nobody is perfect
 
Benutzerbild von Decrone
 
Registriert seit: Apr 2002
Ort: Bremen
Beiträge: 3.049
und so?
ActionScript:
  1. for(i=0;i<10;i++) {
  2. this["id"+i] = setInterval(irgendwas,1000);
  3. }

bye
__________________
FF Unterstützen! Erste Hilfe! häufig gestellten Fragen
...................... ............... ................................
Decrone ist offline   Mit Zitat antworten
Alt 15-08-2004, 18:25   #3 (permalink)
aka stauby
 
Benutzerbild von webdust
 
Registriert seit: Mar 2004
Ort: Würzburg
Beiträge: 705
Klappt - aber auch nur, wenn man das "var" vorne dran weglässt. (Was ich oben zwar nich dabei stehen hatte, im Original aber schon)
__________________
"The things you own end up owning you."
webdust ist offline   Mit Zitat antworten
Alt 15-08-2004, 18:49   #4 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
hö?

was meionst du mit "var" weglassen?
so gehts jedenfalls auch mit "var":

ActionScript:
  1. for(var i=0;i<10;i++) {
  2. this["id"+i] = setInterval(irgendwas,1000);
  3. }
pape ist offline   Mit Zitat antworten
Alt 15-08-2004, 18:53   #5 (permalink)
aka stauby
 
Benutzerbild von webdust
 
Registriert seit: Mar 2004
Ort: Würzburg
Beiträge: 705
Nee, nicht das "var", sondern das:
var this["id"+i] = bla bla bla
__________________
"The things you own end up owning you."
webdust ist offline   Mit Zitat antworten
Alt 15-08-2004, 18:54   #6 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
this["id"+i] ist keine variable (!) sondern ein Objekt und zwar ein Interval!

das kannst du mit clearInterval(id) wieder löschen!
pape ist offline   Mit Zitat antworten
Alt 15-08-2004, 18:56   #7 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
wofür wäre auch ein temporäres Interval gut?
das ausführen des scripts geht wahrscheinlich so schnell , dass noch nicht mals ein aufruf stattfinden würde...
pape ist offline   Mit Zitat antworten
Alt 15-08-2004, 19:05   #8 (permalink)
aka stauby
 
Benutzerbild von webdust
 
Registriert seit: Mar 2004
Ort: Würzburg
Beiträge: 705
Zitat:
Zitat von pape
this["id"+i] ist keine variable (!) sondern ein Objekt und zwar ein Interval!
Danke, wieder was dazu gelernt.

Problem war, ich habe das Skript aus diesem Thread genommen, und da dran rumgebastelt. Und da stand das "var" schon und ich habe mir keine größeren Gedanken drüber gemacht, weil´s ja auch einwandfrei funktioniert hat. Außerdem hat mich ein kleiner Blick in die Flash-Hilfe auch nicht vermuten lassen, dass es daran liegt:

PHP-Code:
var intervallID;
intervallID setIntervalcallback1000 ); 
__________________
"The things you own end up owning you."
webdust ist offline   Mit Zitat antworten
Alt 15-08-2004, 19:14   #9 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
*hust*
berichtigung:
this["id"+i] ist zunächst eine variable und verweist nur auf das Interval!
dieses kann man mit clearInterval(id) wieder löschen!
die variable existiert jedoch weiterhin...

daher würde ein "var" doch sinnmachen!
denn nur die variabel wäre temporär und nicht das interval...

aber so könnte man es dann in deinem Falle machen machen:
ActionScript:
  1. function lala () {
  2.     trace("lala");
  3. }
  4.  
  5. for (i = 1; i<5; i++) {
  6.     var name = this["id"+i];
  7.     name = setInterval(lala,2000)
  8. }
pape 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 10:55 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele