Flex-Ajax Bridgeを使ってみる

| コメント(0) | トラックバック(0)
今までJavaScriptとActionScript間の処理をさせるには、ExternalInterface を使って呼び出せるメソッドをわざわざ作らないといけなかった。この場合、作業が増えてしまう。

ここで、Adobe Labsからつい最近卒業したばかりのFlash-Ajax Bridgeがすばらしく役に立つ。

1.Flex側の手順
まず、FABridge.asをFlexにimportする
メインのmxmlに<fabs:FABridge xmlns:fabs="bridge.*" />と入力してFABridgeを読み込む

2.HTML側の手順
HTML側でFABridge.jsをimportする
1番で作成したSWFファイルをEmbedする

<object id="flexApp" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,5,0,0" height="240" width="320">
 <param name="flashvars" value="bridgeName=presentationLive"/>
 <param name="src" value="PresentationLive.swf"/>
 <embed name="flexApp" pluginspage="http://www.macromedia.com/go/getflashplayer" src="PresentationLive.swf" height="240" width="320" flashvars="bridgeName=presentationLive"/>
</object>


JavaScriptで下記のように書いたら、SWF内のメソッド、変数などにアクセスできてしまう

<script language="Javascript" type="text/javascript">
  function sendAuthRequest(){
 flexApp = FABridge.presentationLive.root();
 var authCallback = function(event){
        alert(event.getData().status+" : "+event.getData().session+" : "+event.getData().id);
          session = event.getData().session;
        host_id = event.getData().id;

        startLive(); //start broadcasting live
   }
   flexApp.getAuth().addEventListener("LoginResult", authCallback);
   flexApp.login(document.getElementById("email").value,document.getElementById("password").value);
 }
    
 function startLive(){
        flexApp.enterRoom('create',host_id,session);
  }
</script>


詳細はAdobeのFABridgeページ


トラックバック(0)

トラックバックURL: http://www.koba206.com/cgi-bin/mt/mt-tb.cgi/11

コメントする