Janette: zwei objekte mit einer funktion

Hallo,

ich hab da ein kleines problem und bin wohl gerade etwas blöd ;) auf jedenfall fällt mir keine lösung für folgendes problem ein und ich dachte vielleicht könnt ihr mir helfen

Ich habe auf meiner HTML-seite zwei slideshows: (warum ich das in zwei tabellen gepackt hab ist egal)

  
<body onload='showHot=true;self.focus();showHot2=true;self.focus();'>  
  
<table style="table-layout:fixed" border="0" width="100%" height="280px">  
  <tr>  
    <td width="40px" height="70px" align="center" valign="middle">  
    <a class="Controls" href="#" onClick="javascript:control('H');" title="first">&#8657;&#8657;</a></td>  
    <td width="350px" height="280px" colspan="2" rowspan="4">  
    <img src="slideshow/Nebula00.gif" name="PictureBox" width="350px" height="280px"></td>  
    <td width="" height="280px" id="CaptionBox" class="Caption" align="center" rowspan="4">  
    Standard-Beschreibung / Einleitung</td>  
  </tr>  
  <tr>  
    <td width="40px" height="70px" align="center" valign="middle">  
    <a class="Controls" href="#" onClick="javascript:control('B');" title="last">&#8657;</a></td>  
  </tr>  
  <tr>  
    <td width="40px" height="70px" align="center" valign="middle">  
    <a class="Controls" href="#" onClick="javascript:control('F');" title="next">&#8659;</a></td>  
  </tr>  
  <tr>  
    <td width="40px" height="70px" align="center" valign="middle">  
    <a class="Controls" href="#" onClick="javascript:control('L');" title="very last">&#8659;&#8659;</a></td>  
  </tr>  
  
</table>  
  
<br>  
  
  
<table style="table-layout:fixed" border="0" width="100%" height="280px">  
  <tr>  
    <td width="40px" height="70px" align="center" valign="middle">  
    <a class="Controls" href="#" onClick="javascript:control('H');" title="first">&#8657;&#8657;</a></td>  
    <td width="350px" height="280px" colspan="2" rowspan="4">  
    <img src="slideshow/Nebula00.gif" name="PictureBox" width="350px" height="280px"></td>  
    <td width="" height="280px" id="CaptionBox" class="Caption" align="center" rowspan="4">  
    Standard-Beschreibung / Einleitung</td>  
  </tr>  
  <tr>  
    <td width="40px" height="70px" align="center" valign="middle">  
    <a class="Controls" href="#" onClick="javascript:control('B');" title="last">&#8657;</a></td>  
  </tr>  
  <tr>  
    <td width="40px" height="70px" align="center" valign="middle">  
    <a class="Controls" href="#" onClick="javascript:control('F');" title="next">&#8659;</a></td>  
  </tr>  
  <tr>  
    <td width="40px" height="70px" align="center" valign="middle">  
    <a class="Controls" href="#" onClick="javascript:control('L');" title="very last">&#8659;&#8659;</a></td>  
  </tr>  
  
</table>  

und eine funktion un einer "funktionen.js"-datei:

  
var SlideShowSpeed = 3000;  
  
  
var CrossFadeDuration = 2;  
  
var Picture = new Array();  
var Caption = new Array();  
var showHot = false;  
  
  
  
Picture[1]  = 'slideshow/Nebula01.jpg';  
Picture[2]  = 'slideshow/Nebula02.jpg';  
Picture[3]  = 'slideshow/Nebula03.jpg';  
Picture[4]  = 'slideshow/Nebula04.jpg';  
Picture[5]  = 'slideshow/Nebula05.jpg';  
Picture[6]  = 'slideshow/Nebula06.jpg';  
Picture[7]  = 'slideshow/Nebula07.jpg';  
Picture[8]  = 'slideshow/Nebula08.jpg';  
Picture[9]  = 'slideshow/Nebula09.jpg';  
Picture[10] = 'slideshow/Nebula10.jpg';  
  
  
  
Caption[1]  = "Das ist die erste Beschreibung.";  
Caption[2]  = "Das ist die zweite Beschreibung.";  
Caption[3]  = "Das ist die dritte Beschreibung.";  
Caption[4]  = "Das ist die vierte Beschreibung.";  
Caption[5]  = "Das ist die f&uuml;nfte Beschreibung.";  
Caption[6]  = "Das ist die sechste Beschreibung.";  
Caption[7]  = "Das ist die siebte Beschreibung.";  
Caption[8]  = "Das ist die achte Beschreibung.";  
Caption[9]  = "Das ist die neunte Beschreibung.";  
Caption[10] = "Das ist die zehnte Beschreibung.";  
  
  
var tss;  
var iss;  
var jss = 0;  
var pss = Picture.length-1;  
  
