2 Stimmen

Abspielen eines SWF-Films bis zum Ende in einer Jquery-Diashow

Ich arbeite an einer Diashow, die auf dem Jquery Cycle Plugin basiert (zu finden hier: http://jquery.malsup.com/cycle/ ). Die Diashow gleitet zwischen verschiedenen Divs, in die ich verschiedene Inhalte wie Bilder und Text einfügen kann. Ich möchte aber auch swf-Filme in das Skript einfügen, was auf den ersten Blick funktioniert. Das Video beginnt zu spielen, wenn die Folie sichtbar wird, aber stoppt, bevor es fertig ist und geht über zur nächsten Folie.

Das passiert natürlich, weil ich einen Timer habe, der vorgibt, wie lange jede Folie sichtbar sein soll. Ich frage mich allerdings, ob es eine Möglichkeit gibt, mit dem Skript die Länge des Videos dynimacly erhalten und nicht ändern Folie, bis das Video abgeschlossen ist und nur tun dies für swf-Videos.

Andere Inhalte sollten den Timer beibehalten.

Mit freundlichen Grüßen Paparappa

0 Stimmen

Hallo Paparappa, ich habe dasselbe Problem. Haben Sie eine Lösung gefunden? Wenn ja, posten Sie sie bitte.

0voto

daniel.sedlacek Punkte 7411

Das sollte kein Problem sein.

Verwenden Sie zunächst das ExternalInterface für die Kommunikation zwischen Flash und JQuery. Sehen Sie sich diese Frage an Jquery mit Flash auslösen oder direkt http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/external/ExternalInterface.html .

Dann haben Sie zwei Möglichkeiten:

Ermittelt die Länge des Videostroms aus dem MetaData-Objekt:

1) Setzen Sie den NetStream-Klinetyp auf diesen Wert

mainNS = new NetStream(mainNC);
mainNS.client = this;

2) eine öffentliche Methode onMetaData in dieser Klasse haben

public function onMetaData(infoObject : Object) : void {
     if (infoObject.hasOwnProperty('duration')) {
          _duration = Number(infoObject['duration']);
     }          
}

Oder hören Sie sich das Ende des Videos an:

1)

mainNS = new NetStream(mainNC);
mainNS.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);

2)

private function netStatusHandler(event : NetStatusEvent) : void {
    if (event.info['code'] == "NetStream.Play.Stop") {
        trace('video end');         
    }
}

0 Stimmen

In Ordnung. Zuerst muss ich mich entschuldigen, dass ich nicht mehr von einem Javascript-Experten, als ich sein sollte. Auch wenn Sie wirklich hilfreich waren, mir zu zeigen, was zu verwenden, weiß ich nicht, wie es zu verwenden. Wenn ich eine swf Datei habe, die 10 Sekunden lang ist. Wie schaffe ich es, dass der Jquery-Zyklus dies erkennt und nicht einfach zum nächsten mit diesem Code übergeht: $(document).ready(function() { $('.slideshow').cycle({ fx: 'fade', speed: 500, timeout: 5000, delay: -0, pause: 1 }); });

0 Stimmen

Lol, ich bin auch kein JS-Entwickler :). Was nennen Sie Flash-Video - ist es eine Animation oder ein Video? Immer die gleiche Dauer oder dynamisch?

0 Stimmen

Es ist dynamisch, fürchte ich, lol. Es werden sozusagen verschiedene Videos für verschiedene Seiten sein

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X