2011-06-12 2 views
0

이 문제가 해결되면 도움을 주시면 대단히 감사하겠습니다. 나는 이틀 동안 그 일을 해왔으며이 문제를 해결할 수 없었다. ExternalInterface API를 통해 JavaScript에서 AS3 함수를 호출하려고하는데, 전혀 작동하지 않습니다. html로로드 된 swf로 JavaScript 함수 양식을 호출하면 멋지게 작동합니다.ActionScript 3 외부 인터페이스 콜백이 작동하지 않습니까?

나는이 자습서를 다음입니다 : 내가 사업부로 SWF를로드하는 데 SWFObject를 사용하고 http://www.viget.com/inspire/bi-directional-actionscript-javascript-communication/

.

자바 스크립트 코드 :

<script type="text/javascript"> 
swfobject.embedSWF("testRun.swf", "myContent", "550", "400", "9.0.0"); 

function getFlashMovie(movieName) 
{ 
    var isIE = navigator.appName.indexOf("Microsoft") != -1; 
    return (isIE) ? window[movieName] : document[movieName]; 
} 

function callFlash(flash) 
{ 
    //alert(flash); 
    getFlashMovie(flash).sendToFlash();   
} 
</script> 

AS3 코드 :

import flash.external.*; 
import flash.events.*; 
import flash.text.*; 

자바 스크립트가 THEN 시간 시간 후 init 함수

ExternalInterface.addCallback("sendToFlash", init); 

function init():void 
{ 
var txt:TextField = txtField(); 
txt.appendText("LOOK AT ME!!!"); 
addChild(txt); 
} 

function txtField():TextField 
{ 
var txt:TextField = new TextField(); 
txt.x = 25; 
txt.y = 25; 
txt.width = 200; 
txt.height = 150; 
txt.border = true; 
txt.text = "INIT "; 
return txt; 
} 
+0

callFlash() 함수를 호출하는 코드를 게시 할 수 있습니까? – grapefrukt

답변

1

를 호출 SENDTOFLASH를 호출, 내가 관리해야 문제를 해결했습니다. 내 코드에 아무런 문제가 없었습니다. 로컬 시스템의 플래시 플레이어 보안 설정이 원인이었습니다. 플래시 재생 설정을 사용하여 신뢰할 수있는 사이트에 swf를 추가하는 대신 전체 폴더를 포함 시켰으며 지금은 매력처럼 작동합니다.

당신은 설정을 변경에 대한 두 가지 방법으로 갈 수는 : 당신이 HTML 파일을 열 때 1. 플래시 플레이어 글로벌 보안 상자가 html로 열린 2. 팝

내가 설정을 변경하는 방법입니다 파일을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 '전역 설정 ...'옵션을 선택하십시오.

설정 패널이 열리면 네 개의 탭이 표시됩니다.

저장 | 캐머와 마이크 | 재생 | 고급

로 이동 "... 폴더 추가" 클릭에 "추가 ..."당신은 같은 파일 폴더를 찾으에에 '고급'탭 클릭 "신뢰할 수있는 로컬 설정 ..." 클릭 html과 swf가 있습니다. 에 를 클릭 "닫기"

에 클릭 "확인"그리고 이미 다음 브라우저를 새로 열 경우 지금, 당신의 HTML 파일을 열 Flash Player의 전역 설정 패널을

을 닫습니다. 이제는 모두 작동해야합니다.

+0

그리고 거기에 내 코드가 올바르지 않다고 생각하고 있었다 !! – Combustion007

관련 문제