2012-08-03 2 views
0

자바 스크립트를 통해 플래시 버튼 클릭 이벤트를 실행할 수 있습니까?자바 스크립트로 화재 액션 스크립트 버튼

내 코드 그것은`, 그리고 난 자바 스크립트에서 fromJS()를 호출하고 아무 문제없이 발사하지만,이 기능의 포함 :

myButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); 

이 작동하지 않습니다!

package 
{ 

import flash.external.*; 
import flash.net.FileReferenceList; 
import flash.display.MovieClip; 
import flash.events.MouseEvent; 
import flash.system.Security; 

public class MultiSelectClass extends MovieClip 
{ 
    private var fileRef:FileReferenceList; 

    function MultiSelectClass() 
    { 
     Security.allowDomain("*"); 
     myButton.addEventListener(MouseEvent.CLICK, myButtonClick); 
     addCallbacks(); 
    } 

    private function addCallbacks():void 
    { 
     if (ExternalInterface.available) 
     { 
      ExternalInterface.addCallback("sendToFlash", fromJS); 
     } 
     return; 
    } 

    function myButtonClick(ev:MouseEvent):void 
    { 
     fileRef = new FileReferenceList(); 
     fileRef.browse(); 
    } 

    private function fromJS():void 
    { 
     myButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); 
    } 

    private function sendToJS():void 
    { 
     if (ExternalInterface.available) 
     { 
      ExternalInterface.call("alert","Hello as3"); 
     } 
    } 
} 
} 
+0

trace 문을 myButtonClick 함수에 넣어 호출되는지 확인하십시오. – BadFeelingAboutThis

+0

또는 'fromJS()'함수에서 직접 myButtonClick (null)을 호출하고 click 이벤트를 모두 디스패치하는 것을 잊어보십시오. – BadFeelingAboutThis

+0

실제로 플래시 버튼을 클릭하면 작동합니까? – BadFeelingAboutThis

답변

2

당신은이 ExternalInterface 클래스를 사용하여 콜백 핸들러를 추가 할 수있는 기능이있다. 플래시 측면과 같을 것이다 :

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

는 그런 다음 자바 스크립트에서, 당신은 단지 flashObject에서 해당 메서드를 호출합니다. 당신이 실제없이 파일 브라우저를 팝업 못하게 보안상의 이유로 의견 -

플래시 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html

- 귀하의 문제 : 다음

mySwfObject.fromJS(); 

는 공식 어도비 문서에 대한 링크입니다 마우스를 클릭하면 수동으로 마우스 이벤트를 보내지 않아도 바보가되지 않으며 이에 대한 해결 방법이 없습니다. 사용자는 실제로 파일 브라우저를 불러 오려면 (또는 플래시 앱을 전체 화면으로) 플래시 버튼을 클릭해야합니다.

+0

고마워, 나는 그것을했다. 그러나 그것은 작용하지 않는다! ExternalInterface와 함께 나는 ActionScript 함수를 호출 할 수 있지만 fire button click 이벤트는 할 수 없다. –

+0

javascript에서 fromJS()를 호출하면 아무 문제없이 호출되지만이 함수를 포함한다. myButton.dispatchEvent (new MouseEvent (MouseEvent.CLICK)); 이 작동하지 않습니다! –

+0

그러면 문제는 자바 스크립트가 아니라 플래시 코드와 관련이 있습니다. 클릭 이벤트가 발생하지 않는다고 말하면 오류가 발생했거나 청취자가 이벤트를받지 못했다는 의미입니까? – BadFeelingAboutThis