一个脚本中有 2 个相同的错误

发布于 2025-01-18 18:10:00 字数 6636 浏览 2 评论 0原文

我有2个错误:

  1. typeError:错误#1009:无法访问空的属性或方法 对象引用。在 blowfishpong_fla ::维护情绪/countime()[blowfishpong_fla.maintimeline :: frame79:75]
  2. typeerror:错误#1009:无法访问null的属性或方法 对象引用。在 blowfishpong_fla ::维护情绪/airscore()[blowfishpong_fla.maintimeline :: frame79:131]

看此代码:

timedScore = 0;
var goalScore: int = Math.floor(Math.random() * 101) + 20;
var speedSeconds = 0;
var speedMinutes = 0;

keyNum = 0;
var OxygenTime = 0;
var OxygenMaxTime = 5;
var goalKey: int = Math.floor(Math.random() * 10) + 3;
var ballSpeedXTimed: int = -3;
var ballSpeedYTimed: int = -2;
var cpuPaddleSpeedTimed: int = 3;

stopwatch.play();
oxygenGauge.stop();
var FiftyTimed: Boolean = false;
var plzStopTimed: Boolean = false;
helpContent_Timed.visible = false;

stopwatch.addEventListener(Event.ENTER_FRAME, countTime);
oxygenGauge.addEventListener(Event.ENTER_FRAME, airScore);

goalScore_txt.text = String(goalScore);
timedScore_txt.text = timedScore;
key_txt.text = keyNum + "/" + goalKey;
stage.addEventListener(Event.ENTER_FRAME, loopTimed);

function updateTextFieldsTimed(): void {
    goalScore_txt.text = String(goalScore);
    timedScore_txt.text = timedScore;
    key_txt.text = keyNum + "/" + goalKey;
}

function calculateBallAngleTimed(paddleY: Number, ballY: Number): Number {
    var ySpeed: Number = 5 * ((ballY - paddleY) / 25);
    return ySpeed;
}

function countTime(e: Event): void {
    if (stopwatch.currentFrame == 61) {
        speedSeconds++;
        if (speedSeconds > 59) {
            speedSeconds = 0;
            speedtimerSec_txt.text = "0" + speedSeconds;
            speedMinutes++;
            if (speedMinutes > 10) {
                speedtimerMin_txt.text = "" + speedMinutes;
            } else {
                speedtimerMin_txt.text = "0" + speedMinutes;
            }
            if (speedMinutes > 59) {
                stopwatch.stop();
                gotoAndPlay("gameover_Timed");
            }
        } else {
            if (speedSeconds >= 10) {
                speedtimerSec_txt.text = "" + speedSeconds;
            } else {
                speedtimerSec_txt.text = "0" + speedSeconds;
            }
        }
    }
}

function airScore(timedScore): void {
    if (timedScore == 50 && FiftyTimed == false) {
        character_TiedUp.gotoAndStop(2);
        FiftyTimed = true;
        oxygenGauge.play();
        OxygenTime++;
    } else if (timedScore == 150 && FiftyTimed == false) {
        character_TiedUp.gotoAndStop(2);
        FiftyTimed = true;
        oxygenGauge.play();
        oxygenGauge.frameRate = 1.5;
        OxygenTime++;

    } else if (timedScore == 300 && FiftyTimed == false) {
        character_TiedUp.gotoAndStop(2);
        FiftyTimed = true;
        oxygenGauge.play();
        OxygenTime++;

    } else if (timedScore == 450 && FiftyTimed == false) {
        character_TiedUp.gotoAndStop(2);
        FiftyTimed = true;
        oxygenGauge.play();
        OxygenTime++;

    } else if (timedScore == 600 && FiftyTimed == false) {
        character_TiedUp.gotoAndStop(2);
        FiftyTimed = true;
        oxygenGauge.play();
        OxygenTime++;
    }
    if (oxygenGauge.currentFrame == 505) {
        character_TiedUp.gotoAndStop(3);
        oxygenGauge.stop();
        oxygenGauge.gotoAndStop(1);
    }
}

