(15)S2Flex2の実装例(as側)

ブログ書くのにInternalServerErrorとかやめてほしいな〜。はてながんばれ!


as側の実装方法を紹介します。
nodさんに快諾頂きましたので、
S2Flex2のサイトにあるサンプル(足し算アプリ)を見ながら、実装方法を見てみます。

サンプルは、S2Flex2 - AMF3Gateway with DI Container -の一番下の方に[S2Flex2 Example s2Flex2-1.0.0対応]。

サンプルの設置方法もありました。すごいっ!
AKABANA - S2Flex 2 - how to setup the example programs


まず、アプリケーションMXML





    
      
      
      
      
      
      
   

S2Flex2Serviceの部分↓

ここには書かれてませんが、同タグ内で、gatewayUrlを指定するのもアリだと思います。
例えば、

ちなみにGatewayの指定方法は3通りあります。
http://s2flex2.sandbox.seasar.org/ja/components/api/


次に、asファイル。

//ActionScript File
import examples.flex2.add.dto.AddDto;
import flash.events.Event;

import mx.controls.Text;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.utils.ObjectUtil;

public function calculate():void
{
  var addDto:AddDto = new AddDto();
  addDto.arg1=int(arg1_txt.text);
  addDto.arg2=int(arg2_txt.text);
  amf.calculate2(addDto);
}

public function onResult(ret:ResultEvent):void
{
  var retObj:AddDto = ret.result as AddDto;
  ans_txt.text=retObj.sum.toString();
}
public function onFault(ret:FaultEvent):void
{
  ans_txt.text=ObjectUtil.toString(ret.fault);
}

こちらのasファイルは、
enterボタンを押した時の関数と、RemotingServiceを実行したあとの結果コールバック関数が書かれています。
アプリケーションMXML内に記述してもよいですが、ファイルを分けたほうがすっきりします。

サーバー側サービスを実行しているのは、↓

  amf.calculate2(addDto);

です。
メソッド名は、実行させたいjavaメソッド名と同じです。


あと、AddDtoなのですが、普通のアクセッサなのですが、java側のDtoと合わせるために、クラスの宣言直前にメタをつけます。

  [RemoteClass(alias="examples.flex2.add.dto.AddDto")]
  public class AddDto {
    ・・・

プロパティ名もjavaに合わせます。


あ、そうそう
今週末はteraさんという方のpv3d勉強会がスタートするということで、
makoche(うちのボス)作のPapervision3dをFlex2でビルド予習しました!おんもしろい!
でも、SpriteとかCamera3Dとか面食らっちゃいました。mxml以外の画面周りってほとんどな〜んにもわかってないんですけど(汗。

私のパターン会(身内ノリ)と毎日勉強会(このブログです)と、恐らく開催するであろうFxUG勉強会@大阪と、pv3d寺子屋。。。受験生かよっ!
焦らず成長したいと思います。


次回は、S2Flex2の実装例(java側)です。

引用:
S2Flex2 Example s2Flex2-1.0.0対応