| |||||||
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: Jan 2012
Beiträge: 3
| Erkennen welcher Button gedrückt wurde
Hallo! Ich bearbeite grad fürs Studium eine Aufgabe bei der wir mittels Flash eine interaktive Anleitung erstellen sollen. Meine Daten stehen in einer XML-Datei. Aus den Überschriften, lasse ich mir Buttons erstellen, die dann direkt auf den Hilfetext verweisen sollen (bzw. ihn laden sollen). Ich steh jetzt nur vor der Frage wie ich abfrage, welcher Button gedrückt wurde. Stehe da irgendwie grad total auf dem Schlauch. Code: for (var i:int=0;i<=xmlData.kapitel.hilfetext.ueberschrift.length()-1; i++){
this["tf" + i] = new Button();
menu1.addChild(this["tf"+i]);
this["tf"+i].label=xmlData.kapitel.hilfetext.ueberschrift[i];
trace("tf"+i);
this["tf"+i].addEventListener(MouseEvent.MOUSE_UP, loadxmlelement);
} |
| | |
| | #2 (permalink) |
| mod_rewrite Registriert seit: Feb 2003 Ort: München
Beiträge: 15.621
|
Hi, du könntest den Button-Instanzen "verwertbare" Namen geben und damit arbeiten, so in der Art: PHP-Code:
__________________ RTFM Wie man Fragen richtig stellt. Achim Bindannmalweg Money makes the world go round, fear makes it turn much faster. (New Model Army) |
| | |
| | #3 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.139
|
Besser wäre es, wenn du eine direkte Assozition herstellst, beispielsweise über ein Dictionary. Dann muss deine Anwendung nicht wissen, wie die Konvention für die Namensgebung der Buttons ist: Code: const dict:Dictionary = new Dictionary();
const button:Sprite = new Sprite();
button.addEventListener(MouseEvent.CLICK, button_clickHandler);
dict[button] = "Hello World";
function button_clickHandler(event:MouseEvent):void
{
const sprite:Sprite = event.target as Sprite;
if (sprite) trace(dict[sprite]);
}
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #5 (permalink) | |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
| Da Dich ja noch niemand begrüßt hat: Willkommen im FlashForum! Zitat:
Auch beim Durchlaufen Deines XMLs kannst Du ganz auf [] und einen Index verzichten und stattdessen einfach eine for each-Schleife verwenden. Und Dictionarys sind übrigens kein Hexenwerk, sondern ungemein praktisch. Sie funktionieren genauso wie Arrays, können aber statt Zahlen beliebige Objekte als Schlüssel verwenden. Alles in allem könnte Dein Code so aussehen: ActionScript:
__________________ Viele Grüße // Martin Martin Kraft // Interaktionsdesign Hilfreiche Websites: // Hilfe zur Adobe Flash Plattform // ActionScript 2 Referenz // ActionScript 3 Referenz // ActionScript 3 Arbeitshandbuch // weitere Flash Ressourcen Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da! Geändert von Martin Kraft (29-01-2012 um 11:09 Uhr) | |
| | |
| | #6 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.139
|
Eine andere, ähnliche Art und Weise wäre es, über eine zweite Map die Assoziation herzustellen: Code: const map:Object = {};
const button:Sprite = new Sprite();
button.addEventListener(MouseEvent.CLICK, button_clickHandler);
setTextFor(sprite.name = "key1", "Hello world");
function button_clickHandler(event:MouseEvent):void
{
const sprite:Sprite = event.target as Sprite;
if (sprite) trace(getText(sprite.name));
};
function getTextFor(key:String):String
{
if (!key || key == '')
throw new ArgumentError('Key must not be empty or null.');;
if (!map.hasOwnProperty(key))
throw new ArgumentError('Key not found.');;
return map[key];
}
function setTextFor(key:String, text:String = ""):void
{
if (!key || key == '')
throw new ArgumentError('Key must not be empty or null');;
map[key] = text;
}
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript Geändert von Omega Psi (29-01-2012 um 18:00 Uhr) |
| | |
| | #7 (permalink) | |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
| Zitat:
__________________ Viele Grüße // Martin Martin Kraft // Interaktionsdesign Hilfreiche Websites: // Hilfe zur Adobe Flash Plattform // ActionScript 2 Referenz // ActionScript 3 Referenz // ActionScript 3 Arbeitshandbuch // weitere Flash Ressourcen Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da! Geändert von Martin Kraft (29-01-2012 um 12:11 Uhr) | |
| | |
| | #8 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.139
|
Naja, Seiteneffekte können immer auftreten. Daher das schmeißen der Fehler. Was ist wenn man in deinem Beispiel das Dictionary "nullt"? Das var macht die Sache nicht sicherer und daher sind solche Argumente auch immer schwer haltbar. So gesehen sind so ziemlich alle Beispiele hier im Forum potenziell schlecht, da sie Risiken im Laufzeit verhalten aufweisen. -> Es gibt keine optimale Lösung, nur eine Menge von Kompromissen und man muss sich darüber im Klaren sein. Und auch wenn die Zugriffsoperationen den code aufblähen, so helfen sie beim Suchen der Fehler und beim Debuggen. Da man in ActionScript kaum ohne Seiteneffekte arbeiten kann, würde ich auch mit gekapselten Dictionarys arbeiten, aber das ist nunmal nicht unsere Entscheidung.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| formular - welcher button wurde geklickt? | benicio | PHP und MySQL | 6 | 25-06-2009 12:22 |
| welcher button wurde gedrückt? | wannebe | ActionScript 3 | 3 | 26-06-2008 20:53 |
| Überprüfen welcher button gedrückt wurde | Lythron | Flash 4 und Flash 5 | 7 | 12-10-2005 11:12 |
| welche button wurde gedrückt? | match | ActionScript 1 | 6 | 26-10-2004 21:09 |
| Login... Abfragen ob Send Button schon gedrückt wurde | MacEvil | PHP und MySQL | 5 | 02-12-2003 11:59 |