Muckinger: flash-object kann nicht abgefragt werden, ist undefiniert

Hallo,

vielleicht weiß ja jemnad ne Lösung, ahb schon alle möglichen Foren abgeklappert, aber diese Lösungen funktionieren aus irgendeinem Grund nicht bei mir.
Ich möchte feststellen, wann ein flash-film fertiggeladen ist, und danach eine weiter function ausführen. Hier mein Quelltext:

<HTML>
<HEAD>
 <TITLE>Test</TITLE>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
var movieName = "testmovie";

function thisMovie(movieName) {
  // IE and Netscape refer to the movie object differently.
  // This function returns the appropriate syntax depending on the browser.
  if (navigator.appName.indexOf ("Microsoft") !=-1) {
    return window[movieName]
  } else {
    return document[movieName]
  }
}

if(movieIsLoaded(thisMovie(movieName)))
{
    alert('geladen');
}

//-->
</SCRIPT>
</HEAD>

<BODY>

<OBJECT
 CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
 WIDTH="100%"
 HEIGHT="100%"
 CODEBASE="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"
 ID=testmovie>
 <PARAM NAME="MOVIE" VALUE="tower.swf">
 <PARAM NAME="PLAY" VALUE="false">
 <PARAM NAME="LOOP" VALUE="false">
 <PARAM NAME="QUALITY" VALUE="high">
 <PARAM NAME="SCALE" VALUE="SHOWALL">
 <EMBED
  NAME="testmovie"
  SRC="tower.swf"
  WIDTH="100%"
  HEIGHT="100%"
  PLAY="false"
  LOOP="false"
  QUALITY="high"
  SCALE="SHOWALL"
  swLiveConnect="true"
  PLUGINSPAGE="http://www.macromedia.com/go/flashplayer">
 </EMBED>
</OBJECT>

</BODY>
</HTML>

IE schmeisst keinen fehler, führt den alert aber auch nicht aus. Mozilla bringt Fehler "movieIsLoaded is not defined"... Mit PercentLoaded()==100 hab ichs auch schon probiert.

