読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

JavaScriptからFlexのAPIを呼び出すサンプル

FlexからJavaScript関数を呼び出す場合と同様、ExternalInterfaceを使います。


呼び出される側のswf :

package {

  import mx.utils.*;
  import flash.display.*;
  import flash.text.*;
  import flash.external.*;
  
  // JavaScriptからのメソッド呼び出しを受け付けるサンプル
  public class Sample extends Sprite  {
      
    private var stdout:TextField;
  
    public function Sample(){

      stdout = new TextField();
      stdout.width = 500;
      stdout.height = 500;
      addChild(stdout);

      // show メソッドを公開。
      ExternalInterface.addCallback( "show", show );
    }
    
    private function show( value:Object ):void {
      this.stdout.text = ObjectUtil.toString( value );
    }
    
  }
}

呼び出す側のhtml :

<html>
<head>
  <script>
    // swfのメソッドを呼び出す関数。
    function show(value) {
      // swfを取得し、公開メソッドを呼び出せばOK。
      // swfの取得先はブラウザごとに異なるらしいので分岐が必要。
      if (navigator.appName.indexOf("Microsoft") != -1) {
         window["swf"].show(value);
      } else {
         document["swf"].show(value);
      }
    }
  </script>
</head>
<body>
  <!-- メニュー。クリックでswfのAPIを呼び出す。 -->
  <div>
    <a href="javascript:show({string:'aaa',int:10});">aaa</a> | 
    <a href="javascript:show({string:'bbb',int:3});">bbb</a> | 
    <a href="javascript:show({string:'ccc',int:5});">ccc</a>
  </div>
  <!-- swf -->
  <object id='swf'
    classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'
    codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0'
    height='500' width='500'>
    <param name='src' value='bin/sample.swf'/>
    <param name='flashVars' value=''/>
    <embed name='swf' src='bin/sample.swf'
        pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash'
        height='100%' width='100%' flashVars=''/>
  </object>
</body>
</html>

実行結果はこちら