ExternalInterface に関する記事やフォーラムの投稿 (その多くは私自身のもの) が豊富にあることは知っていますが、もう 1 つ追加すると思います...
ExternalInterface の可用性をテストするように設定された小さなフラッシュ アプリ (ボタン) があり、うまく機能します。また、ExternalInterface を使用しようとしている、より大きく、より複雑なフラッシュ mp3 プレーヤーもあります。それはそれほどうまくいきません。問題は、どこに問題があるかということです。私の作業用 externalInterface コードは次のようになります。
import flash.external.ExternalInterface
myBtn.onRelease = function(){
chkAvail();
}
function chkAvail() {
var myText:TextField = this.createTextField('myText', this.getNextHighestDepth(), 100, 100, 300, 21);
ExternalInterface.call("alert",'EI works!!");
myText.text = String(ExternalInterface.available);
}
そして、そのすべてがうまく機能します。私の mp3 プレーヤー コードは次のようになります (抜粋、ここに投稿された完全なコード):
import flash.external.ExternalInterface;
そして、javascriptを呼び出したい場所-
function loadPlaylist(){
//attempting to make external js call
ExternalInterface.call("alert", "Hello World!1");
//
track_display_mc.display_txt.text = LOADING_PLAYLIST_MSG;
if(track_display_mc.display_txt._width>track_display_mc.mask_mc._width){
track_display_mc.onEnterFrame = scrollTitle;
}else{...
では、なぜ最初のものは機能し、2 番目のものは機能しないのでしょうか? htmlから正しく呼び出しているような気がします。flash.external.ExternalInterface のインポートに問題がある可能性はありますか? 実際のアクションスクリプトではなく、.as がインポート/インクルードされる .flv にそれを含める必要がありますか? すべてのヘルプ/アイデアは大歓迎です...