Wie stellt js fest, ob Flash geladen wurde?
Wie rufen wir eine js-Funktion zurück, die wir beim Laden des Flashs festgelegt haben?
Dieses Problem beschäftigt mich schon seit langem, bis ich es heute, nach Rücksprache mit einer sehr tollen Person, plötzlich gespürt habe!
Haha, vielleicht ist dieses Problem für Sie kein Problem, aber für mich ist es tatsächlich ein Problem, weil ich nie weiß, wie ich beurteilen soll, ob die SWF-Datei geladen wurde?
Früher kannte ich nur img.onload und so weiter.
Okay, kommen wir zur Sache, wie beurteilen wir, ob ein Flash geladen wurde?
Ja, es wird eine Abfrage durchgeführt und dann festgestellt, ob eine bestimmte Flash-Methode normal ausgeführt werden kann?
Das Beispiel lautet wie folgt (Pseudocode):
(function () { var flash = 网页上某个flash对象。 var interval = setInterval(function () { try { if(flash.IsPlaying()) { //轮询flash的某个方法即可 callBack && callBack.call(flash, args); //回调函数 clearInterval(interval); } } catch (ex) { } }, 1000); var callBack = function () { alert('loaded'); } })();
//In bestimmten Anwendungen, wenn der Flash in den Funktionsabschluss von setInterval oder setTimeout eingefügt wird, kann es an einem JavaScript-Single-Thread-Problem liegen, dass der Flash IsPlaying und andere Flash-Player-Funktionen nicht aufrufen kann oder die Aufrufergebnisse ungleich sind . Die Lösung besteht darin, dass wir das TotalFrames-Attribut von Flash in der Abfragefunktion lesen können. Wenn wir es lesen, können wir davon ausgehen, dass der Flash vollständig in die Seite geladen wurde. ! !
Nach dem Testen funktioniert es zwar, es kann jedoch zu einer Verzögerung von 1-2 Sekunden kommen.
/////////////Wenn etwas nicht stimmt, korrigieren Sie mich bitte! ! ! ! ! ! ! ! ! //////////////
/*Angehängt ist eine Liste von js-Methoden, die Flash Player steuern können*/
Play() ------------------------------------- Animation abspielen
StopPlay()-----------------------------------Animation stoppen
IsPlaying()------------------------------------------------ Ob die Animation abgespielt wird
GotoFrame(frame_number)---------------- Zu einem bestimmten Frame springen
TotalFrames()--------------------------------- Ermittelt die Gesamtzahl der Animationsbilder
CurrentFrame()---------------Gibt die Bildnummer der aktuellen Animation zurück -1
Rewind()----------------------------------------setzt die Animation auf den ersten Frame zurück
SetZoomRect(left,top,right,buttom)-------Vergrößert den angegebenen Bereich
Zoom (Prozent)---------------------------------Animationsgröße ändern
Pan(x_position,y_position,unit)------------führt dazu, dass die Animation in x- und y-Richtung verschoben wird
PercentLoaded()------------Gibt den Prozentsatz der geladenen Animation zurück
LoadMovie(level_number,path)---------- Animation laden
TGotoFrame(movie_clip,frame_number) – movie_clip springt zur angegebenen Bildnummer
TGotoLabel(movie_clip,label_name)------ movie_clip springt zum angegebenen Label
TCurrentFrame(movie_clip)--------------- Gibt den aktuellen Frame von movie_clip -1
zurück
TCurrentLabel(movie_clip)-----------------Gibt die aktuelle Bezeichnung von movie_clip
zurück
TPlay(movie_clip)-----------Film_clip abspielen
TStopPlay(movie_clip)-------Stoppt die Wiedergabe von movie_clip
GetVariable(variable_name)-----------------Variable
abrufen
SetVariable(Variablenname,Wert)----------Variablenzuweisung
TCallFrame(movie_clip,frame_number)---Aktion für den angegebenen Frame
aufrufen
TCallLabel(movie_clip,label)----------------rufen Sie die Aktion für das angegebene Label
auf
TGetProperty(movie_clip,property)--------Ruft die angegebene Eigenschaft von movie_clip
ab
TSetProperty(movie_clip,property,number) – Setzt die angegebene Eigenschaft von movie_clip