Ich habe bereits zwei TLF Textfelder auf meiner Hauptbühne platziert. Im Eigenschafteninspektorfenster gebe ich die Instanznamen: "txt1" und "txt2".Flash benennt automatisch Objekte auf der Bühne "instance #"
Ich versuche, ein einzelnes MouseUp-Ereignis zu haben und herauszufinden, in welchem Textfeld es aufgetreten ist.
Meine Dokumentenklasse hat die folgenden Code:
package {
import flash.display.Sprite;
import flash.events.KeyboardEvent;
public class SingleEvent extends Sprite{
public function SingleEvent() {
// constructor code
root.addEventListener(KeyboardEvent.KEY_UP, textChanged,false,0,true);
}
private function textChanged(e:KeyboardEvent){
trace(e.target.name);
trace(" " + e.target);
switch(e.target){
case txt1:
trace("txt1 is active");
break;
case txt2:
trace("txt2 is active");
break;
default:
break;
}
}
}
}
Beispiel Ausgabe lautet:
instance15
[object Sprite]
instance21
[object Sprite]
Da die Objekte bereits auf der Bühne sind, ich bin nicht sicher, wie Flash, um sie zu erkennen als "txt1" und "txt2" anstelle von "instance #". Ich habe versucht, die .name-Eigenschaft zu setzen, aber es hatte keine Wirkung.
In den Veröffentlichungseinstellungen habe ich "Instanzen Instanzen automatisch deklarieren" aktiviert.
Ist es auch möglich, ein einzelnes Änderungsereignis für mehrere Schiebereglerkomponenten zu haben? Im Folgenden wird nie ausgelöst:
root.addEventListener(SliderEvent.CHANGE, sliderChanged,false,0,true);
Vielen Dank für alle Tipps
Welche Version von Flash verwenden Sie? Nicht, dass es wichtig wäre, aber Ihr Code funktioniert vollkommen in Ordnung für mich. – sberry
Ahhh ... Ich nehme es zurück. Ich sehe, Sie verwenden CS5, hat den TLF-Faktor in Ihrer Frage nicht bemerkt. Wenn ich von Dynamic zu TLF wechsele, bekomme ich das gleiche Verhalten wie du. – sberry
Yep CS5. Das ist seltsam, es funktioniert für den dynamischen Text. Ich muss mich vielleicht ändern und diese Art von Text verwenden. Allerdings habe ich TLF verwendet, weil es schärfer aussieht. – meowMIX3R