holger kuehne: Fließende Übergänge mit dem blendTrans-Filter

Beitrag lesen

Hi
Du hast mehrere Denkfehler gemacht:
1. Es ist sehr freundlich vom IE, dass er die Funktion Bildwechsel überhaupt aufruft.
Du hast sie nämlich ohne Parameter definiert: function Bildwechsel() rufst aber in deinen
Bildern Bildwechsel(1) bzw Bildwechsel(2) auf !!
2. So wie du die  function Bildwechsel() definierst tut sie folgendes:

if(Bild == 1)
{
  Bild = 2;  *****=>Bild wird =2 gesetzt!!*****
  document.all.DynBild0.filters.blendTrans.Apply();
  document.all.DynBild0.src = Bild2.src;
  document.all.DynBild0.filters.blendTrans.Play();
}
der folgende else Zweig wird nicht abgearbeitet.(soo ja auch so sein)
Aber der zweite if Zweig (if Bild==2) wird (weil Bild ja oben gleich zwei gesetzt wurde!!)
natürlich auch ausgeführt. Folge:Bild=4
Beim allen weiteren Durchgängen werden dann in beiden if zweigen immer die else Bereiche ausgeführt.(Das soll heissen, dass die beiden Bilder die ja nach dem ersten Durchgang beide gleich getarnt.jpg sind, durch getarnt.jpg also gar nicht ersetzt werden)

Lösung:
Bild1=1;Bild2=1;
function Bildwechsel(BildNr)
{
if (BildNr == 1)
{
if(Bild1 == 1)
{
  Bild1 = 2;
  document.all.DynBild0.filters.blendTrans.Apply();
  document.all.DynBild0.src = Bild2.src;
  document.all.DynBild0.filters.blendTrans.Play();
}
else
{
  Bild1 = 1;
  document.all.DynBild0.filters.blendTrans.Apply();
  document.all.DynBild0.src = Bild1.src;
  document.all.DynBild0.filters.blendTrans.Play();
}}
else
{
if (Bild2 == 1)
{
  Bild2 = 2;
  document.all.DynBild1.filters.blendTrans.Apply();
  document.all.DynBild1.src = Bild4.src;
  document.all.DynBild1.filters.blendTrans.Play();
}
else
{
  Bild2 = 1;
  document.all.DynBild1.filters.blendTrans.Apply();
  document.all.DynBild1.src = Bild3.src;
  document.all.DynBild1.filters.blendTrans.Play();
}}}

Ich habe leider keinen IE4/5 zur Hand um das zu testen, müsste aber eigentlich funktionieren.
Es wäre nett, wenn Du noch mal bescheid sagst ob es so klappt.
Viel Spass Holger