我的for循环没有产生我期待的东西。

时间:2012-07-11 02:45:54

标签: javascript arrays for-loop

应该运行的方式是改变彩色图像。图像变化将是阵列中的位置。这看起来像是一种动画.gif永远重复。

<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的新手,所以任何帮助我都会感激不尽。

2 个答案:

答案 0 :(得分:2)

你想:

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

您有time > 4,但您的初始值为0,因此您的条件开始时为假。 for循环的主体永远不会运行,因此图像永远不会改变。

答案 1 :(得分:0)

只是一些评论......

> var images = new Array(4); 

初始化长度为4的数组,然后添加5个成员,使长度为5(项目0到4)。不要费心设置长度,只需使用文字初始化数组:

var images = [];

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

> document.View.src 

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

您可以改为使用图片集:

document.images.View.src

或者如果你是游戏,HTML5 HTMLAllCollection