Javascript 使用旅行动画
我和塔维林鱼一起工作。鱼应该从两个方向游过屏幕。我有点难以理解如何设置阵列,使鱼可以游泳。我想的阵列是这样的Javascript 使用旅行动画,javascript,animation,dhtml,Javascript,Animation,Dhtml,我和塔维林鱼一起工作。鱼应该从两个方向游过屏幕。我有点难以理解如何设置阵列,使鱼可以游泳。我想的阵列是这样的 Var fishPos = new Array fishPos[0] = fish1 fishPos[1] = fish2 fishPos[2] = fish3 然后做鱼的功能…我真的不知道如何做动画鱼游泳…我正在尝试。如果我正在寻找的阵列是我刚才在那里做的,我想我会受伤的。。谢谢 好的,这是我到目前为止所做的,但有些事情仍然不对,他们鱼不会游泳 <!DOCTYPE html
Var fishPos = new Array
fishPos[0] = fish1
fishPos[1] = fish2
fishPos[2] = fish3
然后做鱼的功能…我真的不知道如何做动画鱼游泳…我正在尝试。如果我正在寻找的阵列是我刚才在那里做的,我想我会受伤的。。谢谢
好的,这是我到目前为止所做的,但有些事情仍然不对,他们鱼不会游泳
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Fish tank</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript">
// <![CDATA[
var fishPos = new Array(3);
var fishPos = 0;
var direction;
var begin;
fishPos[0] = "fish1.gif";
fishPos[1] = "fish2.gif";
fishPos[2] = "fish3.gif";
function fishSwim(fishNumber) {
document.getElementById("fish"+fishNumber).style.left = horizontal[fishPos[fishNumber] + "px";
++fishPos[fishNumber];
if (fishPos[fishNumber] == 49)
fishPos[fishNumber] = 0;
}
function startSwimming() {
setInterval(fish1Swim, 100);
}
// ]]>
</script>
</head>
<body onload="startSwimming();">
<p><span id="fish1" style=
"position:absolute; left:10px; top:10px"><img src="fish1.gif" alt="Image of a fish" /></span></p>
<p><span id="fish2" style=
"position:absolute; left:10px; top:120px"><img src="fish3.gif" alt="Image of a fish" /></span></p>
<p><span id="fish3" style=
"position:absolute; left:10px; top:250px"><img src="fish2.gif" alt="Image of a fish" /></span></p>
</body>
</html>
鱼缸
//
您从错误的方向接近它。为了让你更容易,你应该尝试使用动画插件,比如(需要jQuery)
如果你想自己制作,你必须编写一个tweening函数,在指定的时间内,将你的对象从a点移动到B点,改变它的动画帧,偏移它的Y位置以产生这种鱼腥味/摇摆的运动效果等等。创建位置数组并不是真正的方法
在Dev.Opera的这篇优秀文章中,您将找到许多关于如何开始创建自己的动画引擎的提示
如果您只针对现代浏览器,您可以尝试使用CSS3动画,尽管这些动画还没有得到广泛支持。好的,我正在学习的这本书是javascript,这一章是dynmaic HTML(DHTML),在我的书中没有解释如何做到这一点。我对这件事感到迷惘和困惑,以至于我尝试了所有我知道如何使用的东西,但鱼仍然没有游。哎哟,你把事情搞砸了:)1。您没有fish1Swim函数,因此间隔会尝试在每个勾号2上调用未定义的函数。由于fishPos[fishNumber]存储调用pre increment on的文件名是错误的,因为您只能对Number类型的变量使用递增/递减运算符。3.然后将存储的鱼名与49进行比较,将其名称重置为0;你在更基本的层面上犯了一些错误,而不仅仅是在创建动画的算法上。所以我会回顾一下JS的基础知识,阅读一下我给你的Dev.Opera链接,你应该能够自己完成。这是什么书?也许你应该试试不同的一本,呵呵:)这是我从学校买的一本书……我不知道我可以叫一条鱼来游泳,就是这样。我不想让你气馁,但你应该多读一点javascript——我现在注意到更多的错误。就像在一开始,您为fishPos变量分配了一个数组,然后立即用0覆盖它的值,这样就没有更多的数组了。然后,您尝试为fishPos数组元素设置值——尽管这不再是数组,而是一个数字(0),但您不能这样做。或者,在代码中,您尝试从名为horizontal的数组中赋值,该数组在代码中的任何地方都没有声明。你可以试试看这里