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의 지정된 속성을 설정합니다