dispatchEvent在辅助类中不起作用

时间:2011-01-14 01:57:16

标签: actionscript-3 dispatchevent

我这里有这个问题:

我有一个名为 Application.swf 的SWF,它加载另一个名为 jeu.swf 的SWF。
我的主要课程(不知道如何称之为哈哈)被称为 Main.as 。 另一个类叫做 actionObjets.as

当我致电:dispatchEvent(new MicroJeuEvent(MicroJeuEvent.JEU_TERMINE, 8, ""));(由我的老师提供)时,它完美地从Main.as开始,它完美无缺。

但是当我从actionObjets调用它时,它不起作用。也没有错误。

我尝试将此行放在静态函数中,也不起作用。

为什么我可以从我的主课派遣一个事件,而不是从另一个派遣?我不是程序员,我只是没有得到as3的一些基本原则。有没有办法做不同的事情?是这样,我不好,我需要知道该怎么做!哈哈。 THX!

/*--Finir Jeu--*/
        public function finirJeuFonction(methode, points):void{
            var faceDeGagner:Array = new Array("Vous êtes mort","Vous avez sauté par la fenêtre","Vous avez éteind le feux","Vous avez tiré votre soeur déguisée en zombie","Votre soeur aime se déguiser en zombie","Vous avez exterminé l'homme louche");

            switch(monterJeu._Difficulte){
                case 0:
                    _creationObjet.fenetreMobilier.parent.removeChild(_creationObjet.fenetreMobilier);
                    _creationObjet.armoireMobilier.parent.removeChild(_creationObjet.armoireMobilier);
                    break;
                case 1:
                    _creationObjet.zombieMobilier.parent.removeChild(_creationObjet.zombieMobilier);
                    _creationObjet.litMobilier.parent.removeChild(_creationObjet.litMobilier);
                    _creationObjet.tablePCMobilier.parent.removeChild(_creationObjet.tablePCMobilier);
                    _creationObjet.coffreMobilier.parent.removeChild(_creationObjet.coffreMobilier);
                    break;
                case 2:
                    _creationObjet.armoireCoteMobilier.parent.removeChild(_creationObjet.armoireCoteMobilier);
                    _creationObjet.litMobilier.parent.removeChild(_creationObjet.litMobilier);
                    _creationObjet.hommeMobilier.parent.removeChild(_creationObjet.hommeMobilier);
                    _creationObjet.C4Mobilier.parent.removeChild(_creationObjet.C4Mobilier);
                    _creationObjet.boutonC4Mobilier.parent.removeChild(_creationObjet.boutonC4Mobilier);
                    break;
            }
            _creationObjet._creationBackground.getBackgroundStage.parent.removeChild(_creationObjet._creationBackground.getBackgroundStage);
            //Chronometre.horloge.stop();

            _creationObjet.messageFinMC.visible = true;
            _creationObjet.messageFinMC.nbrePointsTxt.text = points;
            _creationObjet.messageFinMC.messageFinTxt.text = faceDeGagner[methode];

            dispatchEvent(new MicroJeuEvent(MicroJeuEvent.JEU_TERMINE, 8, ""));
        }

1 个答案:

答案 0 :(得分:0)

尝试并设置类似于以下内容的类:

在主班......

package 
{
    import com.ActionObjets;
    import flash.display.Sprite;
    import flash.events.Event;

    public class Main extends Sprite
    {
        public function Main()
        {
            init();
        }

        private function init():void
        {
            var actionObjets:ActionObjets = new ActionObjets();
            actionObjets.addEventListener(Event.COMPLETE, completeHandler);
            actionObjets.finirJeuFonction(); 

        }// end function

        private function completeHandler(e:Event):void
        {
            trace("complete");

        }// end function

    }// end class

}// end package

并在ActionObjets类中:

package com
{
    import flash.events.EventDispatcher;
    import flash.events.Event;

    public class ActionObjets extends EventDispatcher
    {
        public function ActionObjets() {} // end function

        public function finirJeuFonction():void 
        {
            dispatchEvent(new Event(Event.COMPLETE, true));

        }// end function

    }// end class

}// end package

应该有用。