画面の周りをランダムに飛んで側面から跳ね返る 5 つのバグのアニメーションを作成しています。バグごとにアニメーションを行う機能を作りました。これは機能の一部です。getElementById() に渡すと、bugName 変数には文字列「bugOne」が含まれます。このコードを使用すると、この行に対してオブジェクトの予期されるエラーが発生します。
if (xDirection == "right" && xPosition > (widthMax - document.getElementById(bugName).width - flySpeed))
xDirection = "left";
代わりにこのコードを使用すると、構文エラーは発生しません (ただし、アニメーションは何らかの理由で正しく動作しません)。
if (xDirection == "right" && xPosition > (widthMax - document.getElementById("bugOne").width - flySpeed))
xDirection = "left";
構文エラーを発生させずに渡すbugName
にはどうすればよいですか?getElementById()
これが "bugOne" が bugName に入った方法です。一部のコードを削除し、基本のみを表示しています。
body onload イベントハンドラから呼び出しました。
<body onload="flyVar=setInterval('setBug(\'bugOne\')', 30);">
これで、ドキュメント ヘッドでこの関数が呼び出されました。
function setBug(bugName) {
flyBug(bugName);
}
そして、それはドキュメントヘッドにもあるこの関数を呼び出しました。
function flyBug(bugName) {
if (bugName == "bugOne") {
flySpeed = 5;
xPosition = 0;
yPosition = 100;
xDirection = "right";
yDirection = "up";
if (xDirection == "right" && xPosition > (widthMax - document.getElementById(bugName).width - flySpeed))
xDirection = "left";
}