function loopTimed(event: Event): void {
    if (plzStopTimed == false) {
        playerPaddle.y = mouseY;
        keyPong.x += ballSpeedXTimed;
        keyPong.y += ballSpeedYTimed;

        //check left and right boundaries
        if (keyPong.x <= keyPong.width / 2) {
            keyPong.x = keyPong.width / 2;
            ballSpeedXTimed *= -1;
            keyNum++;
            BingTimed.play();
            if (goalKey == keyNum) {
                key_txt.textColor = 0x00FF00;
            }
            updateTextFieldsTimed();
        } else if (keyPong.x >= stage.stageWidth - keyPong.width / 2) {
            keyPong.x = stage.stageWidth - keyPong.width / 2;
            ballSpeedXTimed *= -1;
            BingTimed.play();
            if (keyNum > 0) {
                keyNum--;
            }
            if(goalKey < keyNum) {
                key_txt.textColor = 0xFFFFFF;
            }
            updateTextFieldsTimed();
        }

        if (keyPong.y <= keyPong.height / 2) {
            keyPong.y = keyPong.height / 2;
            ballSpeedYTimed *= -1;
            gameBounceTimed.play();
        } else if (keyPong.y >= stage.stageHeight - keyPong.height / 2) {
            keyPong.y = stage.stageHeight - keyPong.height / 2;
            ballSpeedYTimed *= -1;
            gameBounceTimed.play();
        }

        if (cpuPaddle.y < keyPong.y - 10) {
            cpuPaddle.y += cpuPaddleSpeedTimed;
        } else if (cpuPaddle.y > keyPong.y + 10) {
            cpuPaddle.y -= cpuPaddleSpeedTimed;
        }

        if (playerPaddle.y - playerPaddle.height / 4 < 0) {
            playerPaddle.y = playerPaddle.height / 4;
        } else if (playerPaddle.y + playerPaddle.height / 4 > stage.stageHeight) {
            playerPaddle.y = stage.stageHeight - playerPaddle.height / 4;
        }

        if (playerPaddle.paddle.hitTestObject(keyPong) == true) {
            if (ballSpeedXTimed > 0) {
                ballSpeedXTimed *= -1;
                ballSpeedYTimed = calculateBallAngleTimed(playerPaddle.y, keyPong.y);
                timedScore++
                gameHitTimed.play();
                airScore(timedScore);
                if (goalKey == keyNum) {
                    if (goalScore == timedScore) {
                        stage.removeEventListener(Event.ENTER_FRAME, loopTimed);
                        gotoAndStop("gameover_Timed");
                        return;
                    }
                }
                updateTextFieldsTimed();
            }
        } else if (cpuPaddle.paddle.hitTestObject(keyPong) == true) {
            if (ballSpeedXTimed < 0) {
                ballSpeedXTimed *= -1;
                ballSpeedYTimed = calculateBallAngleTimed(cpuPaddle.y, keyPong.y);
                timedScore++;
                gameHitTimed.play();
                airScore(timedScore);
                if (goalKey == keyNum) {
                    if (goalScore == timedScore) {
                        stage.removeEventListener(Event.ENTER_FRAME, loopTimed);
                        gotoAndStop("gameover_Timed");
                        return;
                    }
                }
                updateTextFieldsTimed();
            }
        }
    }
}

谁能解决这些问题?

I have 2 errors:

  1. TypeError: Error #1009: Cannot access a property or method of a null
    object reference. at
    BlowfishPong_fla::MainTimeline/countTime()[BlowfishPong_fla.MainTimeline::frame79:75]
  2. TypeError: Error #1009: Cannot access a property or method of a null
    object reference. at
    BlowfishPong_fla::MainTimeline/airScore()[BlowfishPong_fla.MainTimeline::frame79:131]

Look at this code:

timedScore = 0;
var goalScore: int = Math.floor(Math.random() * 101) + 20;
var speedSeconds = 0;
var speedMinutes = 0;

keyNum = 0;
var OxygenTime = 0;
var OxygenMaxTime = 5;
var goalKey: int = Math.floor(Math.random() * 10) + 3;
var ballSpeedXTimed: int = -3;
var ballSpeedYTimed: int = -2;
var cpuPaddleSpeedTimed: int = 3;

stopwatch.play();
oxygenGauge.stop();
var FiftyTimed: Boolean = false;
var plzStopTimed: Boolean = false;
helpContent_Timed.visible = false;

stopwatch.addEventListener(Event.ENTER_FRAME, countTime);
oxygenGauge.addEventListener(Event.ENTER_FRAME, airScore);

goalScore_txt.text = String(goalScore);
timedScore_txt.text = timedScore;
key_txt.text = keyNum + "/" + goalKey;
stage.addEventListener(Event.ENTER_FRAME, loopTimed);

function updateTextFieldsTimed(): void {
    goalScore_txt.text = String(goalScore);
    timedScore_txt.text = timedScore;
    key_txt.text = keyNum + "/" + goalKey;
}

function calculateBallAngleTimed(paddleY: Number, ballY: Number): Number {
    var ySpeed: Number = 5 * ((ballY - paddleY) / 25);
    return ySpeed;
}

function countTime(e: Event): void {
    if (stopwatch.currentFrame == 61) {
        speedSeconds++;
        if (speedSeconds > 59) {
            speedSeconds = 0;
            speedtimerSec_txt.text = "0" + speedSeconds;
            speedMinutes++;
            if (speedMinutes > 10) {
                speedtimerMin_txt.text = "" + speedMinutes;
            } else {
                speedtimerMin_txt.text = "0" + speedMinutes;
            }
            if (speedMinutes > 59) {
                stopwatch.stop();
                gotoAndPlay("gameover_Timed");
            }
        } else {
            if (speedSeconds >= 10) {
                speedtimerSec_txt.text = "" + speedSeconds;
            } else {
                speedtimerSec_txt.text = "0" + speedSeconds;
            }
        }
    }
}

