>  기사  >  웹 프론트엔드  >  js는 플래시 swf 파일이 로드되었는지 여부를 어떻게 결정합니까?

js는 플래시 swf 파일이 로드되었는지 여부를 어떻게 결정합니까?

WBOY
WBOY원래의
2016-05-16 16:39:341273검색

js는 플래시가 로드되었는지 어떻게 확인하나요?

플래시가 로드될 때 설정한 js 함수를 어떻게 콜백하나요?

이 문제는 오랫동안 나를 괴롭혔습니다. 오늘까지 아주 멋진 분과 상담을 마치고 문득 느꼈습니다!

하하, 이 문제가 여러분에게는 문제가 아닐 수도 있지만 저에게는 정말 문제입니다. swf 파일이 로드되었는지 판단하는 방법을 전혀 모르기 때문입니다.

예전에는 img.onload 등만 알았습니다.

자, 본론으로 들어가겠습니다. 플래시가 로드되었는지 어떻게 판단하나요?

예, 폴링을 한 다음 특정 플래시 방식이 정상적으로 실행될 수 있는지 확인하는 것인가요?

예제는 다음과 같습니다(유사코드):

(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'); 
} 
})();

//특정 사용에서 플래시가 setInterval 또는 setTimeout의 함수 클로저에 배치되면 플래시가 IsPlaying 및 기타 플래시 플레이어 기능을 호출할 수 없거나 호출 결과가 동일하지 않은 JavaScript 단일 스레드 문제 때문일 수 있습니다. 여기에는 일시적인 상황이 있습니다. 해결책은 폴링 기능에서 플래시의 TotalFrames 속성을 읽을 수 있다는 것입니다. 이를 읽으면 플래시가 페이지에 완전히 로드되었다고 생각할 수 있습니다. ! !

테스트 후 실제로 가능하지만 1~2초 정도 지연이 발생할 수 있습니다.

/////////////잘못된 내용이 있으면 정정해주세요! ! ! ! ! ! ! ! ! //////////////

/*Flash Player를 제어할 수 있는 js 메소드 목록이 첨부되어 있습니다*/

Play() ------------------------ 애니메이션 재생
StopPlay()-------------------------애니메이션 중지
IsPlaying()---------------------- 애니메이션 재생 여부
GotoFrame(frame_number)---------------- 특정 프레임으로 이동
TotalFrames()----------------------------------- 총 애니메이션 프레임 수를 가져옵니다
CurrentFrame()------------------현재 애니메이션의 프레임 번호를 반환합니다 -1
Rewind()----------------------------애니메이션을 첫 번째 프레임으로 되돌립니다.
SetZoomRect(left,top,right,buttom)------지정 영역 확대
확대/축소(퍼센트)---------------------------------애니메이션 크기 변경
Pan(x_position,y_position,unit)------------애니메이션을 x, y 방향으로 이동시킵니다
PercentLoaded()---------------로드되는 애니메이션의 백분율을 반환합니다.
LoadMovie(level_number,path)------------ 애니메이션 로드
TGotoFrame(movie_clip,frame_number)- movie_clip은 지정된 프레임 번호로 이동합니다.
TGotoLabel(movie_clip,label_name)------ movie_clip은 지정된 라벨로 이동합니다.
TCurrentFrame(movie_clip)--------------- movie_clip의 현재 프레임을 반환합니다 -1
TCurrentLabel(movie_clip)----movie_clip의 현재 레이블을 반환합니다
TPlay(movie_clip)----------------------------movie_clip 재생
TStopPlay(movie_clip)---------movie_clip 재생 중지
GetVariable(variable_name)----변수 가져오기
SetVariable(variable_name,value)------------변수 할당
TCallFrame(movie_clip,frame_number)---지정된 프레임에서 작업 호출
TCallLabel(movie_clip,label)---지정된 라벨에 대한 작업 호출
TGetProperty(movie_clip,property)---------movie_clip의 지정된 속성을 가져옵니다
TSetProperty(movie_clip,property,number)-movie_clip의 지정된 속성을 설정합니다

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.