< script type="text/javascript"> ; //1. Json을 사용하여 변수, 매개변수 및 속성을 초기화합니다. var flashvars = { name1: "hello", name2: "world ", name3: "foobar" }; var params = { menu: "false" }; var attribute = { id: "dynamicContent2" , 이름: "dynamicContent2" }; swfobject.embedSWF("test6_flashvars.swf", "content2", "300", "120", "6.0.0", "expressInstall.swf" , flashvars, params, attribute); //2. 기존 초기화 설정, 효과는 동일합니다. var flashvars = {}; flashvars.name1 = "hello"; flashvars.name2 = "world"; flashvars.name3 = " foobar"; var params = {}; params.menu = "false"; var 속성 = {}; 속성. id = "dynamicContent3"; attribute.name = "dynamicContent3"; swfobject.embedSWF("test6_flashvars.swf", "content3", "300", "120", "6.0.0", "expressInstall.swf", flashvars, params, attribute) ; ///3. 엉성하지 않고 간결하고 강력하게 한 문장만 뒤에 직접 작성하세요. swfobject.embedSWF("test6_flashvars.swf ", "content5", "300", "120", "6.0.0", "expressInstall.swf", {name1:"hello",name2:"world",name3:"foobar"}, { menu:"false"}, {id:"dynamicContent5",name:"dynamicContent5"});
개인적으로는 위의 세 번째 작성 방법을 선호합니다. 아래에서 언급하겠지만 HTML 코드에 Flash를 삽입했습니다. 파일의 최종 해결책은 swfobject.embedSWF()를 호출하는 세 번째 스타일을 채택하는 것입니다. V2.1 버전의 스타일은 최신 JS 스타일과 매우 일치하며 코드가 더욱 간결해 보입니다.
이전 기사에서 채택한 솔루션은 대부분의 요구를 충족할 수 있는 것으로 보이며 호환성도 괜찮은 것 같습니다. 대부분의 친구의 요구를 충족할 수 있어야 하며 괜찮은 솔루션이 아닐 수도 있습니다. . 그런데 제가 발견한 비교적 극단적인 상황은
코드 복사코드는 다음과 같습니다.
new SWFObject("http://www.pec365.com/Flash/20071113.swf", "mymovie", "304", "367", "7", "#FFFFFF");
수신되는 플래시 파일의 주소가 틀리거나 플래시 파일이 서버에서 삭제된 경우 가장 보기 싫은 상황이 발생하게 됩니다. 예 다음과 같습니다.
코드 복사코드는 다음과 같습니다.
DEMO
< / head>
이 코드를 직접 실행해 보시는 것이 좋습니다. 초보자인 경우 이전 글에서 소개한 단계를 참조하여 이 코드를 실행하고 "재난"이 닥쳐오는 것을 실감해 보세요.
예, 페이지가 비어 있는 것을 볼 수 있으며, 플래시를 표시할 수 없을 때 백업을 대체하는 데 원래 사용되었던 이미지도 어디로 갔습니까? 디버깅 후, 들어오는 플래시 파일 주소가 틀리더라도 잘못된 태그가 생성되고
[… ]
는 그 안에 있는 콘텐츠로 대체되므로 표시되는 내용은 높이와 너비가 각각 304px 및 367px인 빈 영역을 형성합니다. (Flash Player가 설치된 경우 왼쪽 상단에서 마우스 오른쪽 버튼을 클릭하세요. 화면 구석에서 당신에게 뭔가가 발견될 것입니다) 그래서 악몽이 찾아옵니다.
이 악몽 같은 결과를 해결하기 위해 먼저, 들어오는 플래시 파일 주소를 기반으로 파일이 실제로 서버에 존재하는지 확인하십시오. 파일이 존재하면 swfobject.embedSWF() 메서드를 실행합니다. 구체적인 아이디어는 XMLHttpRequest 객체를 사용하여 GET/HEAD를 통해 서버를 요청한 다음 xmlHttp.status == 200 || xmlHttp.status == 302를 확인하는 것입니다. 파일 기반으로 존재하지만 이 방법에는 여전히 특정 결함이 있는 것으로 보이며 아직 개선할 수 없습니다. 최종 해결 방법의 예는 다음과 같습니다.