2 Stimmen

Namenswert des Ereignisziels abrufen - AS3

Ich implementiere einen Textanzeigebereich in einer App, der ausgewählten Text anzeigt, wenn der Benutzer mit der Maus über eines von vier Elementen fährt. Anstatt eine Handler-Funktion für jedes Element zu erstellen, möchte ich den Namen der Instanz erhalten, die den Handler aufruft, um eine Switch-Anweisung zu implementieren. Ich habe zwei Möglichkeiten ausprobiert, aber beide funktionieren nicht:

//install event handlers
initialText.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
timeText.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
withdrawalText.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);

//also tried without toString, same result
var name:String= evt.target.name.toString();
var name=String= evt.currentTarget.name.toString();

Beide geben für den Variablennamen undefiniert zurück. Im Debugger kann ich jedoch die Ereigniswerte durch currentTarget.name verfolgen, und das zeigt die Instanz, die die Handler-Funktion auslöst, egal ob es sich um withdrawalText, initialText or timeText . Wie kann ich also den Namenswert auf eine Variable anwenden, um zu bestimmen, welcher Textblock angezeigt werden soll?

5voto

Chunky Chunk Punkte 15772
for each (var field:TextField in [initialText, timeText, withdrawlText])
         field.addEventListener(MouseEvent.MOUSE_OVER, mouseOverEventHandler);

function mouseOverEventHandler(evt:MouseEvent):void
{
switch (evt.currentTarget)
       {
       case initialText:      /*initialText specific code*/       break;
       case timeText:         /*timeText specific code*/          break;
       case withdrawalText:   /*withdrawalText specific code*/
       }
}

dies ist ungetestet, aber es sollte funktionieren, solange der Bereich Ihrer Textfeld-Instanzvariablen den MouseOverHandler erreichen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X