Flashfilm nach Aufruf durch Javascript an bestimmtem Bild starten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Flashfilm nach Aufruf durch Javascript an bestimmtem Bild starten

    Hallo an Alle

    Ich habe ein kleines Problem zu dem mir leider keine Lösung einfällt.

    Ich habe eine .php-Seite auf der sich lauter Fotos als Thumbnails befinden.

    Beim Klick auf eines dieser Fotos wird eine Ebene/Layer aufgerufen, in der sich eine Flashdatei befindet.

    Die Flashdatei beinhaltet alle Fotos der .php als Flashgalerie.

    Soweit, so gut. Bis hier funktioniert auch alles einwandfrei.

    Nun soll sich aber die Flashgalerie immer genau bei dem Foto öffnen, auf dessen Thumbnail man vorher geklickt hat. Und genau hier liegt mein Problem. Ich bekomme es einfach nicht hin.

    Der Code sieht folgendermaßen aus:

    Aufruf der Ebene nach Klick auf das Thumbnail:
    HTML-Code:
    <a href="javascript:;" onclick="MM_showHideLayers('ebene','','show')">
    <img src="images/tumbs/mein-foto-01.jpg" border="0" width="106" height="159" />
    </a>
    HTML-Code:
    <div id="ebene" class="zentrierung">
            <script type="text/javascript">
    AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0','width','800','height','450','title','Meine Galerie','src','flash/meine_galerie','quality','high','bgcolor','#333333','pluginspage','http://www.macromedia.com/go/getflashplayer','movie','flash/meine_galerie','wmode','transparent' ); //end AC code
          </script>
            <noscript>
            <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="800" height="450" title="Meine Galerie">
              <param name="movie" value="flash/meine_galerie.swf" />
              <param name="quality" value="high" />
              <param name="wmode" value="transparent" />
              <param name="bgcolor" value="#333333" />
              <embed src="flash/meine_galerie.swf" quality="high" bgcolor="#333333" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="800" height="450"></embed>
            </object>
            </noscript>      
    </div>
    Der Flashfilm hat für jedes Foto eine Bildmarke gesetzt, zu der auch gesprungen werden soll, bzw. von der der Film nach Aufruf starten soll.

    Kann mir hier jemand helfen?

    Miranda

  • #2
    Zitat von Miranda Beitrag anzeigen
    Der Flashfilm hat für jedes Foto eine Bildmarke gesetzt
    Keine Ahnung, was das genau bedeutet - aber es klingt nach FlashVars, also der üblichen Möglichkeit, Werte per PARAM-Element an das Flash zu übergeben. Zu der Galerie gibt's ja bestimmt eine Doku, da sollte auch drin stehen, welchen Wert man dafür wo setzen muss.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Ich habe die Flashgalerie selbst erstellt. Da die Bilder eingeblendet werden und erst nach dem Klick auf einen Button weiterspringen soll, habe ich das in der Flashdatei so gelöst:


      Die oberste Ebene beinhaltet meine Bildmarken, also Bildnummern. Bsp: "Bild100"

      auf meinem Schalter liegt dann die Aktion:
      Code:
      on (release) {
       gotoAndPlay("Bild100");
      }

      Kommentar


      • #4
        Wie wahsaga schon sagte, das Stichwort lautet FlashVars. Schau dir mal das hier an.

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          das das ganze mit Variablen passieren muss, habe ich mir schon gedacht, aber ich weiss eben nicht, wie ich die Variablen über den Ebenenaufruf per Javascript dann in die Flashdatei bekomme (siehe mein Code oben).

          Kommentar


          • #6
            Von Prinzip her musst du dir das so vorstellen:
            PHP-Code:
            <script type="text/javascript">

              function 
            setStart(num)
              {
                if (
            navigator.userAgent.match('MSIE'))
                {
                  
            ele document.getElementsByTagName('object')[0];
                  
            ele.getElementsByTagName('param')[4].value 'start=Bild' num;
                  
            alert (ele.getElementsByTagName('param')[4].value);
                }
                else
                {
                  
            document.getElementsByTagName('embed')[0].setAttribute('FlashVars''start=Bild' num);
                  
            alert (document.getElementsByTagName('embed')[0].getAttribute('FlashVars'));
                }    
              }

            </
            script>
            <
            object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
              
            codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" 
              
            width="800" height="450" title="Meine Galerie">
              <
            param name="movie" value="flash/meine_galerie.swf" />
              <
            param name="quality" value="high" />
              <
            param name="wmode" value="transparent" />
              <
            param name="bgcolor" value="#333333" />
              <
            param name="FlashVars" value="start=Bild100">
              <
            embed src="flash/meine_galerie.swf" FlashVars="start=Bild100" 
                
            quality="high" bgcolor="#333333" pluginspage="http://www.macromedia.com/go/getflashplayer" 
                
            type="application/x-shockwave-flash" 
                
            width="800" height="450"></embed>
            </
            object>
            <
            a href='#' onclick="setStart(101)" name="bla">Klickmich</a>

            // AS
            on (release) {
             
            gotoAndPlay(start);

            Spiel mal damit herum, dann findest du die Lösung schon. Btw: ist nur auf die Schnelle zusammengehauen und ziemlich unsauber.

            Peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              danke für den Denkanstoß, nur leider funktioniert es so nicht oder ich bin zu b.... um es zu kapieren.

              [FONT=Courier New]ich versuche das Problem mal anders zu erklären:[/FONT]
              [FONT=Courier New][/FONT]
              [FONT=Courier New]in galerie.php [/FONT][FONT=Courier New]liegen die Thumbnails auf die geklickt wird und der Klick lädt eine Ebene/Layer aus der header.php per Javascript[/FONT]
              [FONT=Courier New][/FONT]
              [FONT=Courier New]Bsp. für 2 Bilder[/FONT]
              HTML-Code:
              <a href="javascript:;" onclick="MM_showHideLayers('ebene','','show')">
              <img src="images/tumbs/mein-foto-01.jpg" border="0" width="106" height="159" />
              </a>
              <a href="javascript:;" onclick="MM_showHideLayers('ebene','','show')">
              <img src="images/tumbs/mein-foto-02.jpg" border="0" width="106" height="159" />
              </a>
              laut meiner Logik müsste ich hier schon irgendwie eine Variable für die entsprechende Bildnummer mit übergeben.

              Diese Variable müsste dann theoretisch in die Ebene/Layer aus der header.php übergeben werden.

              Hier liegt ja nun die Flashdatei.
              [FONT=Courier New][/FONT]
              [FONT=Courier New]
              [FONT=Courier New]<param name="FlashVars" value="start=Bild100">
              <embed src="flash/meine_galerie.swf" FlashVars="start=Bild100" [/FONT]
              start=hier müsste dann theoretisch die Variable hin, da die Ebene/Layer sich ja nicht ändert.

              Oder habe ich einfach nur einen Denkfehler?[/FONT]

              Kommentar


              • #8
                PHP-Code:
                <a href="javascript:;" onclick="MM_showHideLayers('ebene','','show')"
                Du musst hier noch eine zusätzliche Funktion einbauen. Siehe z.B. mein Code. Allerdings handelt es sich bei dir nicht um echtes JavaScript, sondern um Dreamweaver-Pseudo-Code. Btw: kannst du überhaupt JavaScript? Und mit PHP hat das imho eh nichts zu tun.

                Peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  Javascript kann ich leider nur ein wenig, daher habe ich hier auch diese "Funktion" von Dreamweaver einfach genutzt.

                  php ist in beiden "Codeschnipseln" nicht enthalten, aber auf dem Rest der Seite integriert. Daher auch als php und nicht als html abgespeichert.

                  Die Dreamweavervariante:

                  ...
                  Code:
                  function MM_showHideLayers() { //v6.0
                    var i,p,v,obj,args=MM_showHideLayers.arguments;
                    for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
                      if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
                      obj.visibility=v; }
                  }
                  ...


                  Wir kann ich denn hier:
                  Code:
                  [COLOR=#000000][COLOR=#0000cc][/COLOR][FONT=Courier New][COLOR=#006600]<[/COLOR][COLOR=#0000cc]a href[/COLOR][COLOR=#006600]=[/COLOR][COLOR=#cc0000]"javascript:;" [/COLOR][COLOR=#0000cc]onclick[/COLOR][COLOR=#006600]=[/COLOR][COLOR=#cc0000]"MM_showHideLayers('ebene','','show')"[/COLOR][/FONT][COLOR=#006600][FONT=Courier New]>  [/FONT]
                  [/COLOR][COLOR=#0000cc][/COLOR][/COLOR]
                  eine zweite Funktion integrieren?

                  Sorry, ich möchte nicht nerven, aber ich kapiere es im Moment wirklich nicht.

                  oder geht das einfach mit einem ,

                  Code:
                  [COLOR=#000000][COLOR=#0000cc][/COLOR][FONT=Courier New][COLOR=#006600]<[/COLOR][COLOR=#0000cc]a href[/COLOR][COLOR=#006600]=[/COLOR][COLOR=#cc0000]"javascript:;" [/COLOR][COLOR=#0000cc]onclick[/COLOR][COLOR=#006600]=[/COLOR][COLOR=#cc0000]"MM_showHideLayers('ebene','','show'), [COLOR=#000000]setStart(Variable)[/COLOR]"[/COLOR][/FONT][COLOR=#006600][FONT=Courier New]>  [/FONT]
                  [/COLOR][COLOR=#0000cc][/COLOR][/COLOR]
                  nein, das sieht absolut falsch aus

                  Kommentar


                  • #10
                    Zitat von Miranda Beitrag anzeigen
                    Code:
                    [COLOR=#000000][COLOR=#0000cc][/COLOR][FONT=Courier New][COLOR=#006600]<[/COLOR][COLOR=#0000cc]a href[/COLOR][COLOR=#006600]=[/COLOR][COLOR=#cc0000]"javascript:;" [/COLOR][COLOR=#0000cc]onclick[/COLOR][COLOR=#006600]=[/COLOR][COLOR=#cc0000]"MM_showHideLayers('ebene','','show'), [COLOR=#000000]setStart(Variable)[/COLOR]"[/COLOR][/FONT][COLOR=#006600][FONT=Courier New]>  [/FONT]
                    [/COLOR][COLOR=#0000cc][/COLOR][/COLOR]
                    nein, das sieht absolut falsch aus
                    Fast richtig, du musst nur mit dem Semikolon arbeiten:
                    PHP-Code:
                    <a href="javascript:;" onclick="MM_showHideLayers('ebene','','show'); setStart(Variable);"
                    Allerdings muss imho der Flash-Film neu gestartet werden, da ich aber vor über zwei Jahren damit zum letzten Mal zu tun gehabt habe, kann ich dir da nicht helfen.

                    Btw: du musst nicht mit Farben arbeiten, einfach den PHP-Button () benutzen. Der macht das auch. Und schneller.

                    Gruß
                    Peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      vielen vielen Dank

                      ich werd morgen früh mal mit den neuen Denkanstößen experimentieren.

                      Egal ob ich es schaffe oder nicht, ich melde mich dann entweder mit meiner Lösung, oder mit neuen Fragen wieder hier

                      Kommentar


                      • #12
                        kleiner Teilerfolg:

                        Code:
                        function setStart(num) .....
                        habe ich eingefügt.

                        Mein Ebenen/Layer-Aufruf durch Klick auf das Thumbnail:

                        PHP-Code:
                        <a href="javascript:;" onclick="MM_showHideLayers('ebene','','show'); setStart(5);">
                        <
                        img src="http://www.php-resource.de/forum/images/tumbs/mein-foto-5.jpg" alt="Mein Foto Nr. 5" border="0" width="106" height="159" />
                        </
                        a
                        Die Ebene/Layer mit meiner Flashdatei startet und gibt mir dank
                        Code:
                        alert ....
                        auch die richtige Variable (in dem Fall Bild5) in dem kleinen Infofenster aus.

                        und jetzt stockt es.

                        PHP-Code:
                        <div id="ebene" class="zentrierung">
                                <
                        script type="text/javascript">
                        AC_FL_RunContent'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0','width','800','height','450','title','Meine Galerie','src','flash/meine_galerie','quality','high','bgcolor','#333333','pluginspage','http://www.macromedia.com/go/getflashplayer','movie','flash/meine_galerie','wmode','transparent' ); //end AC code
                              
                        </script>
                                <
                        noscript>
                                <
                        object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="800" height="450" title="Meine Galerie">
                                  <
                        param name="movie" value="flash/meine_galerie.swf" />
                                  <
                        param name="quality" value="high" />
                                  <
                        param name="wmode" value="transparent" />
                                  <
                        param name="bgcolor" value="#333333" />
                                  <
                        param name="FlashVars" value="start=Bild5">
                                  <
                        embed src="flash/meine_galerie.swf" FlashVars="start=Bild5" quality="high" bgcolor="#333333" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="800" height="450"></embed>
                                </
                        object>
                                </
                        noscript>      
                        </
                        div

                        PHP-Code:
                        <param name="FlashVars" value="start=Bild5"
                        und
                        PHP-Code:
                        <embed src="flash/meine_galerie.swf" FlashVars="start=Bild5" .... 
                        irgendwie müsste hier dann auch nicht "Bild5" rein, sondern die Variable, welche die Bildnummer übergibt.

                        Die Flashdatei wird ja gleich mit der Ebene/Layer geöffnet und muss gleich beim öffnen den richtigen Wert übergeben bekommen um an der richtigen Stelle zu starten.

                        in meiner Flashdatei habe ich nun folgendes eingefügt um zu testen ob die Variable "Bild5" übergeben wird.

                        Code:
                         
                        this.createTextField("myTxt", 100, 0, 0, 100, 20);
                        myTxt.autoSize = "left";
                        if (start == undefined) {
                            myTxt.text = "start is not defined";
                        } else {
                            myTxt.text = start;
                        }
                        sobald wenigstens das funktioniert muss natürlich statt der Textausgabe ein
                        Code:
                        gotoAndPlay("start");
                        eingefügt werden, aber momentan bekomme ich immer die Ausgabe: "start is not defined"

                        Er übernimmt also noch nicht einmal die feste Variable.

                        [FONT=Courier New]Langsam weiss ich echt nicht mehr weiter. [/FONT]
                        Zuletzt geändert von Miranda; 09.09.2009, 09:13.

                        Kommentar


                        • #13
                          Für das Problem solltest du ggf. mal in ein Flash-Forum gehen. Ich jedenfalls kann dir da nicht mehr weiterhelfen. Ist schon zu lange her.

                          Peter
                          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                          Meine Seite

                          Kommentar


                          • #14
                            ich danke Dir auf jeden Fall für Deine Hilfe und Deine Geduld. Immerhin habe ich ja einen kleinen Teilschritt dank Dir schon erreicht

                            Kommentar

                            Lädt...
                            X