如何通过单击按钮重新启动SWF?

时间:2014-12-16 10:59:31

标签: actionscript-3 flash

我创建了一个拖放迷你游戏,一旦完成,我希望用户能够点击“再试一次”按钮,让整个事情重新开始。 我已经读过这篇文章,看到有几个选项,但我觉得哪个最适合我。 我创建了一个FLA,其中包含我的所有库项目,一个AS文件( MainGame.as ),主游戏和一个类中的所有函数以及第二个AS文件( MyGame。 as )调用类文件来玩游戏。

哪种方式最适合我? 我在图层上什么都没有,只是无法弄清楚如何删除swf并再次点击按钮加载它。 我是否认为我会将按钮添加到timerDone函数中的 MyGame 文件中? 如果是这样,我将如何使用它从一开始就重新加载SWF?

这是我的timerDone功能......

function timerDone(e:TimerEvent=null):void
            {                           
                if (countDown == 0)
                {
                    count = 0;
                    finalScore = score;
                }
                else
                {                   
                    count = (30) - (myTimer.currentCount);
                    finalScore = (count * 10) + (score);

                }
                myText.text = "GAME OVER!";
                myText.x = 195;
                displayText();                          
                myText2.text = "Your score = " + (finalScore);
                displayText2();
            }

我想我在最后一行之后添加按钮并以某种方式刷新SWF,是吗? 或者我离开了?

1 个答案:

答案 0 :(得分:0)

你应该这样做:你在函数timerDone结束时调用函数toReplay:

函数timerDone,在“displayText2();”

之后
tryAgain.addEventListener(MouseEvent.CLICK, toReplay);

在函数timerDone之外

/**
 * The function toReplay calls the function init which 
 * initializes the Timer and all your variables.
 **/
function toReplay(e:MouseEvent):void {
    e.target.removeEventListener(MouseEvent.CLICK, toReplay);
    init();
}

function init():void {
    // Timer
    count = 0;
    finalScore = 0;
    myText.text = "";
    // etc.
}

可以直接调用函数init来在游戏开始时初始化所有变量:

init();