2010-12-19 41 views
2

私はクラス "スコア"とメソッドsetValue()を持つパッケージ "ゲーム"を含むフラッシュファイルを持っています。私はそのメソッドを呼び出すことができるJavaScriptのいくつかの行を記述したいと思います。誰かが私にこのチュートリアルを指示しましたが、私はまだちょっと混乱しています。Javascriptを使用してフラッシュ(.swf)ファイル内のメソッドを呼び出しますか?

Javascript: alert("start"); var so; so = document.embeds[0]; 
so.addParam("allowScriptAccess","always"); import flash.external.ExternalInterface; 
ExternalInterface.call("setValue[2600]"); 
  1. 表示し、それは確かに
  2. 変数に埋め込まれたFlashファイルを保存し、セットがクラス
  3. メソッド
  4. を呼び出し
  5. 輸入へのアクセスを実行し始めたことを私に伝えるために警告

このクラスの仕組みについてはわかりませんが、これはちょうど私がそのサイトから思いつくことができた小片であるが、私はそれがどのように機能するのかを本当に理解していない(しかし、最終的には期待している)。これはサイト:http://bytes.com/topic/flash/answers/694359-how-do-i-access-flash-function-using-javascriptです。インポートしてコードを実行すると何も起こりませんが、そのステートメントがないときにアラートが表示されますか?

誰かが私がその方法をどのように呼んでいるかについて詳しく述べることができれば、私は非常に感謝しています! :)

答えて

6

あなたが持っているコードは、JavaScriptとActionScriptの組み合わせです。

ActionScriptでは、JavaScriptから呼び出すことができるように、外部で使用するためにsetValue関数を登録する必要があります。

package game 
{ 
    import flash.display.Sprite; 
    import flash.external.ExternalInterface; 
    import flash.text.TextField; 

    public class Scores extends Sprite 
    { 
     public var txtScore:TextField;  // A textfield in the sprite 

     public function Scores() 
     { 
      // Register the function for external use. 
      ExternalInterface.addCallback("setValue", setValue); 
     } 

     private function setValue(value:Number):void 
     { 
      txtScore.text = String(value); 
     } 

    } 

} 

とJavaScriptはこのようなものになります::

var so = document.embeds[0]; 
so.setValue(2600); 
+0

私は同じ手順を実行しましたが、JS例外を取得しました: 'プロパティを読み取れません 'setValue' undefined' –

0

Adob​​eは長いが、有用な例hereとの文書を持っているが、それはこのような何かを見ることができるためのコード。 ActionScriptとJavaScriptだけでなく、双方向で対話できる方法を示しています。

関連する問題