Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-02-2005, 12:35   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 10
Zähler ist immer auf Endwert

for(i=0;i<=5;i++){
trace(i);
button.onPress = function() {
trace(i);
}
}

Stark abstrahiert dargestellt trotzdem das gleiche Problem. Er gibt mir bei Buttonklick immer 6 aus und nicht den eigentlich Schleifenwert. Liegt wohl daran, dass die Funktion erst bei Klick geladen wird, während die schleife schon bei Programmstart durchläuft, oder? Wie kann ich aber dann dynamisch Funktionen verteilen, das heißt bei Klick auf Button1 zb Textdatei 1.txt laden und bei 2 2.txt ohne alle explizit aufzuführen?
timmm ist offline   Mit Zitat antworten
Alt 24-02-2005, 12:54   #2 (permalink)
nobody is perfect
 
Benutzerbild von Decrone
 
Registriert seit: Apr 2002
Ort: Bremen
Beiträge: 3.049
hi

wenn Du 5 button's den Wert i geben möchtest dann mach mal so
ActionScript:
  1. for(var i=0;i<=5;i++){
  2. this["button"+i].i = i;
  3. this["button"+i].onPress = function() {
  4. trace(this.i);
  5. }
  6. }

Button-Instanz

button0
button1
usw.

bye
__________________
FF Unterstützen! Erste Hilfe! häufig gestellten Fragen
...................... ............... ................................
Decrone ist offline   Mit Zitat antworten
Alt 24-02-2005, 13:41   #3 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 10
klappt nicht this.i = undefined

vielleicht mal den richtigen quelltext. also bei press will er bei jedem button 7.swf bzw .txt öffnen

for (i=1; i<=6; i++) {
player.attachMovie(["button"+i],["b"+i],tiefe++);
player["b"+i]._x = 105 + (i*12);
player["b"+i]._y = 3;
player["b"+i].onPress = function() {
this._x += 1;
this._y += 1;
this._xscale = 80;
this._yscale = 80;
loadMovieNum(i+".swf",999);
loadVariables(i+".txt",player.tit);
};
player["b"+i].onRelease = function () {
this._x -= 1;
this._y -= 1;
this._xscale = 100;
this._yscale = 100;
};
player["b"+i].onReleaseOutside = player["b"+i].onRelease;
}

Geändert von timmm (24-02-2005 um 13:43 Uhr)
timmm ist offline   Mit Zitat antworten
Alt 24-02-2005, 14:33   #4 (permalink)
nobody is perfect
 
Benutzerbild von Decrone
 
Registriert seit: Apr 2002
Ort: Bremen
Beiträge: 3.049
ich habs Dir doch schon oben gepostelt???

also nochmal

ActionScript:
  1. for (var i=1; i<6; i++) {
  2.     this.player.attachMovie(["button"+i],["b"+i],tiefe++);
  3.     this.player["b"+i]._x = 105 + (i*12);
  4.     this.player["b"+i]._y = 3;
  5.     this.player["b"+i].i=i;
  6.     this.player["b"+i].onPress = function() {
  7.         this._x += 1;
  8.         this._y += 1;
  9.         this._xscale = 80;
  10.         this._yscale = 80;
  11.         loadMovieNum(this.i+".swf",999);
  12.         loadVariables(this.i+".txt",player.tit);
  13. };
  14.     this.player["b"+i].onRelease = function () {
  15.         this._x -= 1;
  16.         this._y -= 1;
  17.         this._xscale = 100;
  18.         this._yscale = 100;
  19.     };
  20.     this.player["b"+i].onReleaseOutside = player["b"+i].onRelease;
  21. }

bye
__________________
FF Unterstützen! Erste Hilfe! häufig gestellten Fragen
...................... ............... ................................
Decrone ist offline   Mit Zitat antworten
Alt 24-02-2005, 14:41   #5 (permalink)
The Hobbyflasher
 
Benutzerbild von Bauchfetischist
 
Registriert seit: Feb 2005
Ort: nähe ingolstadt (Bayern)
Beiträge: 219
Cool Try this!!!

Zitat:
Zitat von timmm

for (i=1; i<=6; i++) {
player.attachMovie(["button"+i],["b"+i],tiefe++);
player["b"+i]._x = 105 + (i*12);
player["b"+i]._y = 3;
player["b"+i].onPress = function() {
this._x += 1;
this._y += 1;
this._xscale = 80;
this._yscale = 80;
loadMovieNum(i+".swf",999);
loadVariables(i+".txt",player.tit);
};
player["b"+i].onRelease = function () {
this._x -= 1;
this._y -= 1;
this._xscale = 100;
this._yscale = 100;
};
player["b"+i].onReleaseOutside = player["b"+i].onRelease;
}
Der fett gedruckte part is die function für den Release auf einen button oda?

warum machst du ned auf den die ganze For schleife in dem onRelease event?, so rechnet er erst dann, wenn du auf den button drückst


TRY THIS!!!

__________________
Dist du zu Schwach bin ich zu Stark
Behave or I ´ll get @ngry

mfg Bauchi :D
Bauchfetischist ist offline   Mit Zitat antworten
Alt 24-02-2005, 14:48   #6 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 10
@ decrone: habs dummerweise in die überschrift geschrieben: this.i liefert mir undefined.

@ bauchfetischist: geht ja nicht ich will das ja einem bestimmten button zuordnen als muss die for schleife schon vorher sein
timmm ist offline   Mit Zitat antworten
Alt 24-02-2005, 14:55   #7 (permalink)
nobody is perfect
 
Benutzerbild von Decrone
 
Registriert seit: Apr 2002
Ort: Bremen
Beiträge: 3.049
ich habs natürlich getestet und i gibt mir den richtigen Wert aus!

Ansonsten schieb mal ne Bsp.fla (max. 50 kb) hier rüber!

bye
__________________
FF Unterstützen! Erste Hilfe! häufig gestellten Fragen
...................... ............... ................................
Decrone ist offline   Mit Zitat antworten
Alt 24-02-2005, 15:33   #8 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 10
du machst wahrscheinlich einfach das this.i in die forschleife weil das klappt dann auch bei mir.
Das problem ist aber, dass wenn ich das in eine onPress funktion schreibe, das er das "i" dann liest wenn man klickt und dann ist es natürlich immer 7 bzw eins mehr als die schleife zulässt.
timmm ist offline   Mit Zitat antworten
Alt 24-02-2005, 16:00   #9 (permalink)
Neuer User
 
Registriert seit: Feb 2005
Beiträge: 10
habs rausgefunden

for (i=1; i<=6; i++) {
player.attachMovie(["button"+i],["b"+i],tiefe++);
player["b"+i]._x = 105 + (i*12);
player["b"+i]._y = 3;
player["b"+i].num = i;
player["b"+i].onPress = function() {
this._x += 1;
this._y += 1;
this._xscale = 80;
this._yscale = 80;
loadVariables(this.num +".txt",player.titel);
loadMovieNum(this.num +".swf",999);
};
timmm 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 14:15 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele