1

ActionScript3 を使用して Javascript を実行しようとしています。

これは、ボタンにバインドされたコードです。

import flash.external.ExternalInterface;

function call_javascript(evt:MouseEvent):void {
ExternalInterface.call("alert", "JS");
}

js_btn.addEventListener(MouseEvent.MOUSE_UP, call_javascript);

これは私のHTMLです:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" id="js" align="middle">
    <param name="movie" value="js.swf" />
    <param name="quality" value="high" />
    <param name="bgcolor" value="#ffffff" />
    <param name="play" value="true" />
    <param name="loop" value="true" />
    <param name="wmode" value="window" />
    <param name="scale" value="showall" />
    <param name="menu" value="true" />
    <param name="devicefont" value="false" />
    <param name="salign" value="" />
    <param name='AllowScriptAccess' value='always'/>
    <!--[if !IE]>-->
    <object type="application/x-shockwave-flash" data="js.swf" width="550" height="400">
        <param name="movie" value="js.swf" />
        <param name="quality" value="high" />
        <param name="bgcolor" value="#ffffff" />
        <param name="play" value="true" />
        <param name="loop" value="true" />
        <param name="wmode" value="window" />
        <param name="scale" value="showall" />
        <param name="menu" value="true" />
        <param name="devicefont" value="false" />
        <param name="salign" value="" />
        <param name="allowScriptAccess" value="always" />
    <!--<![endif]-->
        <a href="http://www.adobe.com/go/getflash">
            <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Scarica Adobe Flash Player" />
        </a>
    <!--[if !IE]>-->
    </object>
    <!--<![endif]-->
</object>

ボタンを押しても何も起こらないのですが、なぜですか? FlashProfessional CS6 を使用しています

4

1 に答える 1

2

call() メソッドは、js 関数名と引数を個別のパラメーターとして受け取ります。

これを試して:

ExternalInterface.call("alert", "JS");

EDIT : HTML ページでスクリプト アクセスを許可する必要もあります。

これを SWF のコンテナ HTML ページに追加します。

<param name='AllowScriptAccess' value='always'/>

例えば:

<object id='MyMovie.swf' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.adobe.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0' height='100%' width='100%'> 
<param name='AllowScriptAccess' value='always'/> 
<param name='src' value=''MyMovie.swf'/> 
<embed name='MyMovie.swf' pluginspage='http://www.adobe.com/go/getflashplayer' src='MyMovie.swf' height='100%' width='100%' AllowScriptAccess='never'/> 
</object> 

編集 2:これをローカルで実行すると、ファイルがローカルの信頼できるセキュリティ サンドボックスに属している場合にのみ機能します。ドキュメントから:

ローカルで実行されている SWF ファイルの場合、これらのメソッドの呼び出しは、SWF ファイルとそれを含む Web ページ (存在する場合) がローカルで信頼されたセキュリティ サンドボックスにある場合にのみ成功します。コンテンツが local-with-networking または local-with-filesystem サンドボックスにある場合、これらのメソッドの呼び出しは失敗します。

于 2013-09-12T15:38:05.947 に答える