Diese Anzeige ist nur für
Nicht-Mitglieder sichtbar!

Jetzt kostenlos registrieren

Eventbubbling bei Buttonliste

Fragen zum Thema Flash können hier gestellt werden

Moderatoren: Basti, Ulli H.

Eventbubbling bei Buttonliste

Beitragvon Sven am 07.09.2011, 12:36

Hallo liebes Forum,

ich habe eine Liste aus Buttons (EqButton-Instanzen), die beim Auftreten eines Click-Events dieses bis zur Main hinaufbubblen lassen.

Daraufhin soll die Main, abhängig davon, welcher Button das Event geschickt hat, eine Instanz einer Klasse Bike erzeugen, mit unterschiedlichen Eigenschaften. Dabei wäre es schön, wenn Main die EqButton-Instanzen dazu nicht kennen muss.




Zur Veranschaulichung habe ich eine Grafik erstellt:
Bild



Codemäßig sieht es momentan so aus:

Code: Alles auswählen
package as3.EquipList {
   
   import flash.display.MovieClip;
   import flash.events.MouseEvent;
   import flash.events.Event;
   import flash.display.Bitmap;
   
   
   public class EqButton extends MovieClip {
      
      // Wird beim Click-Event zur Main geschickt
      public static var eventString:String;
      
      private var color:String;
      private var gears:int;
      private var tireSize:Number;
      private var brand:String;
      private var image:Bitmap;
      
      public function EqButton(image:Bitmap, brand:String, color:String, gears:int, tireSize:Number) {
         this.image = image;
         this.brand = brand;
         this.color= color;
         this.gears= gears;
         this.tireSize = tireSize;

         // Eigenschaften in String verpacken, um es in Main wieder aufzuteilen
         eventString = brand+","+color+","+gears+","+tireSize;

         addEventListener(MouseEvent.CLICK, launchEvent);
      }

      private function launchEvent(e:MouseEvent):void{
         var newEvent:Event = new Event(eventString, true, true);
         dispatchEvent(newEvent);
      }
}
}


Hier wird das Event in Main aufgefangen:
Code: Alles auswählen
addEventListener(EqButton.eventString, onEvent);
function onEvent(e:Event):void{
        // Hier Instanzen von Bike erzeugen
   trace("EVENT: "+e);
}



Da bekomme ich jedoch folgenden Fehler:
ArgumentError: Error #1063: Argument count mismatch on as3.EquipList::EqButton(). Expected 5, got 0.
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at as3.EquipList::List()
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at as3.EquipList::EquipList()
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at simulator_fla::MainTimeline()


Also scheinbar kann er die statische Variable eventString nicht ansprechen, da er die Instanz nicht kennt...
Könnt ihr mir bitte sagen, wie man es hinbekommt, dass die individuellen Daten aus eventString ohne Instanz übermittelt werden können?
Oder muss ich von der Main aus doch die Instanzen ansprechen und einzelnd auf Click-Events abfragen?

Danke schonmal für eure Hilfe. Wenn euch noch Angaben fehlen, so sagt bescheid und ich reiche sie nach.

Grüße,
Sven
* Ein schlechter Handwerker schiebt die Schuld stets auf sein Werkzeug.
* Komm wir essen Opa - Satzzeichen retten Leben.

Thomas Tremmel: Mein Nachbar Kurt
Unterhaltsame Geschichten aus der Fotografie.
Benutzeravatar
Sven
Moderator
 
Beiträge: 2212
Registriert: 17.11.2008, 14:40
Wohnort: NRW / Ennepetal
Diese Anzeige ist nur für
Nicht-Mitglieder sichtbar!
 
Jetzt kostenlos registrieren

Re: Eventbubbling bei Buttonliste

Beitragvon Sven am 16.09.2011, 11:06

Ok, ich hab's gelöst, indem ich mir eine eigene Event-Klasse geschrieben habe, welche die Instanz von EqButton aufnehmen kann.
* Ein schlechter Handwerker schiebt die Schuld stets auf sein Werkzeug.
* Komm wir essen Opa - Satzzeichen retten Leben.

Thomas Tremmel: Mein Nachbar Kurt
Unterhaltsame Geschichten aus der Fotografie.
Benutzeravatar
Sven
Moderator
 
Beiträge: 2212
Registriert: 17.11.2008, 14:40
Wohnort: NRW / Ennepetal

Re: Eventbubbling bei Buttonliste

Beitragvon omaweisses am 23.12.2011, 17:37

Danke für den tollen Post
omaweisses
Mitglied
 
Beiträge: 15
Registriert: 07.11.2011, 12:15


Zurück zu Flash

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast