2012-07-11 55 views
-1

这应该运行的方式是改变彩色图像。图像变化将是阵列中的位置。这看起来像是一种重复自己的动画.gif永远。我的for循环没有产生我期待的。

<script> 
var images = new Array(4); 

images[0] = new Image(50, 50); 
images[0].src = "0.gif"; 
images[1] = new Image(50, 50); 
images[1].src = "1.gif"; 
images[2] = new Image(50, 50); 
images[2].src = "2.gif"; 
images[3] = new Image(50, 50); 
images[3].src = "3.gif"; 
images[4] = new Image(50, 50); 

for(time=0; time>4; time++){ 
document.View.src = images[time] 
} 

<body> 
<img src = "0.gif" name = "View" height = 50 width = 50> 
</body> 

显然,我已经做了一些事错误的,因为我得到的是数组中的第一个图像,它永远不会改变。我是新来的JavaScript,所以任何帮助,我将不胜感激。

+0

我纠正了小于号问题,但它仍然无法正常工作。 – user1324518 2012-07-11 02:54:28

回答

2

你想:

for (time = 0; time < 4; time++) { 

你有time > 4,但你的初始值为0,那么你的条件是假的开始。 for循环的主体永远不会运行,所以图像永远不会改变。

+0

正确我搞砸了小于号 – user1324518 2012-07-11 02:49:30

0

只是一些评论...

> var images = new Array(4); 

您初始化长度为4的数组,再加入5名成员,因此长度为5(项0至4)。不要打扰设置的长度,仅使用初始化数组文字:

var images = []; 

此外,还有一个document.images的集合,是在文档中的所有IMG元素,因此可能不是一个好主意,有一个全球性的变量名称相同。也许imgArray将是一个更好的名字。

> document.View.src 

使用其名称作为文档对象的属性访问元素是不应使用的非标准化功能。 HTML5从img属性列表中删除名称,但在讨论集合时保留它(也许我们应该回到HTML 4.01和DOM 3)。

您可以改用图片收集:

document.images.View.src 

,或者如果你是游戏,HTML5的HTMLAllCollection