您好,我是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,如果你能帮助我的话
在主时间轴的第1帧和第2帧上,]首先尝试添加stop();
。 根据提到“第3帧”的错误消息判断,我想它正在尝试转到第3帧,因此尽快显式调用stop()
可能会阻止这种情况。