Änderung (z.B. Farbe) geklickter Buttons & Funktion wenn alle Buttons geklickt [Flash 10]
| Beiträge: 3 Registriert: Nov 2015
| 29.11.2015, 21:20
Liebe Leute!
Als Anfänger in Flash CS5 bin ich mit meinen geringen AS3-Kenntnissen an einen Punkt angelangt, bei dem ich ohne Hilfe nicht mehr weiterkomme. Vielleicht kann mir der eine oder andere hier im Forum ja weiterhelfen.
In meiner Hauptzeitleiste befinden sich 7 Buttons. Während einer bestimmten Zeit (automatisch durch einen Movieclip geregelt) sollen diese Buttons angeklickt werden. Egal welcher Button zuerst, als zweiter, usw. geklickt wird sollen diese sich ändern --> so weiß man, welcher Button schon geklickt wurde. Wie kann ich das mittels AS3 am besten regeln und kann ich den dargestellten (z.B. durch farbliches hervorheben) Unterschied in dem jeweiligen Button definieren oder in einem Movielip, der sich im Button befindet?
Wenn dann auch der letzte Button geklickt wurde soll in die nächste Szene gesprungen werden. Ich nehme an, das geht mittels einer if-Schleife. Aber wie sieht das als Code aus? Denn mit meinen bisherigen Vorhaben hatte ich bis jetzt noch keine Schleife verwendet.
Vielen Dank schonmal im voraus.
Lg
3iskalt | | | Beiträge: 3 Registriert: Nov 2015
Themenautor/in
| 30.11.2015, 21:36
Mein Problem mit den sieben Buttons konnte ich schon lösen. Ich habe anstatt Buttons einfach Movieclips erstellt und in diesen im ersten Frame durch den Befehl
hier stehen lassen. Im ActionScript wurden diese aber als Buttons behandelt und in der jeweiligen zugewiesenen Funktion durch
ActionScript:1 | MovieClip(meinButton).gotoAndStop(2);
|
gesteuert, sodass die Veränderung (Farbwechsel, Formänderung, etc.) auch ersichtlich wurde.
Mein Problem mit der (noch) fehlenden if-Schleife besteht aber weiterhin:
Wenn dann auch der letzte Button geklickt wurde soll in die nächste Szene gesprungen werden. Ich nehme an, das geht mittels einer if-Schleife. Aber wie sieht das als Code aus? Denn mit meinen bisherigen Vorhaben hatte ich bis jetzt noch keine Schleife verwendet.
Kann mir hierbei vielleicht jemand helfen? Danke schonmal.
Lg
3iskalt | Geändert von 3iskalt am 30.11.15 um 21:37 Uhr | |
| | Beiträge: 3 Registriert: Nov 2015
Themenautor/in
| 05.12.2015, 21:34
Mein Problem wurde gelöst. Mein Dank geht an "leetwinski" von stackoverflow.com und für die Flasher unter euch, die ebenfalls eine Lösung dafür suchen folgt nun der notwendige Code (einfach kopieren) mit ein paar Erklärungen dazu:
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | var buttons:Array = [meinButton1, meinButton2, meinButton3, meinButton4, meinButton5, meinButton6, meinButton7]; //hier, und in diesem Code NUR hier, werden die Buttons definiert
const clicked:Dictionary = new Dictionary();
function clickHandler(event:Event):void {
clicked[event.currentTarget] = true;
event.currentTarget.gotoAndPlay(2) //hier springt der MovieClip (die Buttons, die diese Eigenschaft haben sollen) nach dem Klick auf Bild 2, wenn ihr das wollt. Wenn nicht dann entfernt die Zeile "event.currentTarget.gotoAndPlay(2)" einfach und es wird immer Bild 1 gezeigt
const everyClicked:Boolean = buttons.every(
function(item:Object, ...rest):Boolean {
return clicked[item];
});
if (everyClicked) {
for each (var button:EventDispatcher in buttons) {
button.removeEventListener(MouseEvent.CLICK, clickHandler);
}
gotoAndPlay(1, "Szene 2"); //hier sagt ihr dem Skript, was nach dem Klick ALLER Buttons passieren soll
}
}
for each (var button:DisplayObject in buttons) {
clicked[button] = false;
button.addEventListener(MouseEvent.CLICK, clickHandler);
}
|
Lg 3isKaLt | Geändert von 3iskalt am 05.12.15 um 21:38 Uhr | |
|
| Ähnliche Beiträge zum Thema | 13.09.2021 - Willisquirion 28.07.2022 - TateBauch 13.09.2022 - Rennier |
|
Flashhilfe.de Flash Platform Tipps & Tutorials Flash Platform Andere Programmiersprachen Jobangebote Diskussionen
Flashhilfe News
Regeln & Bedingungen
|