<?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>func09 &#187; flex</title>
	<atom:link href="http://www.func09.com/wordpress/archives/category/flash/flex/feed" rel="self" type="application/rss+xml" />
	<link>http://www.func09.com/wordpress</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Mon, 06 Feb 2012 04:25:55 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>[flex]Flex2でFLVプレイヤーのシークバーを作ってみる</title>
		<link>http://www.func09.com/wordpress/archives/171</link>
		<comments>http://www.func09.com/wordpress/archives/171#comments</comments>
		<pubDate>Thu, 27 Dec 2007 07:29:17 +0000</pubDate>
		<dc:creator>haga</dc:creator>
				<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[日記]]></category>

		<guid isPermaLink="false">http://www.func09.com/wordpress/archives/171</guid>
		<description><![CDATA[Flvプレーヤーにシーク機能を付けたいのですが・・ このフォーラムで、シーク機能について質問が投げられていたので作ってみた。 Flex2でFLVプレイヤーを作ろうと思ったら、ボタンなどの標準コンポーネントを使って 簡単に [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.fxug.net/modules/xhnewbb/viewtopic.php?viewmode=thread&#038;topic_id=1473&#038;forum=16">Flvプレーヤーにシーク機能を付けたいのですが・・</a></p>

<p>このフォーラムで、シーク機能について質問が投げられていたので作ってみた。</p>

<p>Flex2でFLVプレイヤーを作ろうと思ったら、ボタンなどの標準コンポーネントを使って
簡単に実装できちゃうんですが、シークバーはちょっとポイントが要ります。
でもだからといって、コンポーネントを作らないといけないわけじゃなくて、
HSliderとスクリプトだけでなんとかできちゃいます。</p>

<p><img id="image170" src="http://www.func09.com/wordpress/wp-content/uploads/2007/12/flvplayer_cap.jpg" alt="flvplayer_cap.jpg" /></p>

<p>こんな感じになる。それっぽいでしょ？</p>

<h3>コントローラを配置</h3>

<p>まずはFLVを表示するためのVideoDisplayクラスと
シークするためのHSliderクラスを準備</p>

<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;<br />
&lt;mx:Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;absolute&quot;&gt;<br />
&nbsp; &lt;mx:VBox width=&quot;100%&quot; height=&quot;100%&quot;&gt;<br />
&nbsp; &nbsp; &lt;mx:VideoDisplay id=&quot;myVD&quot; width=&quot;100%&quot; height=&quot;100%&quot; source=&quot;your.flv&quot; /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;mx:HSlider id=&quot;myHS&quot; width=&quot;100%&quot; /&gt;<br />
&nbsp; &lt;/mx:VBox&gt;<br />
&lt;/mx:Application&gt;</div></div>

<h3>FLVの再生位置とシークバーを同期させる</h3>

<p>これだけでもFLVは再生されるので、再生されている位置とシークバーを同期させてみます。
ここからは基本的に編集するのは</p>

<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">HSlider</div></div>

<p>のみ</p>

<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;mx:HSlider id=&quot;myHS&quot;<br />
&nbsp; width=&quot;100%&quot;<br />
&nbsp; minimum=&quot;0&quot;<br />
&nbsp; maximum=&quot;{myVD.totalTime}&quot;<br />
&nbsp; value=&quot;{myVD.playheadTime}&quot;<br />
/&gt;</div></div>

<p>スライダーの最小値と最大値を決定します。
最大値にビデオの総時間をバインディングされるようにしておき
さらにビデオの再生位置に変更があるたびに、スライダーの値とビデオの再生時間が同期するように仕込む。
これで、再生時間 / 総再生時間みたいなことを気にしないでも、スライダーが勝手に計算してくれます。</p>

<h3>スライダーからの変更をビデオに反映する</h3>

<p>次にスライダーからビデオの再生位置を変更できるようにします。
HSliderに次の行を追加します。
[xml]
change=&#8221;{ if(myVD.stateResponsive) myVD.playheadTime = myHS.value }&#8221;
[/xml]</p>

<p>VideoDisplay#stateResponsiveはビデオが応答可能かどうかの判定メソッドです。
まだ動画がロードされていなかったり、ビジーな状況を回避しつつ
スライダーのvalueをそのままビデオの再生位置時間に代入します。
これはスライダーとビデオの扱う単位を「秒」で揃えているから可能になっています。
Flexでは往々にして、コントロール間で扱う単位を揃えたり
中間に変換するアダプターメソッドを噛ますと、生産性があがりますね。</p>

<h3>見た目や精度を向上する</h3>

<p>さて、ここまでで一応実装完了しているのですが
使ってみると、ドラッグ中はビデオに再生位置が反映されなかったり
再生位置をスライダーのつまみの位置だけで確認しなければならなかったり
ちょっと不親切です。</p>

<p>HSliderにさらに、下の処理を追加。
[xml]
liveDragging=&#8221;true&#8221;
showTrackHighlight=&#8221;true&#8221;
[/xml]</p>

<p>Slider#liveDraggingは、つまみのドラッグ中にもchangeイベントを発行しつづけるためのフラグです。
Slider#showTrackHighlightは、スライダーの始点からつまみまでを色つけするスタイルプロパティ。</p>

<h3>完成</h3>

<p>以下は全コードです。</p>

<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;<br />
&lt;mx:Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;absolute&quot;&gt;<br />
&nbsp; &lt;mx:VBox width=&quot;100%&quot; height=&quot;100%&quot;&gt;<br />
&nbsp; &nbsp; &lt;mx:VideoDisplay id=&quot;myVD&quot;<br />
&nbsp; &nbsp; &nbsp; source=&quot;your.flv&quot;<br />
&nbsp; &nbsp; &nbsp; width=&quot;100%&quot; height=&quot;100%&quot;<br />
&nbsp; &nbsp; /&gt;<br />
&nbsp; &nbsp; &lt;mx:HSlider id=&quot;myHS&quot;<br />
&nbsp; &nbsp; &nbsp; width=&quot;100%&quot;<br />
&nbsp; &nbsp; &nbsp; maximum=&quot;{myVD.totalTime}&quot;<br />
&nbsp; &nbsp; &nbsp; minimum=&quot;0&quot;<br />
&nbsp; &nbsp; &nbsp; value=&quot;{myVD.playheadTime}&quot;<br />
&nbsp; &nbsp; &nbsp; change=&quot;{ if(myVD.stateResponsive) myVD.playheadTime = myHS.value }&quot;<br />
&nbsp; &nbsp; &nbsp; liveDragging=&quot;true&quot;<br />
&nbsp; &nbsp; &nbsp; showTrackHighlight=&quot;true&quot;<br />
&nbsp; &nbsp; /&gt;<br />
&nbsp; &lt;/mx:VBox&gt;<br />
&lt;/mx:Application&gt;</div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.func09.com/wordpress/archives/171/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[ruby][flex] Socketサーバを書いてみた</title>
		<link>http://www.func09.com/wordpress/archives/154</link>
		<comments>http://www.func09.com/wordpress/archives/154#comments</comments>
		<pubDate>Tue, 30 Oct 2007 13:57:13 +0000</pubDate>
		<dc:creator>haga</dc:creator>
				<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[日記]]></category>

		<guid isPermaLink="false">http://www.func09.com/wordpress/archives/154</guid>
		<description><![CDATA[FlexでXMLSocketする必要があったので、テスト用にサーバを書いてみたよ。 自信はないので、1%も保証はないけど一応動く。 ソースファイル まずはRubyのソース server_client.rb [ruby]  [...]]]></description>
			<content:encoded><![CDATA[<p>FlexでXMLSocketする必要があったので、テスト用にサーバを書いてみたよ。
自信はないので、1%も保証はないけど一応動く。</p>

<p><img id="image155" src="http://www.func09.com/wordpress/wp-content/uploads/2007/10/sockettest1pnf.png" alt="sockettest1pnf.png" /></p>

<p><img id="image156" src="http://www.func09.com/wordpress/wp-content/uploads/2007/10/sockettest2.png" alt="sockettest2.png" /></p>

<p><a id="p157" href="http://www.func09.com/wordpress/wp-content/uploads/2007/10/sockettest.zip" title="sockettest.zip">ソースファイル</a></p>

<p>まずはRubyのソース</p>

<p><span id="more-154"></span></p>

<p>server_client.rb
[ruby]
require &#8220;socket_server&#8221;
server = SocketServer.new
server.open 8001
[/ruby]</p>

<p>ソケットサーバを8001番ポートでオープン</p>

<p>socket_server.rb
[ruby]
class SocketServer</p>

<p>def initialize( port=nil )
    puts &#8220;create server..&#8221;
    @port = port || 8001;
  end</p>

<p>def open( port=nil )
    @port = port if( !port.nil? )
    @gs = TCPServer.open @port
    @clients = []
    puts &#8220;open server #{@port}&#8221;</p>

<pre><code>while true
  Thread.start( @gs.accept ) do |s|
    open_client s
    while ( message = s.gets )
      send_message_all( message )
    end
    close_client s
  end
end
</code></pre>

<p>end</p>

<p>def open_client( client )
    puts &#8220;#{client} is connected.&#8221;
    @clients &lt;&lt; client
  end</p>

<p>def close_client( client )
    puts &#8220;#{client} is closed.&#8221;
    @clients.delete client
  end</p>

<p>def send_message_all( message )
    puts &#8220;[message all] #{message}&#8221;
    @clients.each do |client|
      send_message( client, message )
    end
  end</p>

<p># send message to IOSocket
  def send_message( target, message )
    message.chomp!
    target.write( message &lt;&lt; &#8220;\n&#8221; )
  end</p>

<p>end
[/ruby]</p>

<p>そしてFlex2のソース</p>

<p>Socketクラスを使ってます。
XMLSocketクラスを使ったら、メッセージのタイミングが１個ずれました。</p>

<p>SocketTest.mxml
[html]
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
  xmlns:mx="http://www.adobe.com/2006/mxml"
  xmlns:views="views.*"
  creationComplete="{handleCreateComplete()}"
  ></p>

<p><mx:Script>
    &lt;![CDATA[
      import flash.net.Socket;</p>

<pre><code>  [Bindable]
  public var sock:Socket;

  private function handleCreateComplete():void
  {
    sock = new Socket();
    sock.addEventListener(ProgressEvent.SOCKET_DATA,handleSocketData);
    sock.addEventListener(Event.CONNECT,handleSocketConnect);
    sock.addEventListener(Event.CLOSE,handleSocketClose);
    //sock.addEventListener(DataEvent.DATA,handleSocketData);
    sock.addEventListener(IOErrorEvent.IO_ERROR,handleSocketIOError);
  }

  private function handleSocketConnect(e:Event):void
  {
    debugger.text += &#8220;Connection Success.\n&#8221;;
    formViewStack.selectedChild = connectedForm;
    sock.removeEventListener(Event.CONNECT,arguments.callee);
  }

  private function handleSocketClose(e:Event):void
  {
    debugger.text += &#8220;Connection Close.\n&#8221;;
    formViewStack.selectedChild = connectForm;
    sock.removeEventListener(Event.CLOSE,arguments.callee);
  }

  private function handleSocketData(e:ProgressEvent):void
  {
    debugger.text += e.target.readUTF();
  }

  private function handleSocketIOError(e:IOError):void
  {
    trace(e);
  }

]]&gt;
</code></pre>

<p></mx:Script></p>

<p><mx:Panel x="58" y="57" width="300" height="300" title="Socket Client"></p>

<pre><code>&lt;mx:VDividedBox width="100%" height="100%"&gt;

  &lt;mx:ViewStack id="formViewStack" width="100%" height="200"&gt;

    &lt;views:ConnectForm id="connectForm" sock="{sock}" /&gt;
    &lt;views:ConnectionForm id="connectedForm" sock="{sock}" /&gt;

  &lt;/mx:ViewStack&gt;

  &lt;mx:TextArea width="100%" id="debugger"/&gt;

&lt;/mx:VDividedBox&gt;
</code></pre>

<p></mx:Panel></p>

<p></mx:Application></p>

<p>[/html]</p>

<p>views.ConnectForm.mxml
[html]
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml">
  <mx:Script>
    &lt;![CDATA[
      public var sock:Socket;</p>

<pre><code>  private function handleConnectButtonClick(e:MouseEvent):void
  {
    sock.connect( formdata.host, formdata.port );
  }

]]&gt;
</code></pre>

<p></mx:Script></p>

<p><mx:Model id="formdata">
    <root>
      <host>{txtHost.text}</host>
      <port>{int(txtPort.text)}</port>
    </root>
  </mx:Model></p>

<p><mx:Form>
    <mx:FormItem label="host">
      <mx:TextInput id="txtHost" text="localhost"/>
    </mx:FormItem>
    <mx:FormItem label="port">
      <mx:TextInput id="txtPort" text="8001"/>
    </mx:FormItem>
    <mx:FormItem>
      <mx:Button label="接続" click="{handleConnectButtonClick(event)}"/>
    </mx:FormItem>
  </mx:Form></p>

<p></mx:Canvas>
[/html]</p>

<p>views.ConnectionForm.mxml
[html]
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml">
  <mx:Script>
    &lt;![CDATA[</p>

<pre><code>  public var sock:Socket;

  private function handleSendButtonClidk(e:MouseEvent):void
  {
    if( sock.connected )
    {
      XML.prettyPrinting = false;
      sock.writeUTF( sendXML.toXMLString() + "\n" );
      sock.flush();
    }
  }

]]&gt;
</code></pre>

<p></mx:Script></p>

<p><mx:XML id="sendXML" xmlns="">
    <root>
      <message>{txtMessage.text}</message>
    </root>
  </mx:XML></p>

<p><mx:Form>
    <mx:FormItem label="Message">
      <mx:TextInput id="txtMessage" />
    </mx:FormItem>
    <mx:FormItem>
      <mx:Button label="send" click="{handleSendButtonClidk(event)}"/>
    </mx:FormItem>
  </mx:Form>
</mx:Canvas></p>

<p>[/html]</p>

<p>とりあえず、ここまで</p>

<p>最終的には、mx.rpc.AbstractInvokaを継承したSocketServiceコンポーネントを作るところまでしたい。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.func09.com/wordpress/archives/154/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Flex]ログを取る</title>
		<link>http://www.func09.com/wordpress/archives/153</link>
		<comments>http://www.func09.com/wordpress/archives/153#comments</comments>
		<pubDate>Wed, 24 Oct 2007 11:34:23 +0000</pubDate>
		<dc:creator>haga</dc:creator>
				<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[日記]]></category>

		<guid isPermaLink="false">http://www.func09.com/wordpress/archives/153</guid>
		<description><![CDATA[[js] import mx.logging.ILogger; import mx.logging.Log; var logCategoryName:String = &#8220;ConnectionLog&#8221 [...]]]></description>
			<content:encoded><![CDATA[<p>[js]
import mx.logging.ILogger;
import mx.logging.Log;</p>

<p>var logCategoryName:String = &#8220;ConnectionLog&#8221;</p>

<p>var logger:ILogger = Log.getLogger(logCategoryName);
logger.info(&#8216;connect..&#8217;);
logger.error(&#8216;connect error..&#8217;);
logger.worn(&#8216;connect worn&#8217;);
logger.fatal(&#8216;connect fatal&#8217;);
[/js]</p>

<p>こんな感じ？</p>

<p>ログレベルは
fatal &lt; worn &lt; error &lt; info</p>

<p>僕は各クラスごとにログカテゴリを設定してるんで、全エントリーを使って
コンストラクタん中で、こんな感じに。</p>

<p>[js]
var logger:ILogger = Log.getLogger( describeType(this).@name.toString().match(/::(.*)/)[1] );
[/js]</p>

<p>あとは、環境によって、TraceとかLocalConnectionとか、ログの出力方法を切り替えたいなと。</p>

<p>mx.logging.targetsあたりを弄るのかな？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.func09.com/wordpress/archives/153/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash(Flex)デベロッパーから見た、Silverlight</title>
		<link>http://www.func09.com/wordpress/archives/143</link>
		<comments>http://www.func09.com/wordpress/archives/143#comments</comments>
		<pubDate>Fri, 21 Sep 2007 13:23:57 +0000</pubDate>
		<dc:creator>haga</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[silverlight]]></category>

		<guid isPermaLink="false">http://www.func09.com/wordpress/archives/143</guid>
		<description><![CDATA[Flash、Flexデベロッパの僕から見て、Silverlightって何なのか？ ちょっとまとめてみました。間違っている部分もあるかと思いますが、あしからず・・。 ちなみに、僕はMicroSoft系の言語はさっぱりです。 [...]]]></description>
			<content:encoded><![CDATA[<p>Flash、Flexデベロッパの僕から見て、Silverlightって何なのか？
ちょっとまとめてみました。間違っている部分もあるかと思いますが、あしからず・・。
ちなみに、僕はMicroSoft系の言語はさっぱりです。VBはおろか、エクセルのマクロだって使えませんよ、はい。</p>

<h2>Silverlightってどういう技術？</h2>

<ul>
  <li>
    ブラウザ上でリッチインタラクティブアプリケーション（RIA）を実現する。
  </li>
  <li>
    Windows、Macで動作。クロスプラットフォーム。(LinuxではMoonlightプロジェクトにより動作可能となるらしい）
  </li>
  <li>
    Webブラウザ用プラグイン、IE、FireFox、Safari対応。
  </li>
</ul>

<p>これだけ見ると、Flashと変わらないような気がするよね。うーん。</p>

<h2>Silverlightのメリット</h2>

<ul>
  <li>強力なマルチメディア関連のサポート</li>
    <ul>
      <li>ハイビジョン相当（HD 720p）の動画を配信可能</li>
      <li>デジタル著作権管理（DRM）</li>
    </ul>
  <li>開発言語の選択が可能</li>
  <ul>
    <li>C#</li>
    <li>C++</li>
    <li>VB</li>
    <li>Python</li>
    <li>Ruby</li>
    <li>JavaScript</li>
  </ul>
  <li>.Net Frameworkベース。</li>
  <ul>
    <li>開発者の絶対数が多い</li>
  </ul>
</ul>

<p>大手GyaoがSilverlightを採用したニュースは、ご存じのとおり
DRM対応ってのはポイント高いですね。
しかしFlashだって、H.264 HDにまで対応するので、画質的な差はほとんどないんじゃなかろうか・・。</p>

<p>Silverlight1.1からCLRが含まれ、「.NETプラットホームのサブセットをブラウザから使える」とのこと。</p>

<p>この辺よくわからなかったんですが、.NET標準のUIライブラリなんかが利用できると考えていいのかなぁ？
開発の言語を選べるというのは、結構素敵なんですが
実際同じプロジェクトみんなが使える言語となると、自ずと選択肢が決まってくる気がするのですげーメリットっていう感じでもないな。</p>

<h2>開発スタイル</h2>

<ul>
  <li>普通のテキストエディタで作る</li>
  <li>Visual Studioを使って開発</li>
  <li>Expression Blendで開発</li>
</ul>

<p>簡単なサンプル程度なら、ランタイムをいれて、テキストエディタでも十分開発可能です。
でもギャラリーの「<a href="http://silverlight.net/samples/1.0/Page-Turn/default.html">Page Turn</a>」のサンプルソースコードを見ると
あの程度でも、結構膨大なソースなのでちゃんとしたものを作ろうとしたらBlendとVisual Studioは必須なのではないだろうか。</p>

<h2>実際の所どうなのよ？</h2>

<p>Flex2とSilverlightの公式サンプルアプリケーションをざっと見比べてみる。</p>

<p>Silverlightのサンプルページ
<a href="http://silverlight.net/community/gallerydetail.aspx?cat=3">http://silverlight.net/community/gallerydetail.aspx?cat=3</a>
<a href="http://silverlight.net/community/gallerydetail.aspx?cat=4">http://silverlight.net/community/gallerydetail.aspx?cat=4</a></p>

<p>Flex2のサンプルページ
<a href="http://www.adobe.com/jp/devnet/flex/">http://www.adobe.com/jp/devnet/flex/</a></p>

<p>う～ん。エンタープライズなアプリケーションを現段階のSilverlightで開発するのは
果てしなく難易度が高い気がするんだが・・。</p>

<p>Flexの良いところは、高度なUIコンポーネントが標準で用意されていて
しかもスキンの変更なんかが楽ちんなところにあると思う。
SilverlightはどこまでUIコンポーネントが用意されるのか、興味津々ではある。</p>

<h2>一応作ったサンプル</h2>

<p>さすがに何も作らないという訳にもいかないので、申し訳程度に、サンプルを作りました。</p>

<p>円のオブジェクトがロールオーバー、ロールアウトに反応して、色が変わるという
ものすごく朴訥としたサンプルアプリケーションです。
当然ながらSilverlightのランタイムがないと見れないので
インストールしてない方は、<a href="http://www.microsoft.com/japan/silverlight/downloads.aspx">こちら</a>からインストールするべし。</p>

<p><a href="http://www.func09.com/wordpress/wp-content/uploads/2007/09/slsample/sl_sample.html">見る</a>
<a id="p144" href="http://www.func09.com/wordpress/wp-content/uploads/2007/09/silverlight_sample.zip">ソースをダウンロード</a></p>

<h2>まとめ</h2>

<p>今のところ、SilverLightはFlashほどグラフィックとアニメーションに強い印象もなく
Flexほどエンタープライズに強い印象もなく、中途半端な感じ。
Flexの方はJava開発者の流入が多いみたいだけれど、Silverlight（WPF）には.Net開発者が中心になるんだろうなと。</p>

<h2>参考サイト</h2>

<p></a>
<a href="http://www.microsoft.com/japan/silverlight/default01.aspx">Microsoft Silverlight: Light Up the Web</a>
<a href="http://d.hatena.ne.jp/Wacky/20070513/1179065261">ふるにゃん　- 初めてのSilverlight 1.1α ＋ Expression Blend β2(取っ掛かり編？)</a>
<a href="http://www.itmedia.co.jp/news/articles/0709/20/news106.html">「GyaO」がSilverlight採用へ　映画予告編でテスト配信</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.func09.com/wordpress/archives/143/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>flex2の学習</title>
		<link>http://www.func09.com/wordpress/archives/140</link>
		<comments>http://www.func09.com/wordpress/archives/140#comments</comments>
		<pubDate>Thu, 23 Aug 2007 05:16:05 +0000</pubDate>
		<dc:creator>haga</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[日記]]></category>

		<guid isPermaLink="false">http://www.func09.com/wordpress/archives/140</guid>
		<description><![CDATA[flex2の学習中です。 同時にCairnGormも勉強してます。 ちょろちょろとブログに書いていきたいなと。]]></description>
			<content:encoded><![CDATA[<p>flex2の学習中です。
同時にCairnGormも勉強してます。</p>

<p>ちょろちょろとブログに書いていきたいなと。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.func09.com/wordpress/archives/140/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FlashDevelop3日本語化</title>
		<link>http://www.func09.com/wordpress/archives/139</link>
		<comments>http://www.func09.com/wordpress/archives/139#comments</comments>
		<pubDate>Fri, 03 Aug 2007 09:57:13 +0000</pubDate>
		<dc:creator>haga</dc:creator>
				<category><![CDATA[actionscript2.0]]></category>
		<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[日記]]></category>

		<guid isPermaLink="false">http://www.func09.com/wordpress/archives/139</guid>
		<description><![CDATA[やっとFlex2に本格的に触れそうなので 環境を用意しました。 FlashDevelop3を使うにあたり、英語でも全くなんの問題もなかったのですが リファレンスのURLをちょいちょい変更したついでに日本語化もしました。  [...]]]></description>
			<content:encoded><![CDATA[<p>やっとFlex2に本格的に触れそうなので
環境を用意しました。</p>

<p>FlashDevelop3を使うにあたり、英語でも全くなんの問題もなかったのですが
リファレンスのURLをちょいちょい変更したついでに日本語化もしました。</p>

<p>よろしければどうぞ。</p>

<p><a id="p138" rel="attachment" href="http://www.func09.com/wordpress/archives/139/mainmenuzip/" title="MainMenu.zip">mainmenu.zip</a></p>

<p>MainMenu.xmlを</p>

<p>C:\Program Files\FlashDevelop\FirstRun\Settings</p>

<p>に放り込んでください。
当然、オリジナルのファイルは要バックアップです。</p>

<p>enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.func09.com/wordpress/archives/139/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>デブサミ　Apollo関連感想</title>
		<link>http://www.func09.com/wordpress/archives/118</link>
		<comments>http://www.func09.com/wordpress/archives/118#comments</comments>
		<pubDate>Wed, 14 Feb 2007 16:19:18 +0000</pubDate>
		<dc:creator>haga</dc:creator>
				<category><![CDATA[actionscript3.0]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://www.func09.com/wordpress/archives/118</guid>
		<description><![CDATA[デブサミ楽しんできました。 主にApollo系で今回（僕が）しった情報。 ・M3＝開発者向けSDKリリース　３月予定 ・Apolloアプリへのドラッグ＆ドロップ可能 ・バックエンド稼働可能 ・サーバからアプリへのデータプ [...]]]></description>
			<content:encoded><![CDATA[<p>デブサミ楽しんできました。</p>

<p>主にApollo系で今回（僕が）しった情報。</p>

<p>・M3＝開発者向けSDKリリース　３月予定
・Apolloアプリへのドラッグ＆ドロップ可能
・バックエンド稼働可能
・サーバからアプリへのデータプッシュ可能（待ち受け状態？）
・アプリ（SWF?）の差分アップデート機能（Flash9で実装済み？ちょっとその辺理解が曖昧）
・SDKは無料配布。つまりすでにコマンドライン版のFlex2SDKで開発環境があれば、Apolloも無料で開発できる。
・DreamWeaverでもプラグインとかで開発ができるようになるらしい。
・HTMLベースのApolloアプリはM3で実装される予定らしい</p>

<p>といった感じかなぁ。これ以外は特に目新しい情報はなかったかな。</p>

<p>実際にFlex2Builderで開発するデモを見たけど
Flash9メインでApolloを開発ってのは、非現実的かもなぁという印象を受けた。
僕は素直にFlex2で開発したいと思いました。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.func09.com/wordpress/archives/118/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flex開発環境セットアップ</title>
		<link>http://www.func09.com/wordpress/archives/16</link>
		<comments>http://www.func09.com/wordpress/archives/16#comments</comments>
		<pubDate>Thu, 04 Nov 2004 22:01:29 +0000</pubDate>
		<dc:creator>haga</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[日記]]></category>

		<guid isPermaLink="false">http://www.func09.com/wp/?p=16</guid>
		<description><![CDATA[自身初のFlex案件に向けて、鯖をセットアップした。 JRun4×ColdFusion MX ×Flex1.5×Apacheといった感じ。 ApacheとColdFusionのインストールはインストーラーに従えば、問題な [...]]]></description>
			<content:encoded><![CDATA[<p>自身初のFlex案件に向けて、鯖をセットアップした。
JRun4×ColdFusion MX ×Flex1.5×Apacheといった感じ。</p>

<p>ApacheとColdFusionのインストールはインストーラーに従えば、問題ないだろうが
ColdFusionすら初めてなので、Flexのセットアップにちょいてまどった。</p>

<p>基本的には<a href="http://www.macromedia.com/support/documentation/en/flex/1_5/flexforcf.html">オンラインドキュメントのColdFusion上にFlexをインストールする</a>のページを参照されたし。</p>

<p>今のところ日本語ドキュメントがほとんど存在しないので、これから英語をゲップがでるほど読まなきゃならんと思うと陰鬱な心持ちなことだなぁ。
<span id="more-16"></span>
せっかくやったので、軽く説明</p>

<ol>
<li>ColdFusion管理画面から新しいサーバを作成、サーバ名を「flex」とでもしておく</li>
<li>Flexをインストールしたディレクトリにある「flex.war」を解凍する。解凍してできたフォルダ「flex/WEB-INF/flex」をColdFusionのWEB-INFフォルダにコピー（ex:JRun4/servers/flex/default-ear/default-war/WEB-INF/）</li>
<li>解凍してできたフォルダ「flex/WEB-INF/lib/」以下のファイルをCF側の「WEB-INF/lib/」の中に放り込む。（ex:ex:JRun4/servers/flex/default-ear/default-war/WEB-INF/lib/）</li>
<li>解凍フォルダの「flex/WEB-INF/web.xml」の&lt;webapp&gt;&lt;/webapp&gt;タグ内要素をCF側の「WEB-INF/web.xml」の内容にマージする</li>
<li>サーバを再起動して準備完了</li>
</ol>

<p>てな感じだった。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.func09.com/wordpress/archives/16/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FLEX</title>
		<link>http://www.func09.com/wordpress/archives/15</link>
		<comments>http://www.func09.com/wordpress/archives/15#comments</comments>
		<pubDate>Wed, 03 Nov 2004 05:35:10 +0000</pubDate>
		<dc:creator>haga</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[日記]]></category>

		<guid isPermaLink="false">http://www.func09.com/wp/?p=15</guid>
		<description><![CDATA[明日、Flexを使った案件の打ち合わせなので Flex Builderを触ってみた。 なんか思ってたより簡単そう というか、わりと僕向きな感じな希ガス。 ちょっと時間があいたから、マスクエフェクトのクラスを作りたいなぁと [...]]]></description>
			<content:encoded><![CDATA[<p>明日、Flexを使った案件の打ち合わせなので
Flex Builderを触ってみた。</p>

<p>なんか思ってたより簡単そう
というか、わりと僕向きな感じな希ガス。</p>

<p>ちょっと時間があいたから、マスクエフェクトのクラスを作りたいなぁと
妄想中。他人のソースをハックしてみる。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.func09.com/wordpress/archives/15/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