Wäre sehr dankbar für ne Lösung, das MUSS doch funktionieren.

  1. if(movieIsLoaded(thisMovie(movieName)))
    {
        alert('geladen');
    }

    auch wenn es dir die Browser schon gesagt haben, wiederhole ich es dir gerne: die Funktion movieIsLoaded() ist nicht definiert.

    IE schmeisst keinen fehler, führt den alert aber auch nicht aus. Mozilla bringt Fehler "movieIsLoaded is not defined"... Mit PercentLoaded()==100 hab ichs auch schon probiert.

    Mit JS kannst du nicht festellen ob der Flashfilm fertig geladen ist, dafür gibt es (vermutlich, ich kenne mich mit Flash null aus) eine Funktion in Flash, durchsuch doch dazu mal die Macromedia seiten.

    Struppi.

    1. if(movieIsLoaded(thisMovie(movieName)))
      {
          alert('geladen');
      }

      auch wenn es dir die Browser schon gesagt haben, wiederhole ich es dir gerne: die Funktion movieIsLoaded() ist nicht definiert.

      IE schmeisst keinen fehler, führt den alert aber auch nicht aus. Mozilla bringt Fehler "movieIsLoaded is not defined"... Mit PercentLoaded()==100 hab ichs auch schon probiert.

      Mit JS kannst du nicht festellen ob der Flashfilm fertig geladen ist, dafür gibt es (vermutlich, ich kenne mich mit Flash null aus) eine Funktion in Flash, durchsuch doch dazu mal die Macromedia seiten.

      Struppi.

      Klar, Struppi, hab vergessen diese Function reinzuschreiben, aber diese Function fragt auch eine andere Functions (PercentLoaded()) ab, die nirgends definiert wird (hab ich so bei macromedia gesehen)
      Und so funktionierts leider auch nicht.... :-(

      Das gehört also noch dazu:

      // Checks if movie is completely loaded.
      // Returns true if yes, false if no.
      function movieIsLoaded (theMovie) {  if (typeof(theMovie) != "undefined") {    return theMovie.PercentLoaded() == 100;  } else {    return false;  }}

      1. Klar, Struppi, hab vergessen diese Function reinzuschreiben, aber diese Function fragt auch eine andere Functions (PercentLoaded()) ab, die nirgends definiert wird (hab ich so bei macromedia gesehen)
        Und so funktionierts leider auch nicht.... :-(

        Die Funktion ruft eine Funktion des Objektes theMovie ab, d.h. das Flashobjekt scheint diese Funktion JS zu Verfügung zu stellen.

        Das gehört also noch dazu:

        // Checks if movie is completely loaded.
        // Returns true if yes, false if no.
        function movieIsLoaded (theMovie) {  if (typeof(theMovie) != "undefined") {    return theMovie.PercentLoaded() == 100;  } else {    return false;  }}

        Wenn das so in deinem Quelltext steht, sollte der von dir genannte Fehler nicht auftreten.

        Evtl. kanst du dort wo du die Funktion aufrufen willst, mit
        alert(movieIsLoaded) checken ob die Funktion wirklich existiert (schreibfehler?).

        Struppi.

        1. // Checks if movie is completely loaded.
          // Returns true if yes, false if no.
          function movieIsLoaded (theMovie) {  if (typeof(theMovie) != "undefined") {    return theMovie.PercentLoaded() == 100;  } else {    return false;  }}

          Wenn das so in deinem Quelltext steht, sollte der von dir genannte Fehler nicht auftreten.

          Evtl. kanst du dort wo du die Funktion aufrufen willst, mit
          alert(movieIsLoaded) checken ob die Funktion wirklich existiert (schreibfehler?).

          Struppi.

          Steht alles so drin, lass mir jetzt auch immer einen Alert ausgeben, object ist und bleibt anscheinend undefiniert...

          Oder sieht jemand jetzt hier einen Fehler???

          <HTML>
          <HEAD>
           <TITLE>JavaScript controls Flash</TITLE>
          <SCRIPT LANGUAGE="JavaScript">
          <!--
          var movieName = "testmovie";

          function thisMovie(movieName) {
          // IE and Netscape refer to the movie object differently.
          // This function returns the appropriate syntax depending on the browser.
           if (navigator.appName.indexOf ("Microsoft") !=-1) {
            alert('msie');
            return window[movieName]
           }else {
            alert('anderer Browser');
            return document[movieName]
           }
          }

          // Checks if movie is completely loaded.
          // Returns true if yes, false if no.
          function movieIsLoaded (theMovie) {
           if (typeof(theMovie) != "undefined") {
            alert('object undefiniert--');
            return theMovie.PercentLoaded() == 100;
           }else {
            alert('Movieload ist false');
            return false;
           }
          }

          if (movieIsLoaded(thisMovie(movieName))) {
            alert('geladen--');
          }
          //-->
          </SCRIPT>
          </HEAD>

          <BODY>

          <OBJECT
           CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
           WIDTH="100%"
           HEIGHT="100%"
           CODEBASE="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"
           ID="testmovie">
           <PARAM NAME="MOVIE" VALUE="tower.swf">
           <PARAM NAME="PLAY" VALUE="true">
           <PARAM NAME="LOOP" VALUE="false">
           <PARAM NAME="QUALITY" VALUE="high">
           <PARAM NAME="SCALE" VALUE="SHOWALL">
           <EMBED
            NAME="testmovie"
            SRC="tower.swf"
            WIDTH="100%"
            HEIGHT="100%"
            PLAY="true"
            LOOP="false"
            QUALITY="high"
            SCALE="SHOWALL"
            swLiveConnect="true"
            PLUGINSPAGE="http://www.macromedia.com/go/flashplayer">
           </EMBED>
          </OBJECT>

          </BODY>
          </HTML>