AS3停止功能,然后添加回到菜单按钮

问题描述 投票:0回答:1

您好,我是AS3的新用户,我有这个简单的游戏项目,但是我无法返回菜单按钮。有人能帮我吗 ?该项目有3帧,第1帧=标题第2帧=菜单,第3帧=游戏我想在比赛结束时回到第一帧。但是当我使用GotoandStop返回第1帧时,它总是显示错误消息,如:

TypeError:错误#1009:无法访问空对象引用的属性或方法。在next_fla :: MainTimeline / BintangGo()[next_fla.MainTimeline :: frame3:88]

或是否有办法重置所有内容并在第1帧处再次播放?

这是我在第3帧的代码

import flash.events.Event;
game_over.visible=false;
men.visible=false;
var scoree:uint;

tong.addEventListener(Event.ENTER_FRAME,meteorGo)

function meteorGo(ev:Event){
	tong.y+=15
	tong.rotation+=7
	if(tong.y>=810){
		tong.y=0-Math.random()*800
		tong.x=Math.random()*480
	}
	if(tong.hitTestObject(wong)){
		game_over.visible=true;
		men.visible=true;
		wong.x=1600-Math.random()*400
	}
}

import flash.events.Event;

apel.addEventListener(Event.ENTER_FRAME,apelgo)
apel.y=0-Math.random()*800
apel.x=Math.random()*480

function apelgo(ev:Event){
	apel.y+=11
	if(apel.y>=810){
		apel.y=0-Math.random()*800
		apel.x=Math.random()*480
	}
	if(apel.hitTestObject(wong)){
		updateScore5();
		apel.y=0-Math.random()*800
		apel.x=Math.random()*480
	}
}

botol.addEventListener(Event.ENTER_FRAME,botolgo)
botol.y=0-Math.random()*800
botol.x=Math.random()*480
function botolgo(ev:Event){
	botol.y+=12
	if(botol.y>=810){
		botol.y=0-Math.random()*800
		botol.x=Math.random()*480
	}
	if(botol.hitTestObject(wong)){
		updateScore2();
		botol.y=0-Math.random()*800
		botol.x=Math.random()*480
	}
}

bintang.addEventListener(Event.ENTER_FRAME,BintangGo)
bintang.y=0-Math.random()*800
bintang.x=Math.random()*480

function BintangGo(ev:Event){
	bintang.y+=9
	if(bintang.y>=810){
		bintang.y=0-Math.random()*800
		bintang.x=Math.random()*480
		
	}
	if(bintang.hitTestObject(wong)){
		updateScore();
		bintang.y=0-Math.random()*800
		bintang.x=Math.random()*480
	}
}


function init():void
{
	scoree = 0;
	scorecounter.text = scoree.toString();

}


function updateScore5():void
{
	scoree += 5;
     scorecounter.text = scoree.toString();
}

function updateScore2():void
{
	scoree += 2;
     scorecounter.text = scoree.toString();
}

function updateScore():void
{
	scoree += 1;
     scorecounter.text = scoree.toString();
}


bintanga.addEventListener(Event.ENTER_FRAME,BintangGoa)
bintanga.y=0-Math.random()*800
bintanga.x=Math.random()*480

function BintangGoa(ev:Event){
	bintanga.y+=9
	if(bintanga.y>=810){
		bintanga.y=0-Math.random()*800
		bintanga.x=Math.random()*480
		
	}
	if(bintanga.hitTestObject(wong)){
		updateScore();
		bintanga.y=0-Math.random()*800
		bintanga.x=Math.random()*480
	}
}

bintangb.addEventListener(Event.ENTER_FRAME,BintangGob)
bintangb.y=0-Math.random()*800
bintangb.x=Math.random()*480

function BintangGob(ev:Event){
	bintangb.y+=2
	if(bintangb.y>=810){
		bintangb.y=0-Math.random()*800
		bintangb.x=Math.random()*480
		
	}
	if(bintangb.hitTestObject(wong)){
		updateScore();
		bintangb.y=0-Math.random()*800
		bintangb.x=Math.random()*480
	}
}

bintangc.addEventListener(Event.ENTER_FRAME,BintangGoc)
bintangc.y=0-Math.random()*800
bintangc.x=Math.random()*480

function BintangGoc(ev:Event){
	bintangc.y+=9
	if(bintangc.y>=810){
		bintangc.y=0-Math.random()*800
		bintangc.x=Math.random()*480
		
	}
	if(bintangc.hitTestObject(wong)){
		updateScore();
		bintangc.y=0-Math.random()*800
		bintangc.x=Math.random()*480
	}
}
bintangd.addEventListener(Event.ENTER_FRAME,BintangGod)
bintangd.y=0-Math.random()*800
bintangd.x=Math.random()*480

function BintangGod(ev:Event){
	bintang.y+=9
	if(bintangd.y>=810){
		bintangd.y=0-Math.random()*800
		bintangd.x=Math.random()*480
		
	}
	if(bintangd.hitTestObject(wong)){
		updateScore();
		bintangd.y=0-Math.random()*800
		bintangd.x=Math.random()*480
	}
}

mobil.addEventListener(Event.ENTER_FRAME,MobilGO)
mobil.y=-1600-Math.random()*800
mobil.x=Math.random()*480

function MobilGO(ev:Event){
	mobil.y+=20
	if(mobil.y>=810){
		mobil.y=-1600-Math.random()*800
		mobil.x=Math.random()*480
		
	}
	if(mobil.hitTestObject(wong)){
		game_over.visible=true;
		men.visible=true;
		wong.x=1600-Math.random()*400

	}
}




Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;

men.addEventListener(TouchEvent.TOUCH_TAP, m12);

function m12(event:TouchEvent):void
{
	removeEventListener(Event.ENTER_FRAME,MobilGO);
	removeEventListener(Event.ENTER_FRAME,meteorGo);
	removeEventListener(Event.ENTER_FRAME,apelgo);
	removeEventListener(Event.ENTER_FRAME,botolgo);
	removeEventListener(Event.ENTER_FRAME,BintangGoa);
	removeEventListener(Event.ENTER_FRAME,BintangGob);
	removeEventListener(Event.ENTER_FRAME,BintangGoc);
	removeEventListener(Event.ENTER_FRAME,BintangGod);
	removeEventListener(Event.ENTER_FRAME,BintangGo);


	removeChild (tong);
	removeChild (botol);
	removeChild (apel);
	removeChild (bintang);
	removeChild (wong);
	removeChild (bintanga);
	removeChild (bintangb);
	removeChild (bintangc);
	removeChild (bintangd);
	removeChild (mobil);
	gotoAndStop(1);

}

stop();

tyvm,如果你能帮助我的话

actionscript-3
1个回答
0
投票

在主时间轴的第1帧和第2帧上,]首先尝试添加stop();根据提到“第3帧”的错误消息判断,我想它正在尝试转到第3帧,因此尽快显式调用stop()可能会阻止这种情况。

© www.soinside.com 2019 - 2024. All rights reserved.