<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>jp.ferv.blog &#187; Flex</title>
	<atom:link href="http://ferv.jp/blog/tag/flex/feed/" rel="self" type="application/rss+xml" />
	<link>http://ferv.jp/blog</link>
	<description>「ActionScriptは素晴らしい。コンパイルする価値がある。」って偉い人が言ってた。</description>
	<lastBuildDate>Sun, 15 Aug 2010 00:42:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>FlashCS4でFlexSDKを使う</title>
		<link>http://ferv.jp/blog/2009/05/17/flashcs4_flexsdk/</link>
		<comments>http://ferv.jp/blog/2009/05/17/flashcs4_flexsdk/#comments</comments>
		<pubDate>Sat, 16 May 2009 15:20:12 +0000</pubDate>
		<dc:creator>dsk</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://flabo.org/?p=623</guid>
		<description><![CDATA[FlexSDKで使える[SWF]/[Embed]とかのメタデータタグをFlashCS4でそのまま使うことができる。
			ActionScript		MetaDataTags	Source[SWF(backgroundC [...]]]></description>
			<content:encoded><![CDATA[<p>FlexSDKで使える[SWF]/[Embed]とかのメタデータタグをFlashCS4でそのまま使うことができる。</p>
	<ul class="syntax_hilite_header">		<li class="language">ActionScript</li>		<li class="filename">MetaDataTags</li>	<li class="source"><a href="#actionscript-2_plane" rel="shadowbox;">Source</a></li></ul><div class="syntax_hilite_planecode" id="actionscript-2_plane"><pre>[SWF(backgroundColor = 0x000000, width = 800, height = 600, frameRate = 30)]
[Embed(source="hoge.png")]</pre></div><div class="syntax_hilite">
<div id="actionscript-2">
<div class="actionscript actionscript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="br0">&#91;</span>SWF<span class="br0">&#40;</span><span class="kw3">backgroundColor</span> = 0x000000, <span class="kw3">width</span> = <span class="nu0">800</span>, <span class="kw3">height</span> = <span class="nu0">600</span>, frameRate = <span class="nu0">30</span><span class="br0">&#41;</span><span class="br0">&#93;</span></div></li>
<li class="li2"><div class="de2"><span class="br0">&#91;</span>Embed<span class="br0">&#40;</span>source=<span class="st0">&quot;hoge.png&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span></div></li>
</ol></div>
</div></div><br />
<p><a href="http://ferv.jp/blog/wp-content/uploads/2009/05/cs4_flexsdk_0.png" rel="shadowbox[post-623];player=img;"><img src="http://ferv.jp/blog/wp-content/uploads/2009/05/cs4_flexsdk_0-300x244.png" alt="cs4_flexsdk_0" title="cs4_flexsdk_0" width="300" height="244" class="alignnone size-medium wp-image-625" /></a><br />
編集 > 環境設定 > ActionScript > ActionScript3.0設定</p>
<p><a href="http://ferv.jp/blog/wp-content/uploads/2009/05/cs4_flexsdk_1.png" rel="shadowbox[post-623];player=img;"><img src="http://ferv.jp/blog/wp-content/uploads/2009/05/cs4_flexsdk_1-252x300.png" alt="cs4_flexsdk_1" title="cs4_flexsdk_1" width="252" height="300" class="alignnone size-medium wp-image-624" /></a><br />
FlexSDKパス</p>
<p>FlashDevelopとかFlexBuilderでコードガリガリ書いて、最終的にFlashCS4でデザイン入れとかするときに超便利。</p>]]></content:encoded>
			<wfw:commentRss>http://ferv.jp/blog/2009/05/17/flashcs4_flexsdk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IEでTextInputにCtrl＋Enterで改行されるバグ</title>
		<link>http://ferv.jp/blog/2008/10/19/ie_bug_textfield/</link>
		<comments>http://ferv.jp/blog/2008/10/19/ie_bug_textfield/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 12:06:44 +0000</pubDate>
		<dc:creator>dsk</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://flabo.org/?p=204</guid>
		<description><![CDATA[IE6/7で確認。
textinput_ie_ctrlenter.swf
上はFlexで書き出したSWFだけど、Flashの入力可能な単一行のTextFieldでも同様の動作。
IEの独自機能のショートカットとFl [...]]]></description>
			<content:encoded><![CDATA[<p>IE6/7で確認。</p>
<p><a rel="shadowbox;width=600;height=230;" href="http://ferv.jp/blog/wp-content/uploads/2008/10/textinput_ie_ctrlenter.swf">textinput_ie_ctrlenter.swf</a></p>
<p>上はFlexで書き出したSWFだけど、Flashの入力可能な単一行のTextFieldでも同様の動作。<br/>
IEの独自機能のショートカットとFlashPlayerの競合だと思うけど、いつまで放置してるんでしょう。</p>
<p>改行を削除しようにも改行が追加されたタイミングを、Event.CHANGEやFlexEvent.VALUE_COMMITで取得できないので、泥臭く消すしかないっていう。</p>
<p>Web内見回してみたところ、処理してるとこの方が少ないから気づかなかったってことでいいですか？</p>]]></content:encoded>
			<wfw:commentRss>http://ferv.jp/blog/2008/10/19/ie_bug_textfield/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BlazeDS - Messaging(Client)</title>
		<link>http://ferv.jp/blog/2008/07/17/blazeds_messaging_client/</link>
		<comments>http://ferv.jp/blog/2008/07/17/blazeds_messaging_client/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 06:05:55 +0000</pubDate>
		<dc:creator>dsk</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[BlazeDS]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://flabo.org/?p=142</guid>
		<description><![CDATA[BlazeDSの主要な機能の一つであるMessegingのクライアントサイドの処理について。

	
		srcを右クリックして、「新規 &#62; MXML アプリケーション」をクリック。「ファイル名」をmessaging.mxmlと入力して「終了」。
		
		
	
	
		クライアントの]]></description>
			<content:encoded><![CDATA[<p>BlazeDSの主要な機能の一つであるMessegingのクライアントサイドの処理について。</p>
<ol>
	<li>
		<p>srcを右クリックして、「新規 &gt; MXML アプリケーション」をクリック。「ファイル名」をmessaging.mxmlと入力して「終了」。</p>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-032.jpg" rel="shadowbox[post-142];player=img;"><img height="177" alt="ss_032" src="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-032-thumb.jpg" width="244" border="0" /></a>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-033.jpg" rel="shadowbox[post-142];player=img;"><img height="162" alt="ss_033" src="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-033-thumb.jpg" width="244" border="0" /></a>
	</li>
	<li>
		<p>クライアントの処理を書く。</p>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-034.jpg" rel="shadowbox[post-142];player=img;"><img height="177" alt="ss_034" src="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-034-thumb.jpg" width="244" border="0" /></a>
	<ul class="syntax_hilite_header">		<li class="language">ActionScript</li>		<li class="filename"></li>	<li class="source"><a href="#actionscript-4_plane" rel="shadowbox;">Source</a></li></ul><div class="syntax_hilite_planecode" id="actionscript-4_plane"><pre><?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" initialize="init()" viewSourceURL="srcview/index.html">

	<mx:Script>
		<![CDATA[
			import mx.messaging.events.MessageFaultEvent;
			import mx.messaging.messages.AsyncMessage;
			import mx.messaging.messages.IMessage;
			import mx.messaging.ChannelSet;
			import mx.messaging.channels.AMFChannel;
			import mx.messaging.channels.StreamingAMFChannel;
			import mx.messaging.events.MessageEvent;
			import mx.messaging.events.ChannelEvent;
			import mx.messaging.Consumer;
			import mx.messaging.Producer;

			private var producer:Producer = new Producer();
			private var consumer:Consumer = new Consumer();

			private function init():void {
				initConnectEvent();

				connectToServer();
			}

			private function initConnectEvent():void {
				consumer.addEventListener(ChannelEvent.CONNECT, hdlConsumerConnect);
				consumer.addEventListener(ChannelEvent.DISCONNECT, hdlConsumerDisconnect);
				consumer.addEventListener(MessageEvent.MESSAGE, hdlConsumerMessage);
			}

			private function hdlConsumerConnect(ce:ChannelEvent):void {
				log("Connect to Server.");

				setSend(true);
			}

			private function hdlConsumerDisconnect(ce:ChannelEvent):void {
				log("Disconnect from Server.");

				setSend(false);
			}

			private function hdlConsumerMessage(me:MessageEvent):void {
				log(me.message.body.chat);
			}

			private function setSend(bln:Boolean):void {
				if (bln) {
					btnSend.addEventListener(MouseEvent.CLICK, hdlSendClick);
				} else {
					btnSend.removeEventListener(MouseEvent.CLICK, hdlSendClick);
				}
				btnSend.enabled = bln;
				tiChat.enabled = bln;
			}

			private function hdlSendClick(e:*):void {
				var msg:IMessage = new AsyncMessage();
				msg.body = {chat:tiChat.text};

				producer.send(msg);
				tiChat.text = "";
			}

			private function connectToServer():void {
				setChannel("localhost");
				setDistination();

				consumer.subscribe();
			}

			private function setChannel(hostname:String):void {
				var channelSet:ChannelSet = new ChannelSet();
				var myStreamingAMF:AMFChannel = new StreamingAMFChannel("my-streaming-amf", "http://" + hostname + ":8400/tutorial/messagebroker/streamingamf");
				var myPollingAMF:AMFChannel = new AMFChannel("my-polling-amf", "http://" + hostname + ":8400/tutorial/messagebroker/amfpolling");
				myPollingAMF.pollingEnabled = true;
				myPollingAMF.pollingInterval = 1;

				channelSet.addChannel(myStreamingAMF);
				channelSet.addChannel(myPollingAMF);

				producer.channelSet = channelSet;
				consumer.channelSet = channelSet;
			}

			private function setDistination():void {
				producer.destination = "messagingTutorial";
				consumer.destination = "messagingTutorial";
			}

			private function log(str:String):void {
				taLog.text = str + "\n" + taLog.text;
			}

		]]&gt;
	</mx:Script>

	<mx:ApplicationControlBar width="100%" height="100%">
		<mx:TextArea width="100%" height="100%" id="taLog" editable="false"/>
	</mx:ApplicationControlBar>
	<mx:ApplicationControlBar width="100%">
		<mx:TextInput id="tiChat" width="100%" enabled="false" enter="hdlSendClick(event)"/>
		<mx:Button label="Send" id="btnSend" enabled="false"/>
	</mx:ApplicationControlBar>

</mx:Application></pre></div><div class="syntax_hilite">
<div id="actionscript-4">
<div class="actionscript actionscript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="sy0">&lt;</span>?<span class="kw3">xml</span> <span class="kw3">version</span>=<span class="st0">&quot;1.0&quot;</span> encoding=<span class="st0">&quot;utf-8&quot;</span>?<span class="sy0">&gt;</span></div></li>
<li class="li2"><div class="de2"><span class="sy0">&lt;</span>mx:Application xmlns:mx=<span class="st0">&quot;http://www.adobe.com/2006/mxml&quot;</span> layout=<span class="st0">&quot;vertical&quot;</span> initialize=<span class="st0">&quot;init()&quot;</span> viewSourceURL=<span class="st0">&quot;srcview/index.html&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="sy0">&lt;</span>mx:Script<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;!</span><span class="br0">&#91;</span>CDATA<span class="br0">&#91;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> mx.<span class="me1">messaging</span>.<span class="me1">events</span>.<span class="me1">MessageFaultEvent</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> mx.<span class="me1">messaging</span>.<span class="me1">messages</span>.<span class="me1">AsyncMessage</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> mx.<span class="me1">messaging</span>.<span class="me1">messages</span>.<span class="me1">IMessage</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> mx.<span class="me1">messaging</span>.<span class="me1">ChannelSet</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> mx.<span class="me1">messaging</span>.<span class="me1">channels</span>.<span class="me1">AMFChannel</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> mx.<span class="me1">messaging</span>.<span class="me1">channels</span>.<span class="me1">StreamingAMFChannel</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> mx.<span class="me1">messaging</span>.<span class="me1">events</span>.<span class="me1">MessageEvent</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> mx.<span class="me1">messaging</span>.<span class="me1">events</span>.<span class="me1">ChannelEvent</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> mx.<span class="me1">messaging</span>.<span class="me1">Consumer</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> mx.<span class="me1">messaging</span>.<span class="me1">Producer</span>;</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> producer:Producer = <span class="kw2">new</span> Producer<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> consumer:Consumer = <span class="kw2">new</span> Consumer<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> init<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; initConnectEvent<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; connectToServer<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> initConnectEvent<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; consumer.<span class="me1">addEventListener</span><span class="br0">&#40;</span>ChannelEvent.<span class="kw3">CONNECT</span>, hdlConsumerConnect<span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; consumer.<span class="me1">addEventListener</span><span class="br0">&#40;</span>ChannelEvent.<span class="me1">DISCONNECT</span>, hdlConsumerDisconnect<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; consumer.<span class="me1">addEventListener</span><span class="br0">&#40;</span>MessageEvent.<span class="kw3">MESSAGE</span>, hdlConsumerMessage<span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> hdlConsumerConnect<span class="br0">&#40;</span>ce:ChannelEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">log</span><span class="br0">&#40;</span><span class="st0">&quot;Connect to Server.&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setSend<span class="br0">&#40;</span><span class="kw2">true</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> hdlConsumerDisconnect<span class="br0">&#40;</span>ce:ChannelEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">log</span><span class="br0">&#40;</span><span class="st0">&quot;Disconnect from Server.&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setSend<span class="br0">&#40;</span><span class="kw2">false</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> hdlConsumerMessage<span class="br0">&#40;</span>me:MessageEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">log</span><span class="br0">&#40;</span>me.<span class="kw3">message</span>.<span class="me1">body</span>.<span class="me1">chat</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> setSend<span class="br0">&#40;</span>bln:<span class="kw3">Boolean</span><span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>bln<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; btnSend.<span class="me1">addEventListener</span><span class="br0">&#40;</span>MouseEvent.<span class="me1">CLICK</span>, hdlSendClick<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; btnSend.<span class="me1">removeEventListener</span><span class="br0">&#40;</span>MouseEvent.<span class="me1">CLICK</span>, hdlSendClick<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; btnSend.<span class="kw3">enabled</span> = bln;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tiChat.<span class="kw3">enabled</span> = bln;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> hdlSendClick<span class="br0">&#40;</span><span class="kw3">e</span>:<span class="sy0">*</span><span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> msg:IMessage = <span class="kw2">new</span> AsyncMessage<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; msg.<span class="me1">body</span> = <span class="br0">&#123;</span>chat:tiChat.<span class="kw3">text</span><span class="br0">&#125;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; producer.<span class="kw3">send</span><span class="br0">&#40;</span>msg<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tiChat.<span class="kw3">text</span> = <span class="st0">&quot;&quot;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> connectToServer<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setChannel<span class="br0">&#40;</span><span class="st0">&quot;localhost&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setDistination<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; consumer.<span class="me1">subscribe</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> setChannel<span class="br0">&#40;</span>hostname:<span class="kw3">String</span><span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> channelSet:ChannelSet = <span class="kw2">new</span> ChannelSet<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> myStreamingAMF:AMFChannel = <span class="kw2">new</span> StreamingAMFChannel<span class="br0">&#40;</span><span class="st0">&quot;my-streaming-amf&quot;</span>, <span class="st0">&quot;http://&quot;</span> + hostname + <span class="st0">&quot;:8400/tutorial/messagebroker/streamingamf&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> myPollingAMF:AMFChannel = <span class="kw2">new</span> AMFChannel<span class="br0">&#40;</span><span class="st0">&quot;my-polling-amf&quot;</span>, <span class="st0">&quot;http://&quot;</span> + hostname + <span class="st0">&quot;:8400/tutorial/messagebroker/amfpolling&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; myPollingAMF.<span class="me1">pollingEnabled</span> = <span class="kw2">true</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; myPollingAMF.<span class="me1">pollingInterval</span> = <span class="nu0">1</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; channelSet.<span class="me1">addChannel</span><span class="br0">&#40;</span>myStreamingAMF<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; channelSet.<span class="me1">addChannel</span><span class="br0">&#40;</span>myPollingAMF<span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; producer.<span class="me1">channelSet</span> = channelSet;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; consumer.<span class="me1">channelSet</span> = channelSet;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> setDistination<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; producer.<span class="me1">destination</span> = <span class="st0">&quot;messagingTutorial&quot;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; consumer.<span class="me1">destination</span> = <span class="st0">&quot;messagingTutorial&quot;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> <span class="kw3">log</span><span class="br0">&#40;</span>str:<span class="kw3">String</span><span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; taLog.<span class="kw3">text</span> = str + <span class="st0">&quot;<span class="es0">\n</span>&quot;</span> + taLog.<span class="kw3">text</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#93;</span><span class="br0">&#93;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;/</span>mx:Script<span class="sy0">&gt;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;</span>mx:ApplicationControlBar <span class="kw3">width</span>=<span class="st0">&quot;100%&quot;</span> <span class="kw3">height</span>=<span class="st0">&quot;100%&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:TextArea <span class="kw3">width</span>=<span class="st0">&quot;100%&quot;</span> <span class="kw3">height</span>=<span class="st0">&quot;100%&quot;</span> id=<span class="st0">&quot;taLog&quot;</span> editable=<span class="st0">&quot;false&quot;</span><span class="sy0">/&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;/</span>mx:ApplicationControlBar<span class="sy0">&gt;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="sy0">&lt;</span>mx:ApplicationControlBar <span class="kw3">width</span>=<span class="st0">&quot;100%&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:TextInput id=<span class="st0">&quot;tiChat&quot;</span> <span class="kw3">width</span>=<span class="st0">&quot;100%&quot;</span> <span class="kw3">enabled</span>=<span class="st0">&quot;false&quot;</span> <span class="kw3">enter</span>=<span class="st0">&quot;hdlSendClick(event)&quot;</span><span class="sy0">/&gt;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:<span class="kw3">Button</span> label=<span class="st0">&quot;Send&quot;</span> id=<span class="st0">&quot;btnSend&quot;</span> <span class="kw3">enabled</span>=<span class="st0">&quot;false&quot;</span><span class="sy0">/&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;/</span>mx:ApplicationControlBar<span class="sy0">&gt;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;/</span>mx:Application<span class="sy0">&gt;</span></div></li>
</ol></div>
</div></div><br />
	</li>
	<li>
		<p>「ファイル &gt; エクスポート」をクリックして、「Flex Builder &gt; リリースビルド」を選択して「次へ」。<br />
		「書き出し先フォルダ」をtutorialにして「終了」。</p>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-035.jpg" rel="shadowbox[post-142];player=img;"><img height="177" alt="ss_035" src="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-035-thumb.jpg" width="244" border="0" /></a>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-036.jpg" rel="shadowbox[post-142];player=img;"><img height="141" alt="ss_036" src="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-036-thumb.jpg" width="244" border="0" /></a>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-037.jpg" rel="shadowbox[post-142];player=img;"><img height="141" alt="ss_037" src="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-037-thumb.jpg" width="244" border="0" /></a>
	</li>
	<li>
		<p>ブラウザを二窓開いて<a href="http://localhost:8400/tutorial/messaging.html">http://localhost:8400/tutorial/messaging.html</a>へアクセス。<br />
		一方の窓でテキストを入力し、Sendを押すと、両方のクライアントにストリーミングでテキストが配信される。</p>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-038.jpg" rel="shadowbox[post-142];player=img;"><img height="69" alt="ss_038" src="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-038-thumb.jpg" width="244" border="0" /></a>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-039.jpg" rel="shadowbox[post-142];player=img;"><img height="69" alt="ss_039" src="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-039-thumb.jpg" width="244" border="0" /></a>
	</li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://ferv.jp/blog/2008/07/17/blazeds_messaging_client/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BlazeDS - Messaging(Server)</title>
		<link>http://ferv.jp/blog/2008/07/17/blazeds_messaging_server/</link>
		<comments>http://ferv.jp/blog/2008/07/17/blazeds_messaging_server/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 05:52:29 +0000</pubDate>
		<dc:creator>dsk</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[BlazeDS]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://flabo.org/?p=121</guid>
		<description><![CDATA[BlazeDSの主要な機能の一つであるMessegingのサーバーサイドの処理について。

	
		services-config.xmlにstreamingの設定を書く。
		
			XML		services-config.xml	Source



	
		
		
	

	
		
	

	



&#60;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&#62;
&#160;
&#60;service id=&#34;message-service&#34; class=&#34;flex.messaging.services.MessageService&#34;&#62;
&#160;
&#160; &#160; &#60;adapters&#62;
&#160; &#160; &#160; &#160; &#60;adapter-definition id=&#34;actionscript&#34; class=&#34;flex.messaging.services.messaging.adapters.ActionScriptAdapter&#34; default=&#34;true&#34; /&#62;
&#160; &#160; &#160; &#160; &#60;!-- &#60;adapter-definition id=&#34;jms&#34; class=&#34;flex.messaging.services.messaging.adapters.JMSAdapter&#34;/&#62; --&#62;
&#160; &#160; &#60;/adapters&#62;
&#160;
&#160; &#160; &#60;default-channels&#62;
&#160; &#160; &#160; &#160; &#60;channel ref=&#34;my-streaming-amf&#34;/&#62;
&#160; &#160; &#60;/default-channels&#62;
&#160;
&#160; &#160; &#60;destination id=&#34;messagingTutorial&#34;/&#62;
&#160;
&#60;/service&#62;


	
	]]></description>
			<content:encoded><![CDATA[<p>BlazeDSの主要な機能の一つであるMessegingのサーバーサイドの処理について。</p>
<ol>
	<li>
		<p>services-config.xmlにstreamingの設定を書く。</p>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-0301.jpg" rel="shadowbox[post-121];player=img;"><img height="177" alt="ss_030" src="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-030-thumb1.jpg" width="244" border="0" /></a>
	<ul class="syntax_hilite_header">		<li class="language">XML</li>		<li class="filename">services-config.xml</li>	<li class="source"><a href="#xml-7_plane" rel="shadowbox;">Source</a></li></ul><div class="syntax_hilite_planecode" id="xml-7_plane"><pre><?xml version="1.0" encoding="UTF-8"?>

<service id="message-service" class="flex.messaging.services.MessageService">

	<adapters>
		<adapter-definition id="actionscript" class="flex.messaging.services.messaging.adapters.ActionScriptAdapter" default="true" />
		<!-- <adapter-definition id="jms" class="flex.messaging.services.messaging.adapters.JMSAdapter"/> -->
	</adapters>

	<default-channels>
		<channel ref="my-streaming-amf"/>
	</default-channels>

	<destination id="messagingTutorial"/>

</service></pre></div><div class="syntax_hilite">
<div id="xml-7">
<div class="xml xml" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="sc3"><span class="re1">&lt;?xml</span> <span class="re0">version</span>=<span class="st0">&quot;1.0&quot;</span> <span class="re0">encoding</span>=<span class="st0">&quot;UTF-8&quot;</span><span class="re2">?&gt;</span></span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sc3"><span class="re1">&lt;service</span> <span class="re0">id</span>=<span class="st0">&quot;message-service&quot;</span> <span class="re0">class</span>=<span class="st0">&quot;flex.messaging.services.MessageService&quot;</span><span class="re2">&gt;</span></span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;adapters<span class="re2">&gt;</span></span></span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;adapter-definition</span> <span class="re0">id</span>=<span class="st0">&quot;actionscript&quot;</span> <span class="re0">class</span>=<span class="st0">&quot;flex.messaging.services.messaging.adapters.ActionScriptAdapter&quot;</span> <span class="re0">default</span>=<span class="st0">&quot;true&quot;</span> <span class="re2">/&gt;</span></span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc-1">&lt;!-- &lt;adapter-definition id=&quot;jms&quot; class=&quot;flex.messaging.services.messaging.adapters.JMSAdapter&quot;/&gt; --&gt;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/adapters<span class="re2">&gt;</span></span></span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;default-channels<span class="re2">&gt;</span></span></span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;channel</span> <span class="re0">ref</span>=<span class="st0">&quot;my-streaming-amf&quot;</span><span class="re2">/&gt;</span></span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/default-channels<span class="re2">&gt;</span></span></span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;destination</span> <span class="re0">id</span>=<span class="st0">&quot;messagingTutorial&quot;</span><span class="re2">/&gt;</span></span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2"><span class="sc3"><span class="re1">&lt;/service<span class="re2">&gt;</span></span></span></div></li>
</ol></div>
</div></div><br />
	</li>
	<li>
		<p>messaging-config.xmlにデフォルトチャンネルの設定、サービスのIDを書く。</p>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-0311.jpg" rel="shadowbox[post-121];player=img;"><img height="177" alt="ss_031" src="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-031-thumb1.jpg" width="244" border="0" /></a>
	<ul class="syntax_hilite_header">		<li class="language">XML</li>		<li class="filename">messaging-config.xml</li>	<li class="source"><a href="#xml-8_plane" rel="shadowbox;">Source</a></li></ul><div class="syntax_hilite_planecode" id="xml-8_plane"><pre><channel-definition id="my-streaming-amf" class="mx.messaging.channels.StreamingAMFChannel">
	<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/streamingamf" class="flex.messaging.endpoints.StreamingAMFEndpoint"/>
	<properties>
		<idle-timeout-minutes>0</idle-timeout-minutes>
		<max-streaming-clients>100</max-streaming-clients>
		<server-to-client-heartbeat-millis>5000</server-to-client-heartbeat-millis>
		<user-agent-settings>
			<user-agent match-on="MSIE" kickstart-bytes="2048" max-streaming-connections-per-session="10"/>
			<user-agent match-on="Firefox" kickstart-bytes="2048" max-streaming-connections-per-session="10"/>
			<user-agent match-on="AppleWebKit" kickstart-bytes="2048" max-streaming-connections-per-session="10"/>
		</user-agent-settings>
	</properties>
</channel-definition></pre></div><div class="syntax_hilite">
<div id="xml-8">
<div class="xml xml" style="font-family:monospace;"><ol start="32"><li class="li1"><div class="de1"><span class="sc3"><span class="re1">&lt;channel-definition</span> <span class="re0">id</span>=<span class="st0">&quot;my-streaming-amf&quot;</span> <span class="re0">class</span>=<span class="st0">&quot;mx.messaging.channels.StreamingAMFChannel&quot;</span><span class="re2">&gt;</span></span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;endpoint</span> <span class="re0">url</span>=<span class="st0">&quot;http://{server.name}:{server.port}/{context.root}/messagebroker/streamingamf&quot;</span> <span class="re0">class</span>=<span class="st0">&quot;flex.messaging.endpoints.StreamingAMFEndpoint&quot;</span><span class="re2">/&gt;</span></span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;properties<span class="re2">&gt;</span></span></span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;idle-timeout-minutes<span class="re2">&gt;</span></span></span>0<span class="sc3"><span class="re1">&lt;/idle-timeout-minutes<span class="re2">&gt;</span></span></span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;max-streaming-clients<span class="re2">&gt;</span></span></span>100<span class="sc3"><span class="re1">&lt;/max-streaming-clients<span class="re2">&gt;</span></span></span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;server-to-client-heartbeat-millis<span class="re2">&gt;</span></span></span>5000<span class="sc3"><span class="re1">&lt;/server-to-client-heartbeat-millis<span class="re2">&gt;</span></span></span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;user-agent-settings<span class="re2">&gt;</span></span></span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;user-agent</span> <span class="re0">match-on</span>=<span class="st0">&quot;MSIE&quot;</span> <span class="re0">kickstart-bytes</span>=<span class="st0">&quot;2048&quot;</span> <span class="re0">max-streaming-connections-per-session</span>=<span class="st0">&quot;10&quot;</span><span class="re2">/&gt;</span></span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;user-agent</span> <span class="re0">match-on</span>=<span class="st0">&quot;Firefox&quot;</span> <span class="re0">kickstart-bytes</span>=<span class="st0">&quot;2048&quot;</span> <span class="re0">max-streaming-connections-per-session</span>=<span class="st0">&quot;10&quot;</span><span class="re2">/&gt;</span></span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;user-agent</span> <span class="re0">match-on</span>=<span class="st0">&quot;AppleWebKit&quot;</span> <span class="re0">kickstart-bytes</span>=<span class="st0">&quot;2048&quot;</span> <span class="re0">max-streaming-connections-per-session</span>=<span class="st0">&quot;10&quot;</span><span class="re2">/&gt;</span></span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/user-agent-settings<span class="re2">&gt;</span></span></span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/properties<span class="re2">&gt;</span></span></span></div></li>
<li class="li1"><div class="de1"><span class="sc3"><span class="re1">&lt;/channel-definition<span class="re2">&gt;</span></span></span></div></li>
</ol></div>
</div></div><br />
	</li>
	<li>
		<p>サーバーを再起動。</p>
	</li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://ferv.jp/blog/2008/07/17/blazeds_messaging_server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BlazeDS - Remotoing(Client)</title>
		<link>http://ferv.jp/blog/2008/07/08/blazeds_remoting_client/</link>
		<comments>http://ferv.jp/blog/2008/07/08/blazeds_remoting_client/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 04:11:41 +0000</pubDate>
		<dc:creator>dsk</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[BlazeDS]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://flabo.org/?p=116</guid>
		<description><![CDATA[BlazeDSの主要な機能の一つであるRemotingのクライアントサイドの処理について。

	
		「ファイル &#62; 新規 &#62; MXML アプリケーション」をクリックして、「ファイル名」にRemoting.mxmlと入力して、「終了」。
		
		
	
	
		remoting.mxmlに]]></description>
			<content:encoded><![CDATA[<p>BlazeDSの主要な機能の一つであるRemotingのクライアントサイドの処理について。</p>
<ol>
	<li>
		<p>「ファイル &gt; 新規 &gt; MXML アプリケーション」をクリックして、「ファイル名」にRemoting.mxmlと入力して、「終了」。</p>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-0231.jpg" rel="shadowbox[post-116];player=img;"><img height="177" alt="ss_023" src="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-023-thumb1.jpg" width="244" border="0" /></a>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-0241.jpg" rel="shadowbox[post-116];player=img;"><img height="162" alt="ss_024" src="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-024-thumb1.jpg" width="244" border="0" /></a>
	</li>
	<li>
		<p>remoting.mxmlにクライアントの処理を書く。</p>
	<ul class="syntax_hilite_header">		<li class="language">ActionScript</li>		<li class="filename">remoting.mxml</li>	<li class="source"><a href="#actionscript-10_plane" rel="shadowbox;">Source</a></li></ul><div class="syntax_hilite_planecode" id="actionscript-10_plane"><pre><?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" initialize="init()" viewSourceURL="srcview/index.html">

	<mx:Script>
		<![CDATA[
			import mx.rpc.remoting.RemoteObject;
			import mx.rpc.events.ResultEvent;
			import mx.rpc.events.FaultEvent;

			private var remoteObject:RemoteObject = new RemoteObject();

			private function init():void {
				initRemoteObject();
				initButtons();
			}

			private function initRemoteObject():void {
				remoteObject.destination = "remotingTutorial";
				remoteObject.addEventListener("result", hdlROResult);
				remoteObject.addEventListener("fault", hdlROFault);
			}

			private function hdlROResult(re:ResultEvent):void {
				var result:int = re.message.body.result;
				setResult(result.toString());
			}

			private function hdlROFault(fe:FaultEvent):void {
				setResult("Fail to get responce.");
			}

			private function setResult(str:String):void {
				tiResult.text = str;
			}

			private function initButtons():void {
				btnCalc.addEventListener(MouseEvent.CLICK, hdlGetCalcClick);
				btnClear.addEventListener(MouseEvent.CLICK, hdlClearClick);

				btnCalc.enabled = true;
				btnClear.enabled = true;
			}

			private function hdlGetCalcClick(me:MouseEvent):void {
				var obj:Object = new Object();

				obj.param0 = int(tiParam_0.text);
				obj.param1 = int(tiParam_1.text);

				remoteObject.getCalcResult(obj);
			}

			private function hdlClearClick(me:MouseEvent):void {
				setResult("");
			}

		]]&gt;
	</mx:Script>

	<mx:ApplicationControlBar>
		<mx:TextInput id="tiParam_0" text="10"/>
		<mx:Label text="+" textAlign="center"/>
		<mx:TextInput id="tiParam_1" text="20"/>
		<mx:Label text="=" textAlign="center"/>
		<mx:TextInput id="tiResult"/>
	</mx:ApplicationControlBar>
	<mx:ApplicationControlBar>
		<mx:Button label="getCalcResult" id="btnCalc" enabled="false"/>
		<mx:Button label="clear" id="btnClear" enabled="false"/>
	</mx:ApplicationControlBar>

</mx:Application></pre></div><div class="syntax_hilite">
<div id="actionscript-10">
<div class="actionscript actionscript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="sy0">&lt;</span>?<span class="kw3">xml</span> <span class="kw3">version</span>=<span class="st0">&quot;1.0&quot;</span> encoding=<span class="st0">&quot;utf-8&quot;</span>?<span class="sy0">&gt;</span></div></li>
<li class="li2"><div class="de2"><span class="sy0">&lt;</span>mx:Application xmlns:mx=<span class="st0">&quot;http://www.adobe.com/2006/mxml&quot;</span> layout=<span class="st0">&quot;vertical&quot;</span> initialize=<span class="st0">&quot;init()&quot;</span> viewSourceURL=<span class="st0">&quot;srcview/index.html&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="sy0">&lt;</span>mx:Script<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;!</span><span class="br0">&#91;</span>CDATA<span class="br0">&#91;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> mx.<span class="me1">rpc</span>.<span class="me1">remoting</span>.<span class="me1">RemoteObject</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> mx.<span class="me1">rpc</span>.<span class="me1">events</span>.<span class="me1">ResultEvent</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> mx.<span class="me1">rpc</span>.<span class="me1">events</span>.<span class="me1">FaultEvent</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> remoteObject:RemoteObject = <span class="kw2">new</span> RemoteObject<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> init<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; initRemoteObject<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; initButtons<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> initRemoteObject<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; remoteObject.<span class="me1">destination</span> = <span class="st0">&quot;remotingTutorial&quot;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; remoteObject.<span class="me1">addEventListener</span><span class="br0">&#40;</span><span class="st0">&quot;result&quot;</span>, hdlROResult<span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; remoteObject.<span class="me1">addEventListener</span><span class="br0">&#40;</span><span class="st0">&quot;fault&quot;</span>, hdlROFault<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> hdlROResult<span class="br0">&#40;</span>re:ResultEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> result:<span class="kw3">int</span> = re.<span class="kw3">message</span>.<span class="me1">body</span>.<span class="me1">result</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setResult<span class="br0">&#40;</span>result.<span class="kw3">toString</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> hdlROFault<span class="br0">&#40;</span>fe:FaultEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setResult<span class="br0">&#40;</span><span class="st0">&quot;Fail to get responce.&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> setResult<span class="br0">&#40;</span>str:<span class="kw3">String</span><span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tiResult.<span class="kw3">text</span> = str;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> initButtons<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; btnCalc.<span class="me1">addEventListener</span><span class="br0">&#40;</span>MouseEvent.<span class="me1">CLICK</span>, hdlGetCalcClick<span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; btnClear.<span class="me1">addEventListener</span><span class="br0">&#40;</span>MouseEvent.<span class="me1">CLICK</span>, hdlClearClick<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; btnCalc.<span class="kw3">enabled</span> = <span class="kw2">true</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; btnClear.<span class="kw3">enabled</span> = <span class="kw2">true</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> hdlGetCalcClick<span class="br0">&#40;</span>me:MouseEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> obj:<span class="kw3">Object</span> = <span class="kw2">new</span> <span class="kw3">Object</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; obj.<span class="me1">param0</span> = <span class="kw3">int</span><span class="br0">&#40;</span>tiParam_0.<span class="kw3">text</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; obj.<span class="me1">param1</span> = <span class="kw3">int</span><span class="br0">&#40;</span>tiParam_1.<span class="kw3">text</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; remoteObject.<span class="me1">getCalcResult</span><span class="br0">&#40;</span>obj<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> hdlClearClick<span class="br0">&#40;</span>me:MouseEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setResult<span class="br0">&#40;</span><span class="st0">&quot;&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#93;</span><span class="br0">&#93;</span><span class="sy0">&gt;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="sy0">&lt;/</span>mx:Script<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="sy0">&lt;</span>mx:ApplicationControlBar<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:TextInput id=<span class="st0">&quot;tiParam_0&quot;</span> <span class="kw3">text</span>=<span class="st0">&quot;10&quot;</span><span class="sy0">/&gt;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:Label <span class="kw3">text</span>=<span class="st0">&quot;+&quot;</span> textAlign=<span class="st0">&quot;center&quot;</span><span class="sy0">/&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:TextInput id=<span class="st0">&quot;tiParam_1&quot;</span> <span class="kw3">text</span>=<span class="st0">&quot;20&quot;</span><span class="sy0">/&gt;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:Label <span class="kw3">text</span>=<span class="st0">&quot;=&quot;</span> textAlign=<span class="st0">&quot;center&quot;</span><span class="sy0">/&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:TextInput id=<span class="st0">&quot;tiResult&quot;</span><span class="sy0">/&gt;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="sy0">&lt;/</span>mx:ApplicationControlBar<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;</span>mx:ApplicationControlBar<span class="sy0">&gt;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:<span class="kw3">Button</span> label=<span class="st0">&quot;getCalcResult&quot;</span> id=<span class="st0">&quot;btnCalc&quot;</span> <span class="kw3">enabled</span>=<span class="st0">&quot;false&quot;</span><span class="sy0">/&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:<span class="kw3">Button</span> label=<span class="st0">&quot;clear&quot;</span> id=<span class="st0">&quot;btnClear&quot;</span> <span class="kw3">enabled</span>=<span class="st0">&quot;false&quot;</span><span class="sy0">/&gt;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="sy0">&lt;/</span>mx:ApplicationControlBar<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2"><span class="sy0">&lt;/</span>mx:Application<span class="sy0">&gt;</span></div></li>
</ol></div>
</div></div><br />
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-0251.jpg" rel="shadowbox[post-116];player=img;"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="177" alt="ss_025" src="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-025-thumb1.jpg" width="244" border="0" /></a>
	</li>
	<li>
		<p>「ファイル &gt; エクスポート」より、「Flex Builder &gt; リリースビルド」を選択して「次へ」。「書き出し先フォルダ」をtutorialにして、「終了」。</p>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-0261.jpg" rel="shadowbox[post-116];player=img;"><img height="177" alt="ss_026" src="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-026-thumb1.jpg" width="244" border="0" /></a>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-0271.jpg" rel="shadowbox[post-116];player=img;"><img height="141" alt="ss_027" src="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-027-thumb1.jpg" width="244" border="0" /></a>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-0281.jpg" rel="shadowbox[post-116];player=img;"><img height="141" alt="ss_028" src="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-028-thumb1.jpg" width="244" border="0" /></a>
	</li>
	<li>
		<p>これで、クライアントの開発は完了。ブラウザでhttp://localhost:8400/tutorial/remoting.htmlにアクセスして確認。</p>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-0291.jpg" rel="shadowbox[post-116];player=img;"><img height="134" alt="ss_029" src="http://ferv.jp/blog/wp-content/uploads/2008/07/ss-029-thumb1.jpg" width="244" border="0" /></a>
	</li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://ferv.jp/blog/2008/07/08/blazeds_remoting_client/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BlazeDS - Remotoing(Server)</title>
		<link>http://ferv.jp/blog/2008/07/07/blazeds_remoting_server/</link>
		<comments>http://ferv.jp/blog/2008/07/07/blazeds_remoting_server/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 11:31:08 +0000</pubDate>
		<dc:creator>dsk</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[BlazeDS]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://flabo.org/?p=75</guid>
		<description><![CDATA[BlazeDSの主要な機能の一つであるRemotingのサーバーサイドの処理について。

	
		remoting-config.xmlで、これから使うRemotingのサービスを定義する。
		&#60;destinat [...]]]></description>
			<content:encoded><![CDATA[<p>BlazeDSの主要な機能の一つであるRemotingのサーバーサイドの処理について。</p>
<ol>
	<li>
		<p>remoting-config.xmlで、これから使うRemotingのサービスを定義する。
		&lt;destination id="***"&gt;には、クライアントからサーバーサイドJavaのメソッドを呼び出すときのユニークなIDを入力。
		&lt;source&gt;***&lt;/source&gt;には、サーバーサイドJavaのパッケージ名.クラス名を入力。</p>
	<ul class="syntax_hilite_header">		<li class="language">XML</li>		<li class="filename">remoting-config.xml</li>	<li class="source"><a href="#xml-13_plane" rel="shadowbox;">Source</a></li></ul><div class="syntax_hilite_planecode" id="xml-13_plane"><pre><destination id="remotingTutorial">
	<properties>
		<source>tutorial.RemotingTutorial</source>
		<scope>application</scope>
	</properties>
</destination></pre></div><div class="syntax_hilite">
<div id="xml-13">
<div class="xml xml" style="font-family:monospace;"><ol start="13"><li class="li1"><div class="de1"><span class="sc3"><span class="re1">&lt;destination</span> <span class="re0">id</span>=<span class="st0">&quot;remotingTutorial&quot;</span><span class="re2">&gt;</span></span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;properties<span class="re2">&gt;</span></span></span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;source<span class="re2">&gt;</span></span></span>tutorial.RemotingTutorial<span class="sc3"><span class="re1">&lt;/source<span class="re2">&gt;</span></span></span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;scope<span class="re2">&gt;</span></span></span>application<span class="sc3"><span class="re1">&lt;/scope<span class="re2">&gt;</span></span></span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/properties<span class="re2">&gt;</span></span></span></div></li>
<li class="li2"><div class="de2"><span class="sc3"><span class="re1">&lt;/destination<span class="re2">&gt;</span></span></span></div></li>
</ol></div>
</div></div><br />
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-010.jpg" rel="shadowbox[post-75];player=img;"><img height="177" alt="ss_010" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-010-thumb.jpg" width="244" border="0" /></a>
	</li>
	<li>
		<p>「ファイル &gt; 新規 &gt; プロジェクト」より、「Javaプロジェクト」を作成する。</p>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-011.jpg" rel="shadowbox[post-75];player=img;"><img height="177" alt="ss_011" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-011-thumb.jpg" width="244" border="0" /></a>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-012.jpg" rel="shadowbox[post-75];player=img;"><img height="129" alt="ss_012" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-012-thumb.jpg" width="244" border="0" /></a>
	</li>
	<li>
		<p>「内容 &gt; 外部ソースからプロジェクトを作成」をチェックし、\tutorial\WEB-INF\classesを指定し、「次へ」。</p>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-013.jpg" rel="shadowbox[post-75];player=img;"><img height="180" alt="ss_013" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-013-thumb.jpg" width="244" border="0" /></a>&#160; </li>
	<li>
		<p>「ライブラリー &gt; 外部JARの追加」で、\tutorial\WEB-INF\lib内の全jarファイルを指定し、クラスパスを通す。</p>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-014.jpg" rel="shadowbox[post-75];player=img;"><img height="180" alt="ss_014" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-014-thumb.jpg" width="244" border="0" /></a>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-015.jpg" rel="shadowbox[post-75];player=img;"><img height="144" alt="ss_015" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-015-thumb.jpg" width="244" border="0" /></a>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-016.jpg" rel="shadowbox[post-75];player=img;"><img height="180" alt="ss_016" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-016-thumb.jpg" width="244" border="0" /></a>
	</li>
	<li>
		<p>tutorial-javaを右クリックして、「新規 &gt; パッケージ」をクリック。「名前」に1.で設定したパッケージ名（このチュートリアルでは&quot;tutorial&quot;）を入力して「終了」。</p>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-017.jpg" rel="shadowbox[post-75];player=img;"><img height="177" alt="ss_017" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-017-thumb.jpg" width="244" border="0" /></a>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-018.jpg" rel="shadowbox[post-75];player=img;"><img height="111" alt="ss_018" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-018-thumb.jpg" width="244" border="0" /></a>
	</li>
	<li>
		<p>\tutorial\WEB-INF\srcに1.で設定したクラス名のJavaのソースファイルを作る。（このチュートリアルでは&quot;RemotingTutorial.java）</p>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-019.jpg" rel="shadowbox[post-75];player=img;"><img height="184" alt="ss_019" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-019-thumb.jpg" width="244" border="0" /></a>
	</li>
	<li>
		<p>6.で作ったクラスファイル（RemotingTutorial.java）を、5.で作ったパッケージ内にリンクする。tutorialを右クリックして、「新規 &gt; ファイル」をクリック。「拡張」をクリック後、6.で作ったクラスファイルを指定し、終了。</p>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-020.jpg" rel="shadowbox[post-75];player=img;"><img height="177" alt="ss_020" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-020-thumb.jpg" width="244" border="0" /></a>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-021.jpg" rel="shadowbox[post-75];player=img;"><img height="176" alt="ss_021" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-021-thumb.jpg" width="244" border="0" /></a>
	</li>
	<li>
		<p>RemotingTutorial.javaを開き、足し算して返すだけの関数を書く。</p>
	<ul class="syntax_hilite_header">		<li class="language">JAVA</li>		<li class="filename">RemotingTutorial.java</li>	<li class="source"><a href="#java-14_plane" rel="shadowbox;">Source</a></li></ul><div class="syntax_hilite_planecode" id="java-14_plane"><pre>package tutorial;

import java.util.HashMap;

public class RemotingTutorial {

	public RemotingTutorial() {
		System.out.println("RemotingTutorial を初期化します");
	}

	public HashMap<string, Integer> getCalcResult(HashMap<string, Integer> mapSource) {
		HashMap<string, Integer> mapBody = new HashMap<string, Integer>();

		mapBody.put("result", (mapSource.get("param0") + mapSource.get("param1")));

		return mapBody;
	}

}</pre></div><div class="syntax_hilite">
<div id="java-14">
<div class="java java" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="kw1">package</span> <span class="co2">tutorial</span>;</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw1">import</span> <span class="co2">java.util.HashMap</span>;</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw1">public</span> <span class="kw1">class</span> RemotingTutorial <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw1">public</span> RemotingTutorial<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Asystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">&#40;</span><span class="st0">&quot;RemotingTutorial を初期化します&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw1">public</span> HashMap<span class="sy0">&lt;</span>string, Integer<span class="sy0">&gt;</span> getCalcResult<span class="br0">&#40;</span>HashMap<span class="sy0">&lt;</span>string, Integer<span class="sy0">&gt;</span> mapSource<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; HashMap<span class="sy0">&lt;</span>string, Integer<span class="sy0">&gt;</span> mapBody <span class="sy0">=</span> <span class="kw1">new</span> HashMap<span class="sy0">&lt;</span>string, Integer<span class="sy0">&gt;</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; mapBody.<span class="me1">put</span><span class="br0">&#40;</span><span class="st0">&quot;result&quot;</span>, <span class="br0">&#40;</span>mapSource.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;param0&quot;</span><span class="br0">&#41;</span> <span class="sy0">+</span> mapSource.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;param1&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> mapBody;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
</ol></div>
</div></div><br />
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-022.jpg" rel="shadowbox[post-75];player=img;"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="177" alt="ss_022" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-022-thumb.jpg" width="244" border="0" /></a>
	</li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://ferv.jp/blog/2008/07/07/blazeds_remoting_server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BlazeDS - 開発準備</title>
		<link>http://ferv.jp/blog/2008/07/06/blazeds_preparation/</link>
		<comments>http://ferv.jp/blog/2008/07/06/blazeds_preparation/#comments</comments>
		<pubDate>Sun, 06 Jul 2008 05:45:04 +0000</pubDate>
		<dc:creator>dsk</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[BlazeDS]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://flabo.org/?p=50</guid>
		<description><![CDATA[
	
		開発環境となるEclipse + Flex Builder 3をインストールする。
		
			
				All-In-One Eclipse
			
			
				Flex Builder 3 (Eclip [...]]]></description>
			<content:encoded><![CDATA[<ol>
	<li>
		<p>開発環境となるEclipse + Flex Builder 3をインストールする。</p>
		<ul>
			<li>
				<a title="All-In-One Eclipse" href="http://sourceforge.jp/projects/aioec/">All-In-One Eclipse</a>
			</li>
			<li>
				<a title="Flex Builder 3 (Eclipse Plugin)" href="http://www.adobe.com/jp/products/flex/">Flex Builder 3 (Eclipse Plugin)</a>
			</li>
		</ul>
	</li>
	<li>
		<p>\blazeds\tomcat\webappsで、blazedsディレクトリをコピー。<br />
		中にWEB-INFと、META-INFが入っているのを確認したら、Eclipseへ。</p>
		<a class="img" href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-0001.jpg" rel="shadowbox[post-50];player=img;"> <img height="184" alt="ss_000" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-000-thumb1.jpg" width="244" border="0" /></a>
		<a class="img" href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-0011.jpg" rel="shadowbox[post-50];player=img;">
			<img height="184" alt="ss_001" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-001-thumb1.jpg" width="244" border="0" />
		</a>
	</li>
	<li>
		<p>「File &gt; 新規 &gt; プロジェクト」から、「Flex Builder &gt; Flexプロジェクト」を選択して「次へ」。<br />
		「プロジェクト名」にプロジェクトの名前を入力。（ここでは"tutorial"）<br />
		「プロジェクトの場所」に作業ディレクトリを指定。（ここでは"C:\blazeDS_temp\tutorial"）<br />
		「アプリケーションの種類」で「Web アプリケーション」を選択。<br />
		「サーバーテクノロジ」で「アプリケーションサーバーの種類」を「J2EE」とし、「リモートオブジェクトアクセスサービスを使用」にチェック。</p>
		<a class="img" href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-0021.jpg" rel="shadowbox[post-50];player=img;">
			<img height="169" alt="ss_002" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-002-thumb1.jpg" width="244" border="0" />
		</a>
		<a class="img" href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-0031.jpg" rel="shadowbox[post-50];player=img;">
			<img height="169" alt="ss_003" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-003-thumb1.jpg" width="244" border="0" />
		</a>
	</li>
	<li>
		<p>「サーバーの場所」を2.で作ったディレクトリに指定し、「設定を検証」。<br />
		「結合したFlexアプリケーションの場所」にデバッグ用ディレクトリを指定し、「終了」。</p>
		<a class="img" href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-0041.jpg" rel="shadowbox[post-50];player=img;">
			<img height="182" alt="ss_004" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-004-thumb1.jpg" width="244" border="0" />
		</a>
		<a class="img" href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-0051.jpg" rel="shadowbox[post-50];player=img;">
			<img height="193" alt="ss_005" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-005-thumb1.jpg" width="244" border="0" />
		</a>
	</li>
	<li>
		<p>これでクライアント側の開発環境は整った。</p>
		<a class="img" href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-0061.jpg" rel="shadowbox[post-50];player=img;">
			<img height="177" alt="ss_006" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-006-thumb1.jpg" width="244" border="0" />
		</a>
	</li>
	<li>
		<p>サーバー設定ファイルをリンクさせておく。srcフォルダを右クリックし、「新規 &gt; ファイル」をクリック。</p>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-007.jpg" rel="shadowbox[post-50];player=img;">
			<img height="177" alt="ss_007" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-007-thumb.jpg" width="244" border="0" />
		</a>
	</li>
	<li>
		<p>「拡張 &gt; ファイル・システム内のファイルにリンク」で、C:\blazeDS\tomcat\webapps\tutorial\WEB-INF\flex\messaging-config.xmlを指定する。</p>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-008.jpg" rel="shadowbox[post-50];player=img;">
			<img height="176" alt="ss_008" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-008-thumb.jpg" width="244" border="0" />
		</a>
	</li>
	<li>
		<p>proxy-config.xml,remoting-config.xml,services-config.xmlについても同様にリンクしておく。</p>
		<a href="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-0091.jpg" rel="shadowbox[post-50];player=img;">
			<img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="177" alt="ss_009" src="http://ferv.jp/blog/wp-content/uploads/2008/06/ss-009-thumb1.jpg" width="244" border="0" />
		</a>
	</li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://ferv.jp/blog/2008/07/06/blazeds_preparation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

