Mam następujący kod do wygenerowania nowego klipu filmowego z eksplozją. Niestety, zdarzenie GameEvent.EXPLOSION_FINISHED nigdy nie jest wyzwalane. Czy dla każdej klatki istnieje specjalny odbiornik zdarzeń?
var exp:Explosion = new Explosion();
exp.addFrameScript(exp.totalFrames - 1, function():void {exp.stop();dispatchEvent( new GameEvent( GameEvent.EXPLOSION_FINISHED));});
exp.addEventListener(GameEvent.EXPLOSION_FINISHED, tidyUp, false, 0, true);
1
Jan
29 sierpień 2012, 18:51
2 odpowiedzi
Najlepsza odpowiedź
Myślę, że twój problem polega na tym, że nie wywołujesz zdarzenia w obiekcie exp, ale w obiekcie, w którym znajduje się twój fragment kodu. Spróbuj tego:
exp.addFrameScript(exp.totalFrames - 1, function():void {exp.stop();exp.dispatchEvent( new GameEvent( GameEvent.EXPLOSION_FINISHED));});
1
BadFeelingAboutThis
29 sierpień 2012, 20:34
stage.addEventListener(GameEvent.EXPLOSION_FINISHED,tidyUp);
...
function tidyUp(e:Event):void {
var s:Object=e.target;
if (s is Explosion) {
var expl:Explosion=s as Explosion;
// process your "expl" Explosion object here
}
}
Powinieneś zrobić.
0
Vesper
29 sierpień 2012, 19:04
Podobne pytania
Nowe pytania
actionscript-3
ActionScript 3 (AS3) to język programowania obiektowego (OOP) typu open source na platformach Adobe Flash i AIR. AS3 jest szeroko stosowany w aplikacjach RIA, aplikacjach mobilnych i aplikacjach komputerowych. (ActionScript 3 to dialekt języka ECMAScript).