SeasarCon終了とT2のデモ
SeasarConference Autumnが無事終了しました。
参加者も約450名と雨の中、多くの方に来場頂きありがとうございました。
T2チームとしては2枠頂きました。
1枠目のT2自体の詳細
http://d.hatena.ne.jp/shot6/20090913#1252791997
大谷さん、お疲れ様でした。T2の今後がうまく伝わったのではないかと思います。
T2 HaclsのデモT2Piano
T2で登壇した際のT2Pianoのデモの画面とクライアント側のソースを載せておきます。
クライアントJavaFX
デモの動きの詳細について
JavaFXのソース
JavaFXでAMF通信する際のソースです。
BlazeDSを利用する場合とT2AMFを利用する場合と2パターン載せておきます。
sliderを動かすとテツの画像がクルクル回りながらサーバ側とAMF通信し、ピアノの音を鳴らします。
/* * T2Piano.fx * * yone098 */ package piano; import javafx.ext.swing.SwingLabel; import javafx.ext.swing.SwingSlider; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import javafx.scene.Scene; import javafx.stage.Stage; // for t2amf connection import org.t2framework.t2.format.amf.client.AmfConnection; // BlazeDSのRemotingMessageを利用してAMF通信 function callPianoByBlazeDS(val: Number) { var con:AMFConnection = new AMFConnection(); con.addHttpRequestHeader("Content-Type", "application/x-amf"); con.connect("http://localhost:8989/t2-piano/t2.amf"); var remoting:RemotingMessage = new RemotingMessage(); remoting.setClientId(UUIDUtils.createUUID()); remoting.setDestination("javapiano"); remoting.setOperation("play"); var paramList:flex.messaging.io.ArrayList = new flex.messaging.io.ArrayList(); paramList.add(val); remoting.setParameters(paramList); var response:Object = con.call("null", remoting); if (response instanceof AcknowledgeMessage) { var ack:AcknowledgeMessage = response as AcknowledgeMessage; var body: Object = ack.getBody(); if (body instanceof Integer) { var ret: Number = body as Number; println("sucess return from t2piano:{ret}"); } else { label.text = "BlazeDS error!"; } } else { label.text = "BlazeDS error!"; } }; var slider:SwingSlider = SwingSlider { layoutY: 400 minimum: 0 maximum: 1000 value: 3 vertical: false onMouseDragged: function(e) { if (e.dragX mod 5 == 0) { // T2AMFを利用する場合 var t2amf: AmfConnection = new AmfConnection(); t2amf.setDestination("javapiano"); t2amf.setOperation("play"); t2amf.connect("http://localhost:8989/t2-piano/t2.amf"); t2amf.callAmf(e.dragX); // BlazeDSを利用する場合は以下 // callPianoByBlazeDS(e.dragX); } } } var label:SwingLabel = SwingLabel { layoutY: 380 text: "T2Piano" width: 350 } Stage { title: "JavaFX-T2Piano" width: 350 height: 370 scene: Scene { content: VBox { content: [ label, slider, ImageView { image: Image { url: "{__DIR__}tetsu.png" width: 300 height: 300 } rotate: bind slider.value }, ] } fill: Color.WHITE } }
まとめ
参加して頂いた皆様、スピーカの皆様、そしてスタッフの皆様本当にありがとうございました。
T2チームの皆さんもお疲れ様でした、楽しかったです。
また、技術評論社様、ソフトバンククリエイティブ様、献本ありがとうございました。