function airScore(timedScore): void {
    if (timedScore == 50 && FiftyTimed == false) {
        character_TiedUp.gotoAndStop(2);
        FiftyTimed = true;
        oxygenGauge.play();
        OxygenTime++;
    } else if (timedScore == 150 && FiftyTimed == false) {
        character_TiedUp.gotoAndStop(2);
        FiftyTimed = true;
        oxygenGauge.play();
        oxygenGauge.frameRate = 1.5;
        OxygenTime++;

    } else if (timedScore == 300 && FiftyTimed == false) {
        character_TiedUp.gotoAndStop(2);
        FiftyTimed = true;
        oxygenGauge.play();
        OxygenTime++;

    } else if (timedScore == 450 && FiftyTimed == false) {
        character_TiedUp.gotoAndStop(2);
        FiftyTimed = true;
        oxygenGauge.play();
        OxygenTime++;

    } else if (timedScore == 600 && FiftyTimed == false) {
        character_TiedUp.gotoAndStop(2);
        FiftyTimed = true;
        oxygenGauge.play();
        OxygenTime++;
    }
    if (oxygenGauge.currentFrame == 505) {
        character_TiedUp.gotoAndStop(3);
        oxygenGauge.stop();
        oxygenGauge.gotoAndStop(1);
    }
}

function loopTimed(event: Event): void {
    if (plzStopTimed == false) {
        playerPaddle.y = mouseY;
        keyPong.x += ballSpeedXTimed;
        keyPong.y += ballSpeedYTimed;

        //check left and right boundaries
        if (keyPong.x <= keyPong.width / 2) {
            keyPong.x = keyPong.width / 2;
            ballSpeedXTimed *= -1;
            keyNum++;
            BingTimed.play();
            if (goalKey == keyNum) {
                key_txt.textColor = 0x00FF00;
            }
            updateTextFieldsTimed();
        } else if (keyPong.x >= stage.stageWidth - keyPong.width / 2) {
            keyPong.x = stage.stageWidth - keyPong.width / 2;
            ballSpeedXTimed *= -1;
            BingTimed.play();
            if (keyNum > 0) {
                keyNum--;
            }
            if(goalKey < keyNum) {
                key_txt.textColor = 0xFFFFFF;
            }
            updateTextFieldsTimed();
        }

        if (keyPong.y <= keyPong.height / 2) {
            keyPong.y = keyPong.height / 2;
            ballSpeedYTimed *= -1;
            gameBounceTimed.play();
        } else if (keyPong.y >= stage.stageHeight - keyPong.height / 2) {
            keyPong.y = stage.stageHeight - keyPong.height / 2;
            ballSpeedYTimed *= -1;
            gameBounceTimed.play();
        }

        if (cpuPaddle.y < keyPong.y - 10) {
            cpuPaddle.y += cpuPaddleSpeedTimed;
        } else if (cpuPaddle.y > keyPong.y + 10) {
            cpuPaddle.y -= cpuPaddleSpeedTimed;
        }

        if (playerPaddle.y - playerPaddle.height / 4 < 0) {
            playerPaddle.y = playerPaddle.height / 4;
        } else if (playerPaddle.y + playerPaddle.height / 4 > stage.stageHeight) {
            playerPaddle.y = stage.stageHeight - playerPaddle.height / 4;
        }

        if (playerPaddle.paddle.hitTestObject(keyPong) == true) {
            if (ballSpeedXTimed > 0) {
                ballSpeedXTimed *= -1;
                ballSpeedYTimed = calculateBallAngleTimed(playerPaddle.y, keyPong.y);
                timedScore++
                gameHitTimed.play();
                airScore(timedScore);
                if (goalKey == keyNum) {
                    if (goalScore == timedScore) {
                        stage.removeEventListener(Event.ENTER_FRAME, loopTimed);
                        gotoAndStop("gameover_Timed");
                        return;
                    }
                }
                updateTextFieldsTimed();
            }
        } else if (cpuPaddle.paddle.hitTestObject(keyPong) == true) {
            if (ballSpeedXTimed < 0) {
                ballSpeedXTimed *= -1;
                ballSpeedYTimed = calculateBallAngleTimed(cpuPaddle.y, keyPong.y);
                timedScore++;
                gameHitTimed.play();
                airScore(timedScore);
                if (goalKey == keyNum) {
                    if (goalScore == timedScore) {
                        stage.removeEventListener(Event.ENTER_FRAME, loopTimed);
                        gotoAndStop("gameover_Timed");
                        return;
                    }
                }
                updateTextFieldsTimed();
            }
        }
    }
}

Can anyone how to fix these?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文