Actionscript 3 在“a”中收到ActionScript3上的类型错误代码“1009”;重播游戏“;功能,如何解决这个错误?
我是一名大学生,目前正在自己完成一项作业,在Animate CC上使用ActionScript 3为Android创建一款Flash游戏 我是ActionScript3的初学者,我发现自己被困在我正在创建的游戏的最后一部分 在游戏的“游戏结束”屏幕上,我有一个按钮,允许用户再次玩游戏(重新启动游戏),这就是问题发生的地方。当再次播放按钮被按下,比赛开始时,一切都冻结了,但是计分系统正在运行 我想做的是,当用户按下“再次播放”按钮时,它会将他/她带到屏幕上,让您选择难度,只需再次播放游戏即可 这是我的游戏工作原理的结构:Actionscript 3 在“a”中收到ActionScript3上的类型错误代码“1009”;重播游戏“;功能,如何解决这个错误?,actionscript-3,flash,Actionscript 3,Flash,我是一名大学生,目前正在自己完成一项作业,在Animate CC上使用ActionScript 3为Android创建一款Flash游戏 我是ActionScript3的初学者,我发现自己被困在我正在创建的游戏的最后一部分 在游戏的“游戏结束”屏幕上,我有一个按钮,允许用户再次玩游戏(重新启动游戏),这就是问题发生的地方。当再次播放按钮被按下,比赛开始时,一切都冻结了,但是计分系统正在运行 我想做的是,当用户按下“再次播放”按钮时,它会将他/她带到屏幕上,让您选择难度,只需再次播放游戏即可 这是
- 介绍屏幕(播放按钮和说明按钮)
- 按播放按钮-->选择关卡屏幕
- 选择水平屏幕(容易或难)
- 如果你按easy或hard,它将进入相应难度的游戏屏幕
- 一旦你输了,它就会把你带到屏幕上的游戏
- 屏幕上的游戏有再次玩的选项
//Option button to let the user play Game again
playAgainButton.addEventListener(MouseEvent.MOUSE_UP, restartGame);
function restartGame(evt:MouseEvent)
{
playAgainButton.removeEventListener(MouseEvent.MOUSE_UP, restartGame);
gotoAndPlay(1,"Choose Level");
----------------------------
//The code used in the Choose Level Screen looks like this
stop();
easyButton.addEventListener(MouseEvent.MOUSE_UP, startGameInEasyMode);
function startGameInEasyMode(evt:MouseEvent)
{
gotoAndPlay(1,"GameEasy");
easyButton.removeEventListener(MouseEvent.MOUSE_UP, startGameInEasyMode);
}
hardButton.addEventListener(MouseEvent.MOUSE_UP, startGameInHardMode);
function startGameInHardMode(evt:MouseEvent)
{
gotoAndPlay(1, "GameHard");
hardButton.removeEventListener(MouseEvent.MOUSE_UP, startGameInHardMode);
}
DifficultiesBackButton.addEventListener(MouseEvent.MOUSE_UP, returnToHome);
function returnToHome(evt:MouseEvent)
{
gotoAndPlay(1,"Intro");
DifficultiesBackButton.removeEventListener(MouseEvent.MOUSE_UP, returnToHome);
}
-------------------------------------
//GAME EASY
stop();
import flash.events.Event;
var myStartTime = getTimer();
var bottomEdge = 0;
var topEdge = 800;
var leftEdge = 0;
var rightEdge = 480;
var SantaMCSpeed = 0.7;
addEventListener(Event.ENTER_FRAME,moveSantaMCTowardMouse);
function moveSantaMCTowardMouse(e:Event)
{
var angleInRad = Math.atan2((mouseY-SantaMC.y),(mouseX-SantaMC.x));
SantaMC.rotation = (90 + angleInRad * 180/Math.PI);
var distanceX = SantaMC.x - mouseX;
var distanceY = SantaMC.y - mouseY;
SantaMC.x -= (distanceX / 5) * SantaMCSpeed;
SantaMC.y -= (distanceY / 5) * SantaMCSpeed;
}
// defining SnowCannonMC1
SnowCannonMC1.x = 50;
SnowCannonMC1.y = 800;
SnowCannonMC1.pointing = "up";
SnowCannonMC1.increment = 7;
//moving Cannon 1
addEventListener(Event.ENTER_FRAME, moveSnowCannonMC1);
function moveSnowCannonMC1(evt:Event)
{
if (SnowCannonMC1.x < leftEdge)
{
SnowCannonMC1.pointing = "right";
}
if (SnowCannonMC1.x > rightEdge)
{
SnowCannonMC1.pointing = "left";
}
if (SnowCannonMC1.pointing == "right")
{
SnowCannonMC1.x += SnowCannonMC1.increment;
}
else
{
SnowCannonMC1.x -= SnowCannonMC1.increment;
}
}
//making the Snow Cannons shoot at random
var SnowCannonShootRate = 65;
var snowBallMCCount = 0;
var shootingSound = new cannonShotSound();
addEventListener(Event.ENTER_FRAME, shootSnowballCannon);
function shootSnowballCannon(evt:Event)
{
var SnowCannonMC1ShootValue = Math.ceil(Math.random() * SnowCannonShootRate);
if (SnowCannonMC1ShootValue <= 1)
{
shoot(SnowCannonMC1);
}
}
function shoot(aSnowBall)
{
shootingSound.play();
snowBallMCCount++;
var newSnowBallMC = root["snowBallMC" + snowBallMCCount]=this.addChild(new Snowball());
newSnowBallMC.width = 19;
newSnowBallMC.height = 19;
newSnowBallMC.rotation = aSnowBall.rotation;
newSnowBallMC.x = aSnowBall.x;
newSnowBallMC.y = aSnowBall.y;
}
//moving snowBallMCs
var score;
var finalScore;
addEventListener(Event.ENTER_FRAME, moveSnowBallMC);
function moveSnowBallMC(evt:Event) {
score = getTimer() - myStartTime;
timeBoxEasy.text = String(Math.ceil((score)/1000));
var speed:Number = 0.70;
for (var i=1; i<=snowBallMCCount; i++) {
var snowBall = root["snowBallMC"+i];
if(snowBall.rotation == 0)
{
snowBall.y += -10 * speed;
}
else
{
snowBall.x += 10 * speed;
}
if(snowBall.hitTestObject(SantaMC))
{
//var SantaShotDeadSound = new objectShotDeadSound();
//SantaShotDeadSound.play();
removeEventListener(Event.ENTER_FRAME,moveSantaMCTowardMouse);
removeEventListener(Event.ENTER_FRAME, moveSnowCannonMC1);
removeEventListener(Event.ENTER_FRAME, shootSnowballCannon);
removeEventListener(Event.ENTER_FRAME, moveSnowBallMC);
finalScore= score;
gotoAndPlay(1,"Game Over")
break;
}
}
}
// adding the scores to the highscores table
var scoreTable = SharedObject.getLocal("data");
if((scoreTable.data.nameArray==undefined)||(scoreTable.data.scoreArray==undefined)){
scoreTable.data.nameArray = new Array();
scoreTable.data.scoreArray = new Array();
}
function displayScoreTable() {
sortScores();
var temp ="LEADERBOARD \n";
var nameArray = scoreTable.data.nameArray;
var scoreArray = scoreTable.data.scoreArray;
for (var nameCount = 0; nameCount < nameArray.length; nameCount++) {
temp += nameArray[nameCount] + " ----- " + String(Math.ceil((scoreArray[nameCount])/1000)) +"\n";
}
scoreTableBox.text = temp;
}
function sortScores(){
var nameArray = scoreTable.data.nameArray;
var scoreArray = scoreTable.data.scoreArray;
var len = nameArray.length;
var tempName;
var tempScore;
for (var count1=0; count1 < len - 1; count1++){
for (var count2=count1+1; count2 < len; count2++){
if(scoreArray[count1]<scoreArray[count2]){
tempName=nameArray[count1];
nameArray[count1]=nameArray[count2];
nameArray[count2]=tempName;
tempScore=scoreArray[count1];
scoreArray[count1]=scoreArray[count2];
scoreArray[count2]=tempScore;
}
}
}
}
//让用户再次玩游戏的选项按钮
playAgainButton.addEventListener(MouseEvent.MOUSE_UP,restartGame);
函数重启游戏(evt:MouseeEvent)
{
playAgainButton.removeEventListener(MouseEvent.MOUSE_UP,restartGame);
gotoAndPlay(1,“选择关卡”);
----------------------------
//选择级别屏幕中使用的代码如下所示
停止();
easyButton.addEventListener(MouseEvent.MOUSE_UP,startGameInEasyMode);
功能启动MeineAsymode(evt:MouseeEvent)
{
gotoAndPlay(1,“游戏简单”);
easyButton.removeEventListener(MouseEvent.MOUSE_UP,startGameInEasyMode);
}
硬按钮。addEventListener(MouseEvent.MOUSE_UP,startGaminHardMode);
功能启动手动模式(evt:MouseeEvent)
{
gotoAndPlay(1,“游戏硬”);
硬按钮。移除EventListener(MouseEvent.MOUSE_UP,startGameInHardMode);
}
困难BackButton.addEventListener(MouseEvent.MOUSE_UP,returnToHome);
返回主页功能(evt:MouseeEvent)
{
gotoAndPlay(1,“简介”);
困难BackButton.removeEventListener(MouseEvent.MOUSE_UP,returnToHome);
}
-------------------------------------
//轻松一点
停止();
导入flash.events.Event;
var myStartTime=getTimer();
var bottomEdge=0;
var topEdge=800;
var leftEdge=0;
var rightEdge=480;
var SantaMCSpeed=0.7;
addEventListener(事件。输入_帧,移动AmcToward鼠标);
函数MovesAndAmcTowardMouse(e:事件)
{
var angleInRad=数学atan2((mouseY-SantaMC.y),(mouseX-SantaMC.x));
SantaMC.rotation=(90+角度拉德*180/数学π);
var distanceX=SantaMC.x-鼠标;
var distanceY=SantaMC.y-鼠标;
SantaMC.x-=(距离x/5)*SantamcPeed;
SantaMC.y-=(距离y/5)*SantaMCSpeed;
}
//定义雪炮C1
雪罐MC1.x=50;
雪罐MC1.y=800;
SnowCannonMC1.pointing=“向上”;
雪罐MC1.增量=7;
//移动加农炮1
addEventListener(Event.ENTER_FRAME,moveSnowCannonMC1);
函数moveSnowCannonMC1(evt:Event)
{
如果(SnowCannonMC1.xrightEdge)
{
SnowCannonMC1.pointing=“左”;
}
如果(SnowCannonMC1.pointing==“right”)
{
SnowCannonMC1.x+=SnowCannonMC1.x增量;
}
其他的
{
SnowCannonMC1.x-=SnowCannonMC1.increment;
}
}
//让雪炮随意射击
var SnowCannonShootRate=65;
var SnowballmCount=0;
var shootingSound=新的cannonShotSound();
addEventListener(Event.ENTER_FRAME,shootsnowballconnon);
功能射击雪球炮(evt:事件)
{
var SnowCannonMC1ShootValue=Math.ceil(Math.random()*SnowCannonShootRate);
如果(SnowCannonMC1 ShootValue你有没有试着寻找#1009的一般含义?P.S.文件>发布设置>允许调试将让你知道产生错误的确切行。嗯,我已经尝试在Animate CC上调试该应用程序。它向我显示了显示错误的行,显然它是一个导航按钮,让你可以选择游戏难度。在你想重放游戏之前,它可以正常工作,这是我不理解的。如果你能告诉我问题可能在哪里,请告诉我一些想法。谢谢你回复我!当你在SantaMC.x-mouseX;
中使用鼠标时,你的意思是stage.mouseY
,还是你已经做了您自己的var mouseY
定义没有在上述代码中显示?同时,在主时间轴上不断移动也是最糟糕的编码方式。如果您在第1帧上创建变量(var num:int=10
),则告诉stagegotoAndStop(20)