0

나는 myMethod() {} 메소드를 가지고 있는데, javacript에 액세스 가능하게 만들고 싶습니다. 나는 약간의 연구를 수행하고 ExernalInterface에 콜백을 추가 할 필요가 발견, 그래서 여기에 내가 한 일입니다 :Flash/ActionScript3의 Exernal Interface에 콜백을 추가 할 때 참조 문제가 발생했습니다.

ExternalInterface.addCallback("invokeMyMethod", myMethod); 

을 지금은 그것에 플래시를 사용하여 내 웹 페이지를로드 할 때, 나는 얻을 오류 :

ReferenceError : 오류 # 1065 : 변수 myMethod가 정의되지 않았습니다.

package { 
    import flash.external.ExternalInterface; 
    import flash.events.Event; 
    //import a bunch of other things... 

    if(ExternalInterface.available) { 
     ExternalInterface.addCallback("invokeMyMethod", myMethod); 
    } 

    public class Main extends Sprite { 
     //A bunch of other methods... 

     public function myMethod(str:String):void { 
     //Do something here 
     } 
    } 
} 

내가 어떻게 만드는 단서가 없다 : 글로벌 $ 초기화에서 주 $의 cinit에서 () 는()

MyMethod라는 여기 Main.as는 모습입니다 ... 메인 클래스에 포함되어 ExernalInterface.addCallbackmyMethod이 존재한다는 사실을 깨닫습니다. 누구든지 아이디어가 있습니까?

감사합니다,
매트

답변

0

야곱의 대답은 잘. 그러나 지금은 정적 메서드에서 비 정적 변수에 액세스를 시도 되었기 때문에 다른 오류를 생성 ... 그래서 난이 시도 :이처럼 내 주 클래스로

if(ExternalInterface.available) { 
     ExternalInterface.addCallback("invokeMyMethod", myMethod); 
    } 

: 나는 이동

을 :

package { 
    import flash.external.ExternalInterface; 
    import flash.events.Event; 
    //import a bunch of other things...  

    public class Main extends Sprite { 
     //A bunch of other methods... 

     if(ExternalInterface.available) { 
     ExternalInterface.addCallback("invokeMyMethod", myMethod); 
     } 

     public function myMethod(str:String):void { 
     //Do something here 
     } 
    } 
} 

그리고 그것은 잘 작동

0

귀하의 MyMethod라는 기능은 메인 클래스의 내부이지만, (은 if 문에서) 그것을 참조 아니다.

ExternalInterface.addCallback("invokeMyMethod", Main.myMethod); 

을 또는 당신이 어딘가에 홈페이지의 인스턴스가있는 경우, 당신은 쓸 수 있습니다 : 당신이 MyMethod라는 정적 한 경우, 다음 다음 addCallBack 문은 다음과 같을 수 위의 작품

ExternalInterface.addCallback("invokeMyMethod", myObj.myMethod); 
+0

가 정적 만드는 그것보다 다른 할 다른 방법이 있나요? 퍼팅 시도 : ExternalInterface.addCallback ("invokeMyMethod", Main.myMethod); Main 클래스에서 여전히 동일한 참조 오류가 발생합니다. 다른 작업을 생각할 수 없습니다. – Matt

+0

정적 btw 그 오류 없애 버렸지 만 다른 것들을 만들었습니다, 그 이유는 내가 그것을 정적 수 있도록 할 수 싶습니다. – Matt