Thomas: JS steuert SWF

Hallo

Überprüfe ob per JS ein Cookie erstellt wurde oder nicht, wenn ja, möchte ich im SWF eine Markierung aufrufen und von dort den Film abspielen.

Wie kann ich dies machen?

Danke für Tipps und Hilfe.
Gruss
Thomas

  1. Hoi.

    Überprüfe ob per JS ein Cookie erstellt wurde oder nicht, wenn ja,

    *SELF*html: http://de.selfhtml.org/javascript/objekte/document.htm#cookie

    möchte ich im SWF eine Markierung aufrufen und von dort den Film abspielen.

    Dabei kann Dir nur der Autor des fraglichen SWF helfen und erklären, ob die gewünschte Schnittstelle implementiert ist und wie Du sie ansprichst.

    Grüße

    1. Sali

      Danke für die Antwort.

      »» möchte ich im SWF eine Markierung aufrufen und von dort den Film abspielen.
      Dabei kann Dir nur der Autor des fraglichen SWF helfen und erklären, ob die gewünschte Schnittstelle implementiert ist und wie Du sie ansprichst.

      Der Autor bin ich selber. Ich weiss aber nicht wie ich von extern das SWF ansprechen kann. Gibt's da irgendwo hilfe? Hab schon gegoogelt aber leider nix verständliches gefunden.

      Danke und Gruss
      Thomas

      1. Hohoh.

        Hab schon gegoogelt aber leider nix verständliches gefunden.

        Übe das mim googlen mal. Cookie + javascript hätte zumindest die Lösung für Dein Eingangsproblem bringen müssen.

        Der Autor bin ich selber. Ich weiss aber nicht wie ich von extern das SWF ansprechen kann. Gibt's da irgendwo hilfe? Hab schon gegoogelt aber leider nix verständliches gefunden.

        Das ist hilfreich. Dein Stichwort lautet "ExternalInterface". Fünfter Treffer Google bei mir:
        http://www.video-flash.de/index/externalinterface-kommunikation-zwischen-actionscript-und-javascript-mit-swfobject/

        Grüße

      2. n'abend,

        Der Autor bin ich selber. Ich weiss aber nicht wie ich von extern das SWF ansprechen kann. Gibt's da irgendwo hilfe? Hab schon gegoogelt aber leider nix verständliches gefunden.

        External API - Spezielles Augenmerk auf Seiten 5 und 6 richten...

        weiterhin schönen abend...

        --
        #selfhtml hat ein Forum?
        sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
        1. Hallo globe,

          External API - Spezielles Augenmerk auf Seiten 5 und 6 richten...

          Ich habe das mal eben angetestet. Dazu habe ich die Datei "ExternalInterfaceTest.as" erstellt:

          package {  
          	import flash.display.Sprite;  
          	import flash.text.TextField;  
          	import flash.text.TextFieldAutoSize;  
          	import flash.external.*;  
            
          	public class ExternalInterfaceTest extends Sprite {  
          	  
          		private var textField : TextField;  
          	  
          		public function ExternalInterfaceTest() {  
          			super();  
          			this.initialize();  
          			  
          			textField.text = "Interface is " + (ExternalInterface.available ? "available" : "not available");  
          			  
          			// call javascript function  
          			ExternalInterface.call("alert", "This is a message from ActionScript.");  
          		}  
          		  
          		protected function initialize() : void {  
          			textField = new TextField();  
          			textField.autoSize = TextFieldAutoSize.LEFT;  
          			textField.x = 10;  
          			textField.y = 10;  
          			this.addChild(textField);  
          		}  
          	}  
          }
          

          Dann habe ich mit dem Flex SDK 3, welches es hier zum Download gibt, und folgendem Kommando eine SWF-Datei erstellt:
          mxmlc -compiler.strict -compiler.show-actionscript-warnings -default-background-color=#f0f0f0 -default-frame-rate 31 -default-size 200 50 ExternalInterfaceTest.as

          Doch ganz egal wie ich es auch in HTML einbinde, es wird keine JavaScript-Funktion aufgerufen (Linux, Firefox 3.0.6, Flash Player 10). Hat das irgendjemand bisher zum Laufen bekommen? Ich wäre sehr dankbar wenn das geklärt werden könnte, weil ich selbst daran interessiert bin das ExternalInterface irgendwann einzusetzen.

          Grüße

          Marc Reichelt || http://www.marcreichelt.de/

          --
          DPRINTK("Last time you were disconnected, how about now?");
                  linux-2.6.6/drivers/net/tokenring/ibmtr.c
          Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
          1. Hallo nochmals,

            »» External API - Spezielles Augenmerk auf Seiten 5 und 6 richten...

            Auch die mitgelieferten Beispiele auf der Seite funktionieren bei mir weder unter Linux mit Firefox noch unter Windows im IE8 bzw. Firefox.
            Weiß jemand was hier los ist?

            Grüße

            Marc Reichelt || http://www.marcreichelt.de/

            --
            DPRINTK("Last time you were disconnected, how about now?");
                    linux-2.6.6/drivers/net/tokenring/ibmtr.c
            Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
            1. Und nochmals,

              »» »» External API - Spezielles Augenmerk auf Seiten 5 und 6 richten...

              Auch die mitgelieferten Beispiele auf der Seite funktionieren bei mir weder unter Linux mit Firefox noch unter Windows im IE8 bzw. Firefox.
              Weiß jemand was hier los ist?

              Ich habe die Dateien nun testweise auf meinen Server geladen - und siehe da, es geht. Auch mit meiner selbst erstellten Datei.
              Merkwürdigerweise sollte es eigentlich auch lokal gehen, wenn allowScriptAccess auf "always" steht - tut es aber nicht. Vielleicht ein Bug im Flash Player?

              Grüße

              Marc Reichelt || http://www.marcreichelt.de/

              --
              DPRINTK("Last time you were disconnected, how about now?");
                      linux-2.6.6/drivers/net/tokenring/ibmtr.c
              Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
            2. Heyho.

              Meinereiner verwendet folgendes erfolgreich, allerdings AS 2.0:

              import flash.external.ExternalInterface;
              ExternalInterface.addCallback("extCall", this, this.externalCall);

              JS:
              SwfReferenz.extCall("hallo")

              Getestet: Player V8-10  unter IE6 IE7 Win XP, FF2/3 Win XP Vista Debian, Safari Opera WinXP.

              Womöglich passt die von globe verlinkte Referenz einfach nicht auf Deinen AS 3 Flex Kontext?

              Die besagten Stichworte bei google eingeworfen bringt:
              http://livedocs.adobe.com/flex/3/html/help.html?content=19_External_Interface_04.html

              Vielleicht hilfreicher...

              Grüße