到目前为止,我尝试了许多代码暂停并玩游戏,但是没有多少代码工作。
我在舞台上有一个移动的物体,我也有定时器动态文字。
我需要暂停工作并在我的项目中播放代码。
我的移动物体示例
/*Fish 3 move*/
var balik3x:Number=7;
var balik3y:Number=Math.random()*15
stage.addEventListener(Event.ENTER_FRAME,h3);
function h3(oly:Event) {
balik3.x+=balik3x;
balik3.y+=balik3y;
if ((balik3.x>=stage.stageWidth-balik3.width/2)|| (balik3.x <= balik3.width/2 )) {
balik3x*=-12;
}
if ((balik3.y>=stage.stageHeight-balik3.height/2)|| (balik3.y <= balik3.height/2 )) {
balik3y*=-1;
}
}
balik3.mouseEnabled = false;
我的计时器代码
更新:@ www0z0k你的意思是这样的。定时器暂停和鼠标悬停不再存在。但是当我点击播放按钮时,计时器没有恢复。
time.text="0:10";
var dispSecs=09;
var dispMins=0;
var timerInterval=setInterval(countDown,1000);
var control:Timer = new Timer(1000,0)
control.addEventListener(TimerEvent.TIMER, keko)
control.start();
function keko (evt:Event):void{
if(dispMins <1 && dispSecs <1 )
{
timeisup.visible = true;
timeisup.play();
}
}
function countDown()
{
dispSecs--;
if (dispMins == 0 && dispSecs == 0)
{
clearInterval(timerInterval);
}
else if (dispSecs == 0)
{
dispSecs = 59;
if (dispMins > 0)
{
dispMins--;
}
}
time.text = prependZero(dispMins) + ":" + prependZero(dispSecs);
}
function prependZero(num)
{
if(num<10)
{
num=""+num;
}
return(num);
}
我试过的最后一个代码。但它并不完全正常。修订版
play1.addEventListener(MouseEvent.CLICK, resumeGame);
function resumeGame(event:MouseEvent):void{
addEventListener(TimerEvent.TIMER, keko);
stage.frameRate = 30;
}
pause1.addEventListener(MouseEvent.CLICK, pauseGame);
function pauseGame(event:MouseEvent):void{
stage.removeEventListener(TimerEvent.TIMER, keko);
clearInterval(timerInterval);
stage.frameRate = 0.01;
}
答案 0 :(得分:2)
不是特定于您的代码,但您会明白
private function togglePause():void{
// check if the event listener exists
if (!stage.hasEventListener(Event.ENTER_FRAME)){
// add it if it doesn't
stage.addEventListener(Event.ENTER_FRAME, tick);
} else {
// remove it if it does
stage.removeEventListener(Event.ENTER_FRAME, tick);
}
}
答案 1 :(得分:1)
我认为可能存在一个小错误,您已将事件侦听器添加到stage
并尝试从play1.addEventListener(MouseEvent.CLICK, resumeGame);
function resumeGame(event:MouseEvent):void{
addEventListener(TimerEvent.TIMER, keko);
stage.frameRate = 30;
}
pause1.addEventListener(MouseEvent.CLICK, pauseGame);
function pauseGame(event:MouseEvent):void{
stage.removeEventListener(TimerEvent.TIMER, keko);
clearInterval(timerInterval);
stage.frameRate = 0.01;
}
中删除事件侦听器。尝试此代码,如果这不起作用,请告诉我,我将为您提供另一种解决方案
{{1}}