var preLoad = new Array();  
for (iss = 1; iss < pss+1; iss++){  
preLoad[iss] = new Image();  
preLoad[iss].src = Picture[iss];}  
  
function control(how){  
if (showHot){  
if (how=="H") jss = 1;  
if (how=="F") jss = jss + 1;  
if (how=="B") jss = jss - 1;  
if (how=="L") jss = 10;  
if (jss > (pss)) jss=1;  
if (jss < 1) jss = pss;  
if (document.all){  
document.images.PictureBox.style.filter="blendTrans(duration=2)";  
document.images.PictureBox.style.filter="blendTrans(duration=CrossFadeDuration)";  
document.images.PictureBox.filters.blendTrans.Apply();}  
document.images.PictureBox.src = preLoad[jss].src;  
if (document.getElementById) document.getElementById("CaptionBox").innerHTML= Caption[jss];  
if (document.all) document.images.PictureBox.filters.blendTrans.Play();  
}

und das problem ist das ich nicht darauf komme wie ich zwei unabhängige slideshows kriege da die steuerungen im moment nur die erste slideshow steuern

geschweige denn zei unterschiedliche Picture-und Caption-listen hinkriege

kann mir einer helfen??

  1. @@Janette:

    nuqneH

    Ich habe auf meiner HTML-seite zwei slideshows: (warum ich das in zwei tabellen gepackt hab ist egal)

    Nein, ist es nicht.

    und das problem ist das ich nicht darauf komme wie ich zwei unabhängige slideshows kriege da die steuerungen im moment nur die erste slideshow steuern
    geschweige denn zei unterschiedliche Picture-und Caption-listen hinkriege
    kann mir einer helfen??

    Ja, der Felix.

    Qapla'

    --
    „Perfektion ist nicht dann erreicht, wenn es nichts mehr hinzuzufügen gibt, sondern wenn man nichts mehr weglassen kann.“ (Antoine de Saint-Exupéry)
  2. Liebe Janette,

    ich hab da ein kleines problem und bin wohl gerade etwas blöd ;)

    blöd bist Du sicherlich nicht. Die Frage ist, wie genau Du's wissen willst, um Dir in Zukunft bei soetwas selbst helfen zu können. Wenn Du also eine Plug-'n-Play-Lösung willst, dann solltest Du Dir tatsächlich den von Gunnar verlinkten Artikel von mir anschauen. Am Ende gibt es eine fertige Lösung, die Du so wie sie ist in Dein Projekt einbauen kannst.

    Dein aktuelles Problem liegt daran, dass Du ein Script benutzt, welches globale Variablen benutzt. Diese Eigenart hat gravierende Nachteile, wie zum Beispiel diesen, den Du gerade erlebst: es lässt sich nicht für mehrere Instanzen einer Slideshow einsetzen.

    Eine Lösung für Dein aktuelles Problem wäre, die Script-Datei zu klonen, ihr einen Namen mit einer "2" am Ende zu geben (also "funktionen2.js" und in ihr konsequent alle Variablen- und Funktionsnamen mit einer "2" am Ende umzubenennen - auch bei den Funktionsaufrufen. Dann hast Du wirklich zwei verschiedene Scripte, die sich mit ihren Variablen nicht stören.

    auf jedenfall fällt mir keine lösung für folgendes problem ein und ich dachte vielleicht könnt ihr mir helfen

    Das klingt ein bisschen nach "macht ihr doch mal ihr seid schließlich Experten", anstatt nach echtem Interesse, die Hintergründe zu verstehen und dazuzulernen... Täusche ich mich?

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. @@Felix Riesterer:

      nuqneH

      Eine Lösung für Dein aktuelles Problem wäre, die Script-Datei zu klonen

      Das ist ein schmutziger Hack, keine Lösung.

      Qapla'

      --
      „Perfektion ist nicht dann erreicht, wenn es nichts mehr hinzuzufügen gibt, sondern wenn man nichts mehr weglassen kann.“ (Antoine de Saint-Exupéry)
      1. Lieber Gunnar Bittersmann,

        Das ist ein schmutziger Hack, keine Lösung.

        wenn Du schon Korinthen defäkatierst, dann lass mich dagegenhalten: "Schmutzige Hacks" sind eine Teilmenge von "Lösungen". Wenn man "Lösung" definiert als Menge von Maßnahmen, die ein Problem entkräften, dann fallen Hacks ebenso darunter, wie weitsichtige und fundierte Ansätze.

        Es ist eben eine Frage, welchen Aufwand man für welches Projekt betreiben möchte. Für eine Site mit mehreren Hundert (oder gar -zig Tausend) Besuchern, die eine gewisse Professionalität benötigt, sind Hacks keine Option, da sie auf längere Sicht eher schaden, als wirklich zu helfen. Bei einer wild zusammengeschusterten Hobby-Seite ist ein "Provisorium" dagegen gut und gerne ein akzeptabler Dauerzustand.

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)