2010-12-19 4 views
2

"점수"클래스와 setValue() 클래스가있는 "게임"패키지가 포함 된 플래시 파일이 있습니다. 나는 그 메소드를 호출 할 수있는 Javascript 라인을 작성하고 싶다. 누군가 나를이 튜토리얼로 안내했지만, 아직도 약간 혼란 스럽다.Javascript를 사용하여 플래시 (.swf) 파일 내의 메소드를 호출합니까?

Javascript: alert("start"); var so; so = document.embeds[0]; 
so.addParam("allowScriptAccess","always"); import flash.external.ExternalInterface; 
ExternalInterface.call("setValue[2600]"); 
  1. 은 참으로
  2. 변수에 포함 된 플래시 파일을 저장 실행하기 시작했다고 표시 말해에게 경고 및 세트는
  3. 이 메소드를 호출 클래스
  4. 수입에 액세스

이 수업이 어떻게 작동하는지 잘 모르시겠습니까? 이것은 내가 그 사이트에서 나올 수있는 작은 조각 일 뿐이지 만 어떻게 작동하는지 완전히 이해하지 못합니다. 이 사이트는 http://bytes.com/topic/flash/answers/694359-how-do-i-access-flash-function-using-javascript입니다. 가져 오기를 사용하여 코드를 실행해도 아무 일도 일어나지 않지만 그 진술이 없을 때 경고가 나타납니다.

누군가 내가 그 방법을 어떻게 부르는지를 자세히 설명 할 수 있다면, 나는 매우 감사 할 것입니다! :)

답변

6

여기에있는 코드에는 JavaScript와 ActionScript가 혼합되어 있습니다.

ActionScript에서는 외부 사용을 위해 setValue 함수를 등록해야하므로 JavaScript에서 호출 할 수 있습니다.

package game 
{ 
    import flash.display.Sprite; 
    import flash.external.ExternalInterface; 
    import flash.text.TextField; 

    public class Scores extends Sprite 
    { 
     public var txtScore:TextField;  // A textfield in the sprite 

     public function Scores() 
     { 
      // Register the function for external use. 
      ExternalInterface.addCallback("setValue", setValue); 
     } 

     private function setValue(value:Number):void 
     { 
      txtScore.text = String(value); 
     } 

    } 

} 

를 그리고 자바 스크립트는 다음과 같이 보일 수 있습니다 : 그것은에 대한 코드는 다음과 같이 보일 수

var so = document.embeds[0]; 
so.setValue(2600); 
+0

동일한 단계를 수행했지만 JS 예외가 발생했습니다 : '속성을 읽을 수 없습니다'undefined의 setValue ' –

0

Adobe는 긴하지만 유용한 예를 here와 문서를 가지고있다. 여기에는 ActionScript는 물론 JavaScript도 표시되며 두 가지 방식으로 상호 작용할 수있는 방법을 보여줍니다.

관련 문제