DHTML幻灯片播放程序(三)

1/30/2004来源:DHTML教程人气:23088

  下面,我要开始最为核心的部分了,就是编写javascript程序了。我们的思路是,可以定义一组图片(若干张),当页面出现时先显示第一张图片,并预载入第二张图片,第一张图片载入后5秒钟,如果第二张图片也载入了,我们就开始自动切换到第二张图片,此时并预载入第三张图片,如果5秒钟内我们载入了第三张图片,就自动切换到第三张图片,如此播放下去直到最后一张又从头开始。当然,这是自动播放的了。我们还允许用户手动进行向前和向后的播放。 

  首先,我们要解决的问题是图片的预载入,因为这决定了切换过程的流畅性和播放过程的完美性。要预载入一幅图片很简单,我们只要在内存中新建一个图片的实例变量,并把该变量指向一幅图片,这样,我们的浏览器便会自动载入这幅图片的,这就是图片的预载入。用Javascript写出来就是下面这个样子: 

      var myImage = new Image()
      myImage.src = "someImage.gif" 

  然后,我们还要知道,图片是否载入了吗?如果载入了,我们就显示,如果没载入,那么就要出错了。于是我们还要改一下上面的代码,在其中加入两条语句,所以,这段JavaScript就变成下面的样子了: 

      var img = new Image() 
      img.onload = doReadyImage 
      img.onerror = doErrorDisplay 
      img.src = "someImage.gif" 

  我们加入了图片的onload和onerror事件,分别代表是否预载和预载出错的事件。这两条句语必需在img.src语句的前面。否则的话,图片预载就会出错。 

  最后就是我们的图片切换程序了,在前面,我们复习了CSS中Filter转换滤镜的各种效果,这里我们用代号为23的随机效果,下面,是我们为在IE中这种效果所写的JavaScript程序: 

if (document.images.slideShow.filters) 

  document.images.slideShow.filters[0].Stop() 
  document.images.slideShow.filters[0].Apply() 
  // 使用随机的转换效果
  document.images.slideShow.filters.revealTrans.transition=23 
}

document.images.slideShow.src = sSource 
// 开始进行转换效果的执行 
if (document.images.slideShow.filters) 
    document.images.slideShow.filters[0].Play()