0

私は今では静かに絶望しています。

ここにいる他の多くの人と同じように、externalinterface を自分のページで動作させるようにしています。私が何をするか、どのようにコードを正しい方法で変更するかは問題ではありません.FirefoxまたはChromeから常に「メソッドがありません」というレポートが表示されます!

jQueryを介してHTMLの「再生」リンクを使用して、Flash内で再生機能をトリガーしようとしています。私は理解できません、何がうまくいかないのですか!

Flash CS6 の AS3.0 (サウンド ファイルの再生 - Flash 内では問題なく、正常に再生されます):

import flash.external.ExternalInterface;

ExternalInterface.addCallback("playMusicJS", playMusic);

function playMusic(evt:MouseEvent):void {
  soundChannel.stop();
  soundChannel = sound.play();
  soundTimer.start(); // volume levels and time
  INSTPlayPause.gotoAndStop(2);
  soundChannel.addEventListener(Event.SOUND_COMPLETE, soundComplete);
  INSTPlayPause.INSTPauseBTN.addEventListener(MouseEvent.CLICK, pauseMusic);
}

Javascript (jQuery):

$(document).ready(function() {
  $('#play').click(function() {
    // var flash = document.getElementById("ASPlayer"); // tried as well - no luck
    var flash = $('#ASPlayer').get(0)
    flash.playMusicJS();
    alert("TEST");
  });
});

および HTML:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="350" height="30"     id="ASPlayer" title="Player">
  <param name="movie" value="../_flash/TEST -ExternalInterface-.swf">
  <param name="quality" value="high">
  <param name="wmode" value="opaque">
  <param name="swfversion" value="11.0.0.0">
  <param name="expressinstall" value="../_flash/expressInstall.swf">
  <param name="allowScriptAccess" value="always" />
  <!--[if !IE]>-->
  <object type="application/x-shockwave-flash" data="../_flash/TEST -ExternalInterface-.swf" width="350" height="30" id="ASPlayer" title="Player">
    <!--<![endif]-->
    <param name="quality" value="high">
    <param name="wmode" value="opaque">
    <param name="swfversion" value="11.0.0.0">
    <param name="expressinstall" value="../_flash/expressInstall.swf">
    <param name="allowScriptAccess" value="always" />
    <!-- -->
    <embed src="../_flash/TEST -ExternalInterface-.swf" width="350" height="30" name="ASPlayer" quality="high" wmode="opaque" >
    <!-- -->
    <div>
      <p>Content on this page requires a newer version of Adobe Flash Player.</p>
      <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" width="112" height="33" /></a></p>
    </div>
    <!--[if !IE]>-->
  </object>
  <!--<![endif]-->
</object>
<p><a href="#" id="play">play</a></p>
</body>
<script type="text/javascript" src="TEST.js"></script>
</html>

DOM の読み込み順序の問題かもしれないと思ったので、関数を呼び出す順序やドキュメント内のファイルを配置する場所の組み合わせをたくさん試しましたが、うまくいきませんでした。

その問題に関する他のユーザーによるほとんどのエントリもチェックして試してみましたが、それでもうまくいきませんでした! アイデアやヒントをいただければ幸いです:)!

ドイツのベルリンから最高の願いを!

4

1 に答える 1

0
  1. スクリプトがページに取り込まれていることを確認してください。確認する方法の 1 つは、Chrome デバッガー/FireFox Firebug の [ソース] タブを使用してファイルを検索することです。

  2. jQuery をインクルードした後にスクリプトをインクルードしたことを確認してください。これは、jQuery に依存していることが最も確実だからです。

  3. jQuery ライブラリが 1 つだけ含まれていることを確認してください。複数のバージョンを含めると、問題が発生する可能性があります。

  4. オーバーライドしている他のライブラリがある場合$、コードは機能しません。これ$は、エイリアスではないためですjQueryjQuery.noConflict()同じ変数を使用するページ上の他のライブラリとの競合を避けるために使用できます$

于 2013-03-11T09:32:14.480 に答える