我正在制作 5 个虫子在屏幕上随机飞行并从侧面弹跳的动画。我做了一个函数来为每个错误做动画。这是功能的一部分。当我将 bugName 变量传递给 getElementById() 时,它包含字符串“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 的方式。我正在删除一些代码,只显示基础知识。
我从正文 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";
}