Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 在“a”中收到ActionScript3上的类型错误代码“1009”;重播游戏“;功能,如何解决这个错误?_Actionscript 3_Flash - Fatal编程技术网

Actionscript 3 在“a”中收到ActionScript3上的类型错误代码“1009”;重播游戏“;功能,如何解决这个错误?

Actionscript 3 在“a”中收到ActionScript3上的类型错误代码“1009”;重播游戏“;功能,如何解决这个错误?,actionscript-3,flash,Actionscript 3,Flash,我是一名大学生,目前正在自己完成一项作业,在Animate CC上使用ActionScript 3为Android创建一款Flash游戏 我是ActionScript3的初学者,我发现自己被困在我正在创建的游戏的最后一部分 在游戏的“游戏结束”屏幕上,我有一个按钮,允许用户再次玩游戏(重新启动游戏),这就是问题发生的地方。当再次播放按钮被按下,比赛开始时,一切都冻结了,但是计分系统正在运行 我想做的是,当用户按下“再次播放”按钮时,它会将他/她带到屏幕上,让您选择难度,只需再次播放游戏即可 这是

我是一名大学生,目前正在自己完成一项作业,在Animate CC上使用ActionScript 3为Android创建一款Flash游戏

我是ActionScript3的初学者,我发现自己被困在我正在创建的游戏的最后一部分

在游戏的“游戏结束”屏幕上,我有一个按钮,允许用户再次玩游戏(重新启动游戏),这就是问题发生的地方。当再次播放按钮被按下,比赛开始时,一切都冻结了,但是计分系统正在运行

我想做的是,当用户按下“再次播放”按钮时,它会将他/她带到屏幕上,让您选择难度,只需再次播放游戏即可

这是我的游戏工作原理的结构:

  • 介绍屏幕(播放按钮和说明按钮)
  • 按播放按钮-->选择关卡屏幕
  • 选择水平屏幕(容易或难)
  • 如果你按easy或hard,它将进入相应难度的游戏屏幕
  • 一旦你输了,它就会把你带到屏幕上的游戏
  • 屏幕上的游戏有再次玩的选项
以下是我收到的一些错误:

TypeError:Error#1009:无法访问null的属性或方法 对象引用。在 AndroidSnowballShooterSanta_佛罗里达州::主要时间线/开始时间线

TypeError:Error#1009:无法访问null的属性或方法 对象引用。在 AndroidSnowballShooterSanta_佛罗里达州::主时间线/移动TamCtowardMouse()

TypeError:Error#1009:无法访问null的属性或方法 对象引用。在 AndroidSnowballShooterSanta_佛罗里达州::主时间线/移动TamCtowardMouse()

我在屏幕上使用的游戏代码用于启用重放游戏的功能,如下所示:

//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
),则告诉stage
gotoAndStop(20)