0

我这里有这个问题:

我有一个名为Application.swf的 SWF ,它加载另一个名为jeu.swf的 SWF 。
我的主班(不知道怎么称呼它哈哈),叫做Main.as。另一个类称为actionObjets.as

当我打电话时:(dispatchEvent(new MicroJeuEvent(MicroJeuEvent.JEU_TERMINE, 8, ""));由我的老师提供),它从 Main.as 完美运行,它完美运行。

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

我试着把这条线放在一个静态函数中,也不起作用。

为什么我可以从我的主类而不是另一个类中分派一个事件?我不是程序员,我只是不了解 as3 的一些基本原理。有没有不同的方法?是这样,我不好,我需要知道该怎么做!哈哈。谢谢!

/*--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, ""));
        }
4

1 回答 1

0

Try and setup your classes similar to the following:

In the Main class...

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

and in the ActionObjets Class:

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

that should work.

于 2011-01-14T04:35:31.623 回答