0

ここにこの問題があります:

jeu.swfという別の SWF をロードするApplication.swfというSWF があります。 私のメインクラス (呼び方がわからない笑) はMain.asと呼ばれます。別のクラスはactionObjets.asと呼ばれます

私が呼び出すと:(dispatchEvent(new MicroJeuEvent(MicroJeuEvent.JEU_TERMINE, 8, ""));先生から提供されたもの)、Main.asから完全に機能します。完全に機能します。

しかし、actionObjets から呼び出すと機能しません。エラーもありません。

この行を静的関数に入れてみましたが、どちらも機能しません。

別のクラスからではなく、メイン クラスから Event をディスパッチできるのはなぜですか? 私はプログラマーではなく、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

次のようにクラスを設定してみてください。

メインクラスでは...

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

それはうまくいくはずです。

于 2011-01-14T04:35:31.623 に答える