-1

这应该运行的方式是改变彩色图像。图像更改将是数组中的位置。这看起来像是一种永远重复的动画 .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的新手,所以我将不胜感激。

4

2 回答 2

2

你要:

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

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

于 2012-07-11T02:46:45.957 回答
0

只是一些评论......</p>

> 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

或者如果你是游戏,HTML5HTMLAllCollection

于 2012-07-11T03:17:12.413 回答