Kene egy kis segitseg...
Mar irtam egy kis demot is magamnak, mert nagy projectben nem mukodott a sajat esemenyfigyelo irasa... A lenyeg:
Van egy Flash, amiben as3-at hasznalok...
Az fla-ban be van alitva kezdeti objektumnak a megfelelo objektum jelen esetben a myEventDispatcher.Figyelo ...
Ami el akarok erni, hogy itt amikor rakattintok a kis myBlock nevu MovieClip-re, akkor megjelenjen, hogy megszolalt... Ez elegge el van vonatkoztatva a celtol, mert az meg egy Galeria lesz =) de nekem ott is mar az esemeny elfogasakor vegrehajtodo fuggveny nem hivodik meg...3 file-bol all...
1 .fla, ami egy blank feher semmi...
2 .as, amiben a 2 object van...
Minden mukodik, tehat a benne talalhato MouseEvent.CLICK is mukodik a trace kidobja, meg minden lefut, csak epp a sajat esemenyemet nem tudom elkapni... Hol lhet a gond vele...
A "dispatchEvent" es az "addEventListener" fuggyvenyeket probaltam ugy is, hogy ele irom, hogy "this.", tehat "this.dispatchEvent" es "this.addEventListener"
Figyelo.as:
package myEventDispatcher {
import flash.events.*;
import flash.display.Sprite;
public class Figyelo extends Sprite {
public function Figyelo() {
var obj:Figyelt = new Figyelt();
addChild(obj.block);
trace("addEventListener elott");
addEventListener(Figyelt.DO_SOUND, this.zajFigyelo);
trace("addEventListener utan");
}
private function zajFigyelo(e:Event) {
trace('Megszolalt');
}
}
}
Figyelt.as:
package myEventDispatcher {
import flash.events.*;
public class Figyelt extends EventDispatcher {
public static const DO_SOUND:String = "DO_SOUND";
public var block:myBlock;
public function Figyelt() {
this.block = new myBlock();
this.block.addEventListener(MouseEvent.CLICK, onClick);
}
private function onClick(e:Event) {
trace("dispatchEvent elott");
dispatchEvent(new Event(Figyelt.DO_SOUND, true));
trace("dispatchEvent utan");
}
}
}
DebugOutput [trace kimenetek]:
addEventListener elott
addEventListener utan
Amikor rakattintok a myBlock-ra, akkor meg hozzajon ez:
dispatchEvent elott
dispatchEvent utan
Elore is koszi a segitseget =)
- 1003 megtekintés
Hozzászólások
megoldva...
addEventListener(Figyelt.DO_SOUND, this.zajFigyelo);
replace by
obj.addEventListener(Figyelt.DO_SOUND, this.zajFigyelo);
--
by lightgod
- A hozzászóláshoz be kell jelentkezni