| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Oct 2011
Beiträge: 3
| EventHandling zwischen mehreren Buttons
Hallo zusammen, im Moment habe ich ein Problem mit dem EventHandling. Auf meiner Bühne habe ich mehrere Buttons, welche von der SuperButtonKlasse abgeleitet sind. Nun möchte ich bei MouseClick auf einen Button, diesen highlighten (was auch funktioniert) und gleichzeitig die anderen Buttons ausgrauen (was nicht funktioniert). Für das Highlighting eines Buttons habe ich ganz normal die MouseClick Funktion in der SuperButtonklasse implementiert. Dann habe ich mir eine eigene Eventklasse ButtonEvent geschrieben. Bei MouseClick auf einen Button wird dann auch ein ButtonEvent gesendet. In meiner Dokumentenklasse habe ich nun einen Vector in dem alle Buttons drinstehen. Jetzt laufe ich einmal über den Vector und füge einen EventListener für alle darin enthaltenen Buttons hinzu. In der EventHandlingFunction möchte ich nun wieder über meinen Vector laufen und alle nicht angeklickten Objekte (d.h. alle Objekte !== e.currentTarget ?) ausgrauen. Das funktioniert allerdings nicht. Weiß jemand warum das so ist? Behandelt er die Objekte irgendwie anders? Hier mal ein paar Codefragmente: In der EventHandling Funktion MouseClick der SuperButtonklasse, von der jeder Button abgeleitet ist, steht: Code: //Button Event ist meine eigene EventKlasse this.dispatchEvent(new ButtonEvent(ButtonEvent.MainButtonClicked, null)); Code: //Vector anlegen private var mainButtonVec:Vector.<SuperButtonKlasse>; Code: mainButtonVec = Vector.<SuperButtonKlasse>([mainButton1, mainButton2]);
for each(var mainButton:SuperButtonKlasse in mainButtonVec)
{
mainButton.addEventListener(ButtonEvent.MainButtonClicked, mainButtonClicked);
} Code: private function mainButtonClicked(e:ButtonEvent)
{
/*Vektor durchlaufen, für jedes Objekt != e.currentTarget eine Funktion der
SuperButtonKlasse aufrufen, wo der Movie Clip auf unselected gesetzt wird*/
for each(var mainButton:SuperButtonKlasse in mainButtonVec)
{
if(e.currentTarget === mainButton);
{
trace("MovieClip wird ausgewählt");
}
if(e.currentTarget !== mainButton);
{
trace("MovieClip auf unselected setzen");
}
}
} Grüße von Bluemoon |
| | |
| | #2 (permalink) | ||
| Neuer User Registriert seit: Mar 2009 Ort: Braunschweig
Beiträge: 164
|
Hallo Bluemoon, zwei große Probleme: Zitat:
Gerade diese Information muß zum Listener transportiert werden. Zitat:
und in der Event-Handling-Funktion werden alle (!) Buttons getestet. Das ist definitiv einmal "alle" zuviel. Entweder alle Buttons sind Listener und jeder testet dann nur sich selbst oder nur die Dokumentenklasse ist Listener und testet dann alle Buttons. Grüße, Matthias Kievernagel | ||
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Eventhandling für mehrere Buttons | fradi | ActionScript 3 | 13 | 20-04-2008 15:57 |
| tweening zwischen 2 und mehreren intervallen | Gibbs_Helmholz | Flash Einsteiger | 2 | 05-01-2007 15:17 |
| MC Buttons: Rollover Problem mit mehreren Buttons | SlimboKarvell | Flash MX | 3 | 07-09-2005 12:32 |
| Kommunikation zwischen mehreren PCs | Dracaelius | Flash 4 und Flash 5 | 2 | 08-02-2004 19:57 |
| farbverlauf zwischen mehreren farben | dmxmorales | ActionScript 1 | 3 | 01-08-2002 15:48 |