<button id="ptu4h"><acronym id="ptu4h"><input id="ptu4h"></input></acronym></button>

<tbody id="ptu4h"></tbody>

    <dd id="ptu4h"><center id="ptu4h"></center></dd><dd id="ptu4h"></dd><dd id="ptu4h"><track id="ptu4h"><video id="ptu4h"></video></track></dd>
  • 16素材
    您現在的位置:首頁 > 教程中心 > Flash教程

    SWF間的雙向通信

     假設有一個主 SWf 名為 main.swf 加載一個名為 game.swf 的游戲模塊:
    1. main 里面使用 Loader 將 game.swf 加載進來;
    2. 在 game 中定義 public function moveBall(speed:Number) 方法,用于開始游戲;
    3. 在 main 里面使用類似 loader["content"].moveBall(speed) 的語句調用 game.swf 里面的方法;
    4. game.swf 與 main.swf 通信的方法,可以使用 dispatchEvent 方法與 main.swf 通信,也可以繼續使用上述方法。

    下面請看示例:
    1. 首先創建被調用的 game.swf:
    package {
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.system.Security;

        public class Game extends Sprite {
            private var ball:Sprite;
            private var speed:Number;
           
            public function Game() {
                // 在 Flash IDE 中執行 Debug
                Security.allowInsecureDomain("*");
               
                if (stage) init();
                else addEventListener(Event.ADDED_TO_STAGE, init);
            }
           
            private function init(e:Event = null):void {
                removeEventListener(Event.ADDED_TO_STAGE, init);
                ball = new Sprite();
                ball.graphics.beginFill(0xFF0000);
                ball.graphics.drawCircle(0, 0, 50);
                ball.graphics.endFill();
                addChild(ball);
                ball.x = 50;
                ball.y = stage.stageHeight / 2;
            }
           
            public function moveBall(speed:Number):void {
                this.speed = speed;
                addEventListener(Event.ENTER_FRAME, onGameLoop);
            }
           
            private function onGameLoop(e:Event):void {
                ball.x += speed;
            }
           
            public function stopMove():void {
                removeEventListener(Event.ENTER_FRAME, onGameLoop);
            }
        }
    }
    在這個類里創建了一個小球實例 ball,還提供了兩個公開的方法 moveBall(speed) 和 stopMove(),用于控制小球的運動與停止。最后,編譯該文件將生成好的 game.swf 放到應用服務器的根目錄上(http://localhost/game.swf)。

    2. 下面創建主程序,調用 game.swf 并與其通信
    package {
        import flash.display.Loader;
    關鍵詞: SWF

    相關素材

    聯系客服 加入QQ群
    素材中国