Mario: wmode per Javascript ändern

Hallo.

Suche eine Möglichkeit, bei einem Flashmovie die Transparenz über Javascript ein-/auszuschalten. Statisch passiert dies ja über

<object id="flashfilm" ...>
<...>
<param name="wmode" value="transparent" />
<...>
<embed ... wmode="transparent" ... name="flashfilm" ... />
</object>

Leider habe ich trotz intensiver Suche, noch keine Möglichkeit gefunden, diesen Parameter über die ID des Film direkt anzusprechen, um ihn so den Wert transparent zu übergeben bzw. wieder abzuschalten.

Wäre froh, wenn mir jmd. in dieser Richtung weiterhelfen könnte.

Gruß,
Mario

  1. Lieber Mario,

    kurz vor der Heia schaue ich mal...

    <object id="flashfilm" ...>

    Aha, da ist eine ID! (vielleicht getElementById()...)

    <embed ... wmode="transparent" ... name="flashfilm" ... />

    Und hier ist ein Name vegeben.

    Probiere doch mal
    document.getElementsByName("flashfilm").wmode = was_anderes;

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    1. Hallo Felix.

      <object id="flashfilm" ...>
      Aha, da ist eine ID! (vielleicht getElementById()...)

      Das klappte leider nicht.

      <embed ... wmode="transparent" ... name="flashfilm" ... />
      Und hier ist ein Name vegeben.

      Probiere doch mal
      document.getElementsByName("flashfilm").wmode = was_anderes;

      Genausowenig wie dieses.

      Irgendwie habe ich Zweifel, ob man den Parameter überhaupt ansprechen kann, da ich u.a auf SELFHTML absolut nichts dazu gefunden habe und (irgendwelche) Dokumentationen nicht auffindbar sind (z.B. per Google Suche).

      Trotzdem Danke bis hierher.

      Gruß,
      Mario

      1. Hallo Mario,

        document.getElementsByName("flashfilm").wmode = was_anderes;

        Genausowenig wie dieses.

        Kann auch nicht funktionieren, denn da fehlt die Array-Indexnummer.

        Irgendwie habe ich Zweifel, ob man den Parameter überhaupt ansprechen kann, da ich u.a auf SELFHTML absolut nichts dazu gefunden habe und (irgendwelche) Dokumentationen nicht auffindbar sind (z.B. per Google Suche).

        Ich würde da noch nicht gleich aufgeben. Was das OBJECT-Element angeht, so wird dessen Transparenz durch ein PARAM-Kindelement namens wmode bestimmt, was das EMBED-Element angeht, so wird dessen entsprechnder Wert durch ein darin enthaltenes Attribut "wmode" bestimmt. Da musst du dir also unterschiedliches einfallen lassen.

        Den Ansatz mit getElementsByName() finde ich eigentlich für beides nicht schlecht, nur musst du daran denken, dass es sich dabei um ein Array handelt, in dem du ein bestimmtes Element mit seiner Indexnummer ansprichst.

        Gruß Gernot

        1. Hallo nochmal»»

          Den Ansatz mit getElementsByName() finde ich eigentlich für beides nicht schlecht, nur musst du daran denken, dass es sich dabei um ein Array handelt, in dem du ein bestimmtes Element mit seiner Indexnummer ansprichst.

          Kommando zurück; um die PARAM-Elemente anzusprechen, brauchst du natürlich getElementsByTagName(), und auch das ist ein Array.

          Gruß Gernot

          1. Und nochmal,

            ich habe es mal ausprobiert; im IE6 kann man die Werte zwar sowohl für das Param- als auch für das Embed-Element auslesen und auch ändern, nur wird es leider nicht gerendert, d.h. der geänderte Wert lässt sich zwar auch wieder auslesen, nur wird in der Darstellung aus "transparent" nicht "" oder umgekehrt.

            Beim Versuch, den Wert für Mozilla 1.7.2 auszulesen kommt "undefined", obwohl er wmode="transparent" darstellt. Ändern kann man dann natürlich auch nichts.

            Und Opera 7.54 versteht "wmode" ja sowieso nicht, stellt es weder dar, noch kann er es auslesen, geschweige denn ändern.

            Gruß Gernot

  2. Hi,

    <object id="flashfilm" ...>
    <param name="wmode" value="transparent" />
    Leider habe ich trotz intensiver Suche, noch keine Möglichkeit gefunden, diesen Parameter über die ID des Film direkt anzusprechen, um ihn so den Wert transparent zu übergeben bzw. wieder abzuschalten.

    Ich fürchte, das Ändern des value-Attributs des param-Elements bringt nichts.

    Zumindest bei Applets ist es so, daß die Java VM die param-Elemente einmalig am Anfang ausliest.
    Nachträgliche Änderungen an den param-Elementen sind zwar im DOM-Baum möglich, haben aber keinerlei Auswirkung auf das Applet, da die param-Elemente nicht mehr beachtet werden.

    Ich vermute, daß das bei anderen Plugins wie Flash ähnlich ist.

    Bei Applets kann man das umgehen, indem im Applet eine Methode eingebaut wird, die Parameter auch nach dem Start noch übernimmt.
    Vielleicht geht das ja bei Flash auch? Keine Ahnung, ich kann kein Flash (außer beim Photographieren ;-))

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.