Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30-11-2004, 14:43   #1 (permalink)
/(bb|[^b]{2})/
 
Registriert seit: Jan 2003
Beiträge: 10
Buttons dynamisch mit Funtion versehen

Hallo, ich hoffe mir kann jemand helfen, denn ich komme mit einem Problem in meinem aktuellen Projekt nicht weiter. Eigentlich dachte ich, es sei schnell gemacht, doch jetzt...

Ich habe einen Haufen Buttons, denen ich dynamisch über eine for-schleife eine Funktion zuweisen möchte. Diese Funktion soll aufgerufen werden, wenn der Button geklickt wird. Um mein Skript mal zu reduzieren. So sieht die for-Schleife aus:

ActionScript:
  1. for (i=0; i<buttons.length; i++) {
  2.     map_carrier.map_carrier.gs_buttons["bu_"+i].onRelease = function(){
  3.         trace (i);
  4. }

Was passiert ist, dass immer nur der letzte Wert der Variable i aufgerufen wird, wenn ich auf einen Button klicke.

Was mache ich falsch. Oder ist der ganze Ansatz daneben?
Hoffe Ihr wisst Rat.

Geändert von rodmg (30-11-2004 um 15:35 Uhr)
rodmg ist offline   Mit Zitat antworten
Alt 30-11-2004, 14:46   #2 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Du mußt ne Zwischenvariable setzen in dem der aktuelle Btn gespeichert wird.
ActionScript:
  1. for (i=0; i<buttons.length; i++) {
  2. map_carrier.map_carrier.gs_buttons["bu_"+i].ID=i;
  3. map_carrier.map_carrier.gs_buttons["bu_"+i].onRelease = function(){
  4. trace (this.ID);
  5. }
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 30-11-2004, 14:53   #3 (permalink)
/(bb|[^b]{2})/
 
Registriert seit: Jan 2003
Beiträge: 10
Da gibbet et ja nicht

Also, dass die Lösung so schnell kommt hätte ich nun wirklich nicht gedacht. Funzt natürlich. Vielen DANK!
rodmg ist offline   Mit Zitat antworten
Alt 30-11-2004, 14:57   #4 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Jupp, manchmal wird einem hier geholfen und manchmal geht das auch recht schnell.
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 30-11-2004, 15:33   #5 (permalink)
/(bb|[^b]{2})/
 
Registriert seit: Jan 2003
Beiträge: 10
So ist das wohl, vielleicht komme ich demnächst ja über die magische 10 Postinggrenze ;-)

Auch wenn mir klar ist, warum diese Lösung jetzt funktioniert verstehe ich beim näheren nachdenken nicht, warum meine Variante nicht funktioniert hat. Kann da jemand eine Wissenslücke schließen?
rodmg ist offline   Mit Zitat antworten
Alt 30-11-2004, 15:38   #6 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
In deiner Variante wird immer der letzte Wert gezeigt da die Schleife einmal durch ist.
Bei meiner Variante wird der aktuelle Wert in var ID gespeichert.

Ich hoffe mal ich hab das jetzt richtig erklärt.
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 30-11-2004, 15:47   #7 (permalink)
/(bb|[^b]{2})/
 
Registriert seit: Jan 2003
Beiträge: 10
OK! Ich bin davon ausgegangen, dass der Wert in der Funktion gespeichert wird. Was anscheinend so nicht ist. So sei es denn. Jetzt läuft es ja und mein Feierabend ist gerettet - ohne sich die ganze Zeit darüber den Kopf zu zerbrechen.
rodmg 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 22:34 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele