2

私は FDT の初心者です。javascript 変数の値を FDT コードに渡したいと思っています。やり方がわかりません。

HTML コード:

<a id="player" href="javascript:void(0)" data-id="02">ABCD</a>

Javascript コード:

$('.list a').click(function(){ 
  var id = $(this).data("id");
}

FDT には、ID 02 の SWF ファイル リンクがあります。

または、それを行う別の方法はありますか?私を助けてください。

よろしくお願いします。

4

2 に答える 2

2

javascriptからの関数呼び出しをキャッチするには、swfでExternalInterfaceを使用する必要があります

import flash.external.ExternalInterface;

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

function changeTheText(t:String):void {
    txtText.text = t;
}

JavaScript コード

var flashObj = document.getElementById('flashObject');
<a href="#" onClick="flashObj.changeText('it works!');">Click me!</a>

例: http://www.hardcode.nl/archives_155/article_334-call-javascript-function-from-as3-and-viceversa.htm

「javascript/as3 ブリッジ」を Google で検索します。

于 2013-05-10T13:34:02.907 に答える
0

@bFunc が言及したことに加えて、onclick可能であればアンカー タグの外でイベントを実行することをお勧めします。HTMLコードに埋め込むのではなく、JSを介してアクションを受け取る要素をターゲットにするのが最善だと思います. flashObj.changeTextこのようにして、呼び出しを でラップしてtry/catchJS エラー (発生する可能性があります) を回避し、エラーを適切に処理できます (つまり、ユーザーが Flash Player をインストールしていない場合など、SWF が使用できないかロードされていない場合)。

例えば:

HTML コード:

<a id="flash_bridge_link" href="#" onclick="javascript:void(0)">Click Me</a>

Javascript:

var flashLink = document.getElementById("flash_bridge_link");
var flashObj = document.getElementById("flashObject");
flashLink.onclick = function () {
    try {
        flashObj.changeText("it works!");
    } catch (error) {
        // Handle error as needed.
    }
}

それが役に立てば幸い!

于 2013-05-10T13:50:25.947 に答える