imgplayer1.js
上传用户:ah_jiwei
上传日期:2022-07-24
资源大小:54044k
文件大小:8k
源码类别:

数据库编程

开发平台:

Visual C++

  1. function slide(src,link,text,target,attr,desc) {
  2.   this.desc = desc
  3.   this.src = src;
  4.   this.link = link;
  5.   this.text = text;
  6.   this.target = target;
  7.   this.attr = attr;
  8.   if (document.images) {
  9.     this.image = new Image();
  10.   }
  11.   this.loaded = false;
  12.   this.load = function() {
  13.     if (!document.images) { return; }
  14.     if (!this.loaded) {
  15.       this.image.src = this.src;
  16.       this.loaded = true;
  17.     }
  18.   }
  19.   this.hotlink = function() {
  20.     var mywindow;
  21.     if (!this.link) return;
  22.     if (this.target) {
  23.       if (this.attr) {
  24.         mywindow = window.open(this.link, this.target, this.attr);
  25.   
  26.       } else {
  27.         mywindow = window.open(this.link, this.target);
  28.       }
  29.       if (mywindow && mywindow.focus) mywindow.focus();
  30.     } else {
  31.       location.href = this.link;
  32.     }
  33.   }
  34. }
  35. function slideshow( slideshowname ) {
  36.   this.name = slideshowname;
  37.   this.repeat = true;
  38.   this.prefetch = -1;
  39.   this.image;
  40.   this.textid;
  41.   this.textarea;
  42.   this.timeout = 5000;
  43.   this.slides = new Array();
  44.   this.current = 0;
  45.   this.timeoutid = 0;
  46.   this.add_slide = function(slide) {
  47.     var i = this.slides.length;
  48.     if (this.prefetch == -1) {
  49.       slide.load();
  50.     }
  51.     this.slides[i] = slide;
  52.   }
  53.   this.play = function(timeout) {
  54.     this.pause();
  55.     if (timeout) {
  56.       this.timeout = timeout;
  57.     }
  58.     if (typeof this.slides[ this.current ].timeout != 'undefined') {
  59.       timeout = this.slides[ this.current ].timeout;
  60.     } else {
  61.       timeout = this.timeout;
  62.     }
  63.     this.timeoutid = setTimeout( this.name + ".loop()", timeout);
  64.   }
  65.   this.pause = function() {
  66.     if (this.timeoutid != 0) {
  67.       clearTimeout(this.timeoutid);
  68.       this.timeoutid = 0;
  69.     }
  70.   }
  71.   this.update = function() {
  72.     if (! this.valid_image()) { return; }
  73.     if (typeof this.pre_update_hook == 'function') {
  74.       this.pre_update_hook();
  75.     }
  76.     var slide = this.slides[ this.current ];
  77.     var dofilter = false;
  78.     if (this.image &&
  79.         typeof this.image.filters != 'undefined' &&
  80.         typeof this.image.filters[0] != 'undefined') {
  81.       dofilter = true;
  82.     }
  83.     slide.load();
  84.     if (dofilter) {
  85.       if (slide.filter &&
  86.           this.image.style &&
  87.           this.image.style.filter) {
  88.         this.image.style.filter = slide.filter;
  89.       }
  90.       this.image.filters[0].Apply();
  91.     }
  92.     this.image.src = slide.image.src;
  93.     if (dofilter) {
  94.       this.image.filters[0].Play();
  95.     }
  96.     this.display_text();
  97.     if (typeof this.post_update_hook == 'function') {
  98.       this.post_update_hook();
  99.     }
  100.     if (this.prefetch > 0) {
  101.       var next, prev, count;
  102.       next = this.current;
  103.       prev = this.current;
  104.       count = 0;
  105.       do {
  106.         if (++next >= this.slides.length) next = 0;
  107.         if (--prev < 0) prev = this.slides.length - 1;
  108.         this.slides[next].load();
  109.         this.slides[prev].load();
  110.       } while (++count < this.prefetch);
  111.     }
  112.   }
  113.   this.goto_slide = function(n) {
  114.     if (n == -1) {
  115.       n = this.slides.length - 1;
  116.     }
  117.     if (n < this.slides.length && n >= 0) {
  118.       this.current = n;
  119.     }
  120.     this.update();
  121.   }
  122.   this.goto_random_slide = function(include_current) {
  123.     var i;
  124.     if (this.slides.length > 1) {
  125.       do {
  126.         i = Math.floor(Math.random()*this.slides.length);
  127.       } while (i == this.current);
  128.       this.goto_slide(i);
  129.     }
  130.   }
  131.   this.next = function() {
  132.     if (this.current < this.slides.length - 1) {
  133.       this.current++;
  134.     } else if (this.repeat) {
  135.       this.current = 0;
  136.     }
  137.     this.update();
  138.   }
  139.   this.previous = function() {
  140.     if (this.current > 0) {
  141.       this.current--;
  142.     } else if (this.repeat) {
  143.       this.current = this.slides.length - 1;
  144.     }
  145.     this.update();
  146.   }
  147.   this.shuffle = function() {
  148.     var i, i2, slides_copy, slides_randomized;
  149.     slides_copy = new Array();
  150.     for (i = 0; i < this.slides.length; i++) {
  151.       slides_copy[i] = this.slides[i];
  152.     }
  153.     slides_randomized = new Array();
  154.     do {
  155.       i = Math.floor(Math.random()*slides_copy.length);
  156.       slides_randomized[ slides_randomized.length ] =
  157.         slides_copy[i];
  158.       for (i2 = i + 1; i2 < slides_copy.length; i2++) {
  159.         slides_copy[i2 - 1] = slides_copy[i2];
  160.       }
  161.       slides_copy.length--;
  162.     } while (slides_copy.length);
  163.     this.slides = slides_randomized;
  164.   }
  165.   this.get_text = function() {
  166.     return(this.slides[ this.current ].text);
  167.   }
  168.   this.get_all_text = function(before_slide, after_slide) {
  169.     all_text = "";
  170.     for (i=0; i < this.slides.length; i++) {
  171.       slide = this.slides[i];
  172.       if (slide.text) {
  173.         all_text += before_slide + slide.text + after_slide;
  174.       }
  175.     }
  176.     return(all_text);
  177.   }
  178.   this.display_text = function(text) {
  179.     if (!text) {
  180.       text = this.slides[ this.current ].text;
  181.     }
  182.     if (this.textarea && typeof this.textarea.value != 'undefined') {
  183.       this.textarea.value = text;
  184.     }
  185.     if (this.textid) {
  186.       r = this.getElementById(this.textid);
  187.       if (!r) { return false; }
  188.       if (typeof r.innerHTML == 'undefined') { return false; }
  189.       r.innerHTML = text;
  190.     }
  191.   }
  192.   this.hotlink = function() {
  193.     this.slides[ this.current ].hotlink();
  194.   }
  195.   this.save_position = function(cookiename) {
  196.     if (!cookiename) {
  197.       cookiename = this.name + '_slideshow';
  198.     }
  199.     document.cookie = cookiename + '=' + this.current;
  200.   }
  201.   this.restore_position = function(cookiename) {
  202.     if (!cookiename) {
  203.       cookiename = this.name + '_slideshow';
  204.     }
  205.     var search = cookiename + "=";
  206.     if (document.cookie.length > 0) {
  207.       offset = document.cookie.indexOf(search);
  208.       if (offset != -1) { 
  209.         offset += search.length;
  210.         end = document.cookie.indexOf(";", offset);
  211.         if (end == -1) end = document.cookie.length;
  212.         this.current = parseInt(unescape(document.cookie.substring(offset, end)));
  213.         }
  214.      }
  215.   }
  216.   this.noscript = function() {
  217.     $html = "n";
  218.     for (i=0; i < this.slides.length; i++) {
  219.       slide = this.slides[i];
  220.       $html += '<P>';
  221.       if (slide.link) {
  222.         $html += '<a href="' + slide.link + '">';
  223.       }
  224.       $html += '<img src="' + slide.src + '" ALT="slideshow image">';
  225.       if (slide.link) {
  226.         $html += "</a>";
  227.       }
  228.       if (slide.text) {
  229.         $html += "<BR>n" + slide.text;
  230.       }
  231.       $html += "</P>" + "nn";
  232.     }
  233.     $html = $html.replace(/&/g, "&amp;" );
  234.     $html = $html.replace(/</g, "&lt;" );
  235.     $html = $html.replace(/>/g, "&gt;" );
  236.     return('<pre>' + $html + '</pre>');
  237.   }
  238.   this.loop = function() {
  239.     if (this.current < this.slides.length - 1) {
  240.       next_slide = this.slides[this.current + 1];
  241.       if (next_slide.image.complete == null || next_slide.image.complete) {
  242.         this.next();
  243.       }
  244.     } else {
  245.       this.next();
  246.     }
  247.     this.play( );
  248.   }
  249.   this.valid_image = function() {
  250.     if (!this.image){
  251.       return false;
  252.     }
  253.     else {
  254.       return true;
  255.     }
  256.   }
  257.   this.getElementById = function(element_id) {
  258.     if (document.getElementById) {
  259.       return document.getElementById(element_id);
  260.     }
  261.     else if (document.all) {
  262.       return document.all[element_id];
  263.     }
  264.     else if (document.layers) {
  265.       return document.layers[element_id];
  266.     } else {
  267.       return undefined;
  268.     }
  269.   }
  270.   this.set_image = function(imageobject) {
  271.     if (!document.images)
  272.       return;
  273.     this.image = imageobject;
  274.   }
  275.   this.set_textarea = function(textareaobject) {
  276.     this.textarea = textareaobject;
  277.     this.display_text();
  278.   }
  279.   this.set_textid = function(textidstr) {
  280.     this.textid = textidstr;
  281.     this.display_text();
  282.   }
  283. }