Hier das tolle Kaefer-Beispiel für den Bug: <code> Welt = function (pIntKaefer) { ASBroadcaster.initialize(this); while (pIntKaefer--) new Kaefer(this, pIntKaefer); } Welt.prototype.amageddon = function () { this.broadcastMessage('onAmageddon'); } Kaefer = function (pObjWelt, pIntId) { this.intId = pIntId; this.objWelt = pObjWelt; this.objWelt.addListener(this); } Kaefer.prototype.onAmageddon = function () { trace(this.intId + ' hat das zeitliche gesegnet'); this.objWelt.removeListener(this); } objWelt = new Welt(10); objWelt.amageddon(); /* Ausgabe: 9 hat das zeitliche gesegnet 7 hat das zeitliche gesegnet 5 hat das zeitliche gesegnet 3 hat das zeitliche gesegnet 1 hat das zeitliche gesegnet */ </code> > > Da der ASBroadcaster sowieso in AS implementiert ist, macht das > > performancetechnich keinen Unterschied. > > Einspruch :o) > > Probiere mal diesen Test hier: > > --- > EventEng = {}; > ASBroadcaster.initialize ( EventEng ); > EventEng.onRender = function () { this.broadcastMessage ( "render" );}; > > // erzeuge eine Hand voll Objekte// > var objs = []; > for ( var i = 0 ; i < 500 ; i++ ) { > var obj = objs[i] = {}; > obj.render = function () { > abc += Math.sqrt ( a += 8 ); // irgentwas eben > } > EventEng.addListener ( obj ); > } > > > ms = getTimer (); > EventEng.onRender (); // 29 ms > /*for ( var o in objs ) { // 49 ms > objs[o].render(); > } > */ > trace ( getTimer() - ms ); > --- > > Der AsBroadcaster führt die Methoden > bei allen Objekten wesentlich schneller aus. > > > aM > http://www.andre-michelle.com > > > ------------------------------------------------------ > Archiv : //www.freelists.org/archives/ascoders/ > Optionen : //www.freelists.org/list/ascoders > ------------------------------------------------------ > > ------------------------------------------------------ Archiv : //www.freelists.org/archives/ascoders/ Optionen : //www.freelists.org/list/ascoders ------------------------------------------------------