2011-11-14 15 views
0

、私はjavascriptのjavascript関数からの呼び出しフラッシュ機能ではなく、ボタン

http://www.viget.com/inspire/bi-directional-actionscript-javascript-communication

を通じてActionScript 3の関数を呼び出すために、このコードを使用していると私はjavascript関数からacrionscript 3関数を呼び出したいですボタン操作ではできません。

どうすればよいですか?感謝! ありがとう!

ActionScriptコード:

//call to javascript 
ExternalInterface.call("sendToJavaScript"); 

//call from javascript 
ExternalInterface.addCallback("sendToActionscript", callFromJavaScript); 


function callFromJavaScript(dir):void 
{ 
    if(dir == 'right') 
    { 
    var tweenR = new Tween(box, 'x', None.easeNone, box.x, 145, 1, true); 
    } 
    if(dir == 'left') 
    { 
    var tweenL = new Tween(box, 'x', None.easeNone, box.x, 23, 1, true); 
    } 
} 

JavaScriptコード:私は体内でこのようにそれを呼び出してみましたが、それはうまくいきませんでした

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

function callToActionscript(str) 
{ 
    getFlashMovie("nameOfFlashMovie").sendToActionscript(str); 
} 

HTMLボタン

<form action="javascript:callToActionscript('asjs', 'left')" id="form1"> 
      <input type="submit" value="&lt;--" /> 
     </form> 

<script type="text/javascript" language="javascript">  
callToActionscript('asjs', 'left'); 
</script> 

答えて

1

あなたのJavaScriptは失敗していませんが、2つの文字列をcallToActionscript関数に渡していて、1つしか期待していません。その結果、文字列 "asjs"をFlashに送り、callFromJavascript関数は "left"または "right"だけを期待しているので、何もしません。また、あなたはスクリプトタグでlanguage="javascript"を必要としない

<script type="text/javascript">  
    callToActionscript('left'); 
</script> 

はあなたが渡したい値だけでそれを試してみてください。すでに言語をMIMEタイプの一部として指定しています。

1
function callToActionscript(str) 
{ 
    getFlashMovie("nameOfFlashMovie").sendToActionscript(str); 
} 
window.action = callToActionscript('left'); 

あなたはこれを期待していますか?

+0

答えに感謝します:) – Asimina88

関連する問題