mehrere MCs gleichzeitig ansprechen [Flash 9]
| Beiträge: 28 Registriert: Oct 2008
| 24.10.2008, 21:24
Hi Leute,
ich habe ein kleines aber sicherlich lösbares Problem.
Ich habe ein MC und darin 8 Buttons... Die Buttons haben einen StdAlpha wert von 0.3 und bei roll over soll die jeweilige alpha eigenschaft auf 1 gesetzt werden.
hierzu möchte ich für alle btn im MovieClip jeweils 2 EventListener zuweisen (ROLL_OVER,ROLL_OUT)... Das einzeln zuzuweisen ist ja kein problem, aber etwas aufwendig bzw nicht elegant...
gibts da ne art möglichkeit das mit einer for each schleife zu realisieren?
in etwa so:
for each button in movieclip
addeventlistener....
danke!! | Geändert von thetoasta am 24.10.08 um 21:59 Uhr | |
| | Beiträge: 1443 Wohnort: bei Kiel Registriert: Aug 2005
| 24.10.2008, 22:50
Mit numChildren und getChildAt kannst du dich durch die Buttons schleifen.
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import flash.display.DisplayObject;
import flash.events.MouseEvent;
var numButtons:int = mc.numChildren;
for (var i:int = 0; i < numButtons; i++) {
var button:DisplayObject = mc.getChildAt(i);
button.addEventListener(MouseEvent.ROLL_OVER, buttonRollOver);
button.addEventListener(MouseEvent.ROLL_OUT, buttonRollOut);
}
function buttonRollOver(event:MouseEvent):void {
var button:DisplayObject = event.currentTarget as DisplayObject;
trace("over");
}
function buttonRollOut(event:MouseEvent):void {
var button:DisplayObject = event.currentTarget as DisplayObject;
trace("out");
}
|
mathis | | | Beiträge: 61 Wohnort: Berlin Registriert: Sep 2003
| 25.10.2008, 00:23
wenn jeder button das gleiche verhalten zeigen soll, wäre es auch sinnvoll dieses verhalten von der button klasse selbst erledigen zu lassen, also das eventhandling und auch die animation (alphawert ändern) innerhalb der button klasse abzuarbeiten.
dann kann jeder button SEINE aufgaben SELBST erledigen und die hauptroutine muss das nicht noch mitverwalten.
--------nicht ganz off-topic:
im nachhinein muss ich hier noch mal omega psi recht geben, auch den klick-event nach innen zu verlegen (siehe Re 23)XION | | | Beiträge: 28 Registriert: Oct 2008
Themenautor/in
| 25.10.2008, 01:16
ok, das klingt vernünftig, wie setze ich das um? | | | Beiträge: 791 Registriert: Apr 2004
| 25.10.2008, 12:20
ich würde aber, anstatt mit numChildren und getChildAt zu arbeiten, die Buttons in ein Array stecken. Denn sobald numChildren größer ist, als die Anzahl der Buttons... kommst du um das Array nicht herum.
Der Klassen-Ansatz ist allerdings der bessere.Architectures - Refactoring - Prototyping - Coding - Training | Geändert von omega psi am 25.10.08 um 12:21 Uhr | |
| | Beiträge: 61 Wohnort: Berlin Registriert: Sep 2003
| 25.10.2008, 12:43
zu Re2:
kommt ganz auf dein konzept an.
wenn du einfach nur gezeichnete buttons in einer fla hast und diese nicht über eine externe klasse definieren möchtest, ist die lösung von mathis prima. sie macht auch nichts anderes als den buttons die eventListener zuzuweisen. behandelt die aktionen dann aber auf der hauptroutine.
falls du mit EINER externen klasse für die buttons oder ganz ohne die flash umgebung arbeitest und eine klasse BUTTON oder so erstellst dann gäbe es hier ein rezept. siehe Re20
damit wäre fast alles nach innen verlegt.XION | Geändert von XION am 25.10.08 um 12:45 Uhr | |
|
| Ähnliche Beiträge zum Thema | 29.11.2019 - Yuna 05.06.2019 - Indy_Crossover 17.01.2019 - JustynTime 20.02.2019 - schliedueker |
|
Flashhilfe.de Flash Platform Tipps & Tutorials Flash Platform Andere Programmiersprachen Jobangebote Diskussionen
Flashhilfe News 
Regeln & Bedingungen
|