ich glaub ich solltes sein lassen ...
hab jetzt:
durchgelesen, hoert sich auch ganz schluessig an, nur will es einfach nicht
Zitat:
|
Wenn deine Klassen DisplayObjecte sind, kannst du beim dispatchen bubbles auf true setzten, dann geht das Event durch die ganze DisplayListe.
|
Genau das will ich
Mein Ansatz auf den letzten Beispiel:
hoerer.as
PHP-Code:
package classes
{
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.display.*;
public class Hoerer extends MovieClip
{
public function Hoerer()
{
}
public function addDispatcher():void
{
addEventListener(Events.STARTE, startByEvent);
}
public function startByEvent(e:Events)
{
trace("startByEvent - Dispatcher: " + e.currentTarget);
}
}
}
main.as //beinhaltet die Klasse Ausloeser
PHP-Code:
package classes
{
//Imports
import flash.display.*;
import flash.events.*;
import flash.events.EventDispatcher;
public class Main extends Sprite
{
public function Main()
{
}
public function erstellen()
{
var meinAusloeser:Ausloeser = new Ausloeser();
this.addChild(meinAusloeser);
meinAusloeser.ausloesen();
}
}
}
ausloeser.as
PHP-Code:
package classes
{
//Imports
import flash.display.*;
import flash.events.*;
import flash.events.EventDispatcher;
public class Ausloeser extends Sprite
{
public function Ausloeser()
{
//Hier soll der Dispatcher für Hoerer abgegeben werden
}
public function ausloesen()
{
dispatchEvent(new Events(Events.STARTE, null));
}
}
}
events.as
PHP-Code:
//subclass semster
package classes
{
// Import der Flash Eventklasse
import flash.events.*;
public class Events extends Event
{
// Eventarten, bekanntes Beispiel: MouseEvent.CLICK
public static const STARTE:String = "STARTE";
// Variable in denen wir zusätzliche Eventdaten speichern können
public var _data:Object;
// Der Konstruktor
public function Events(type:String, data:Object, bubbles:Boolean=true, cancelable:Boolean=false)
{
super(type, bubbles, cancelable);
_data = data;
trace("Konstruktor von Events");
trace("TYPE: " + type);
}
override public function clone():Event
{
return new Events( this.type, this.data, this.bubbles, this.cancelable);
}
public function get data():Object
{
return _data;
}
}
}
main.as
PHP-Code:
import classes.Hoerer;
import classes.Ausloeser;
import classes.Main;
import classes.Events;
import flash.events.*;
import flash.events.EventDispatcher;
var meinHoerer:Hoerer = new Hoerer();
stage.addChild(meinHoerer);
meinHoerer.addDispatcher();
var meinMain:Main = new Main();
stage.addChild(meinMain);
meinMain.erstellen();