Wie kann ich Flash CS3 und Actionscript dazu bringen, Ereignisse an Javascript zu senden?
-
09-06-2019 - |
Frage
Ich verwende Flash, um einen .flv-Movieclip auf meiner Website abzuspielen, möchte aber, dass das Senden der .swf-Datei ein Ereignis in meinem Javascript auslöst, wenn der Ladevorgang beginnt, die Wiedergabe beginnt und endet.
Was ist der beste Weg, dies in Flash CS3 mit Actionscript 3.0 zu tun?
Lösung
Sie müssen die Flash-Variable „allowScriptAccess“ im HTML verwenden.Sie möchten wahrscheinlich „sameDomain“ als Typ verwenden.Beachten Sie, dass Sie, wenn Sie domänenübergreifend arbeiten, auch eine spezielle Datei mit dem Namen „crossdomain.xml“ auf dem Server hosten müssen, die ein solches Skripting ermöglicht (der Flash Player prüft dies).Weitere Infos unter http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_14213&sliceId=2
Der Anruf ist der einfache Teil.:-) Im Flash-Code verwenden Sie ExternalInterface für den Aufruf, wie hier dokumentiert:
Kurzfassung:du sagst
ExternalInterface.call("javascriptFunction", "argument")
Andere Tipps
Ein üblicher Weg, dies zu tun, ist mit dem Externe Schnittstelle Klasse, mit der Sie JavaScript-Methoden aufrufen können.
Definieren Sie zunächst Ihre JavaScript-Methoden, zum Beispiel:
<script language="JavaScript">
function startsPlaying()
{
// do something when the FLV starts playing
}
</script>
Ändern Sie dann Ihren ActionScript, um die JavaScript-Methode zum richtigen Zeitpunkt aufzurufen:
// inform JavaScript that the FLV has started playing
ExternalInterface.call("startsPlaying");
Weitere Informationen finden Sie im zugehörigen Flash CS3 Dokumentation.
wenn Sie nicht laden möchten
import flash.external.*;
Sie können also auch a
getUrl("javascript:startsPlaying();");