• Blackberry DevCon – Register Now!
Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-03-2009, 12:08   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2008
Beiträge: 24
event.sender() ? Welches Objekt wirft Event

Hallo Forum,

ich habe eine kurze Frage, wenn ich mehreren Objekten einen Event werfen lasse auf eine Funktion, woher weiss ich dann welches Objekt den Event gesendet hat?

ich suche also sowas wie folgt:

ActionScript:
  1. function doSomething(event:Event):void {
  2.    trace("Sender: "+event.sender());
  3. }

Das ganze brauche ich wenn ich zum Beispiel viele Bilder in ein Array lade und wissen möchte wenn alle fertig geladen sind... Oder habt ihr dafür eine bessere Lösung... Vielleicht seh ich auch den Wald vor lauter Bäumen nicht :-)


Gruß Mika
mika81 ist offline   Mit Zitat antworten
Alt 10-03-2009, 12:11   #2 (permalink)
Neuer User
 
Benutzerbild von padavan
 
Registriert seit: Apr 2002
Beiträge: 493
check mal event.target und currenttarget
__________________
Grafik - Webdesign - Programmierung - www.thsc.at
Adventkalender 2011 advent.wien.info/de
Jobspace - Universum der Lehrstellen www.jobspace.at
padavan ist offline   Mit Zitat antworten
Alt 10-03-2009, 12:19   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2008
Beiträge: 24
event.target gibt mir [object SimpleButton] zurück in meinem kurzen Test, ging darum das ich einen Button gemacht habe und abhängig vom Button eine bestimmte Datei laden will...

Hier mal mein Beispiel:
ActionScript:
  1. // Buttonlistener um die Levels zu starten
  2. winter.addEventListener(MouseEvent.CLICK, startBreakOutLvl1);
  3. universe.addEventListener(MouseEvent.CLICK, startBreakOutLvl2);
  4.  
  5. // Spiel initialisieren
  6. function startBreakOutLvl1(e:Event) {
  7.     trace (e.target);
  8.     //var spiel:Game = new Game(stage.stageHeight, stage.stageWidth);
  9.     //stage.addChild(spiel);
  10.     //spiel.prepareLevel("./levels/winter.xml");
  11.     //Mouse.hide();
  12. }
  13.  
  14. function startBreakOutLvl2(e:Event) {
  15.     var spiel:Game = new Game(stage.stageHeight, stage.stageWidth);
  16.     stage.addChild(spiel);
  17.     spiel.prepareLevel("./levels/universe.xml");
  18.     Mouse.hide();
  19. }


Edit:
e.target.name das scheint mir das zurückzugeben was ich möchte... oder?

Geändert von mika81 (10-03-2009 um 12:21 Uhr) Grund: lösung gefunden!?!
mika81 ist offline   Mit Zitat antworten
Alt 10-03-2009, 12:30   #4 (permalink)
Neuer User
 
Benutzerbild von padavan
 
Registriert seit: Apr 2002
Beiträge: 493
ja - ich denke auch dass target.name ist wonach du suchst

du kannst auf alle eigenschaften deines Zielknotens zugreifen...
__________________
Grafik - Webdesign - Programmierung - www.thsc.at
Adventkalender 2011 advent.wien.info/de
Jobspace - Universum der Lehrstellen www.jobspace.at
padavan ist offline   Mit Zitat antworten
Alt 10-03-2009, 12:35   #5 (permalink)
Neuer User
 
Registriert seit: Dec 2008
Beiträge: 24
hab gedacht das es eher sowas wie .sender oder .source ist was ich suche aber target scheint dann ja der auslöser zu sein...

p.s.: sehr gute webseite !


mal als weitere frage... ich programmiere ein breakout spiel. darin instanziere ich klassen. da ich jetzt nochmal das ganze überdacht habe und den sinn von events besser verstehe wollte ich das neu aufbauen. ich habe jetzt für ein problem mal 3 klassen angenommen.

class Game -> Das Spiel und die Sachen die es enthält (die spielsteine, das spielbrett unten und den Ball...)
class SteineListe -> Soll eine Liste werden die alle Spielsteine enthält
class Spielstein -> Klasse für einen einzigen Spielstein

jeder Spielstein soll ein Hintergrundbild laden, wann weiss ich in der klasse game das die liste fertig geladen ist um die Steine zu positionieren?

Geändert von mika81 (10-03-2009 um 12:42 Uhr) Grund: weitere frage
mika81 ist offline   Mit Zitat antworten
Alt 10-03-2009, 12:53   #6 (permalink)
Neuer User
 
Benutzerbild von padavan
 
Registriert seit: Apr 2002
Beiträge: 493
danke fürs kompliment

zur klassenfrage - ganz ehrlich bin da kein spezialist aber wenn ich nicht irre müsstest du ein customevent kreieren und dispatchen und dann in der entsprechenden klasse anfangen

klingt vielleicht kompliziert is aber nicht so schlimm
suche einfach nach customevent / bubbling

edit: und deine klasse muss von EventDispatcher erben - wenn du z.b von MovieClip erbst is sowieso schon drin
__________________
Grafik - Webdesign - Programmierung - www.thsc.at
Adventkalender 2011 advent.wien.info/de
Jobspace - Universum der Lehrstellen www.jobspace.at

Geändert von padavan (10-03-2009 um 12:57 Uhr)
padavan ist offline   Mit Zitat antworten
Alt 10-03-2009, 13:01   #7 (permalink)
Neuer User
 
Registriert seit: Dec 2008
Beiträge: 24
alles klar danke! ich glaub ich weiss auch schon was du meinst / bzw wie man das machen soll... aber danke ersteinmal!
mika81 ist offline   Mit Zitat antworten
Alt 10-03-2009, 15:08   #8 (permalink)
Neuer User
 
Registriert seit: Dec 2008
Beiträge: 24
Eine Frage zu den Events habe ich noch. Bitte seid so freundlich und guckt mal in den Thread hier auf die 2te Seite...

http://www.flashforum.de/forum/showt...67#post1842067
mika81 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 06:20 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele