<?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>ハセテツラボ &#187; ActionScript</title>
	<atom:link href="http://tt-house.com/tag/actionscript/feed" rel="self" type="application/rss+xml" />
	<link>http://tt-house.com</link>
	<description>生涯一開発屋</description>
	<lastBuildDate>Wed, 08 Sep 2010 23:42:04 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>FlexでHTTPServiceを使ってWebサーバ上のXMLを取得、利用する方法</title>
		<link>http://tt-house.com/2009/04/flex-httpservice-xml.html</link>
		<comments>http://tt-house.com/2009/04/flex-httpservice-xml.html#comments</comments>
		<pubDate>Thu, 09 Apr 2009 14:00:42 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AIR]]></category>

		<guid isPermaLink="false">http://www.tt-house.com//wp/?p=94</guid>
		<description><![CDATA[HTTPServiceであればそのままバインドしてしまうのが一番簡単なのですが、...]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2009%252F04%252Fflex-httpservice-xml.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Flex%E3%81%A7HTTPService%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6Web%E3%82%B5%E3%83%BC%E3%83%90%E4%B8%8A%E3%81%AEXML%E3%82%92%E5%8F%96%E5%BE%97%E3%80%81%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%22%20%7D);"></div>
<p dir="ltr">HTTPServiceであればそのままバインドしてしまうのが一番簡単なのですが、Flex側で加工して使いたいときもあります。そういうときはハセテツはArrayCollectionに格納してから加工して使います。FlexBuilder3.0、MacOSX、Safari3.2で動作確認しました。</p>
<blockquote style="margin-right: 0px;" dir="ltr"><p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;<br />
&lt;response&gt;<br />
 &lt;item&gt;<br />
  &lt;id&gt;1&lt;/id&gt;<br />
  &lt;name&gt;hoge1&lt;/name&gt;<br />
 &lt;/item&gt;<br />
 &lt;item&gt;<br />
  &lt;id&gt;2&lt;/id&gt;<br />
  &lt;name&gt;hoge2&lt;/name&gt;<br />
 &lt;/item&gt;<br />
 &lt;item&gt;<br />
  &lt;id&gt;3&lt;/id&gt;<br />
  &lt;name&gt;hoge3&lt;/name&gt;<br />
 &lt;/item&gt;<br />
 &lt;item&gt;<br />
  &lt;id&gt;4&lt;/id&gt;<br />
  &lt;name&gt;hoge4&lt;/name&gt;<br />
&lt;/item&gt;<br />
&lt;/response&gt;</p></blockquote>
<p dir="ltr">上記がサンプルのXML、これがhttp://localhost.hoge.xmlだとします。</p>
<blockquote style="margin-right: 0px;" dir="ltr">
<p dir="ltr">private var list_connect:HTTPService = new <span class="caps">HTTPS</span>ervice();<br />
private function init():void<br />
{<br />
  ｌist_connect.url = &#8220;http://localhost/hoge.xml&#8221;;<br />
  list_connect.addEventListener(ResultEvent.RESULT,load_data);<br />
  list_connect.send();<br />
}<br />
private function load_data(event:ResultEvent):void<br />
{<br />
  var modelData:ArrayCollection = new ArrayCollection();<br />
  itemData = event.result.response.item as ArrayCollection;<br />
  for each(var item:Object in itemData)<br />
  {<br />
    trace(item.id + &#8221; / &#8221; + item.name);<br />
  }<br />
}</p>
</blockquote>
<p dir="ltr">見たまんま、HTTPServiceの結果をArrayCollectionに入れてるだけです。簡単なんですけど、意外と手間取ったんですよね。。。</p>
<p dir="ltr"> </p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2009/04/flex-httpservice-xml.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FlexでAccordionの内容を動的に追加/削除する</title>
		<link>http://tt-house.com/2009/04/flex-accordion.html</link>
		<comments>http://tt-house.com/2009/04/flex-accordion.html#comments</comments>
		<pubDate>Tue, 07 Apr 2009 16:23:25 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AIR]]></category>

		<guid isPermaLink="false">http://www.tt-house.com//wp/?p=93</guid>
		<description><![CDATA[といっても、addChild/removeChildを使うだけなんですけどね。 ...]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2009%252F04%252Fflex-accordion.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Flex%E3%81%A7Accordion%E3%81%AE%E5%86%85%E5%AE%B9%E3%82%92%E5%8B%95%E7%9A%84%E3%81%AB%E8%BF%BD%E5%8A%A0%2F%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%22%20%7D);"></div>
<p>といっても、addChild/removeChildを使うだけなんですけどね。</p>
<p>複数のパーツを含んだコンテンツを追加する場合、addChildだとコンポーネントにしておかないとめんどくさいです。ので、ハセテツは先にすべてのコンテンツを作成しておいて、必要に応じてremoveChildというやり方です。</p>
<blockquote style="margin-right: 0px;" dir="ltr"><p>var obj:DisplayObject = this.accordion1.getChildByName(&#8220;hoge&#8221;);<br />
this.accordion1.removeChild(obj);</p></blockquote>
<p>accordion1にある「hoge」というコンテンツを削除します。</p>
<p>Visibleとかで切り替えられるのかと思っていたら、そう簡単にはいきませんでした。</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2009/04/flex-accordion.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TabNavigatorのタブ切り替えイベントでStateを切り替える</title>
		<link>http://tt-house.com/2009/02/tabnavigator_tab_clicked.html</link>
		<comments>http://tt-house.com/2009/02/tabnavigator_tab_clicked.html#comments</comments>
		<pubDate>Tue, 17 Feb 2009 14:39:36 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.tt-house.com//wp/?p=86</guid>
		<description><![CDATA[こんなの「tab_chenge」みたいなイベントがあって、それで制御できるだろう...]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2009%252F02%252Ftabnavigator_tab_clicked.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22TabNavigator%E3%81%AE%E3%82%BF%E3%83%96%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E3%81%A7State%E3%82%92%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%82%8B%22%20%7D);"></div>
<p>こんなの「tab_chenge」みたいなイベントがあって、それで制御できるだろうと思い込んでいました。っていうか、もしかしたらあるのかもしれない。例によって正解かどうかわかりませんが、期待通りの動きだと思います。</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>&lt;mx:TabNavigator id=&#8221;tabnavigator1&#8243;&nbsp;change=&#8221;tab_change(event)&#8221;&gt;<br />&nbsp; &lt;mx:Canvas label=&#8221;タブ１&#8221;&gt;<br />&nbsp; &lt;/mx:Canvas&gt;<br />&nbsp; &lt;mx:Canvas label=&#8221;タブ２&#8221;&gt;<br />&nbsp; &lt;/mx:Canvas&gt;<br />&lt;/mx:TabNavigator&gt;</p>
</blockquote>
<p dir="ltr">上記がMXML。TabNavigatorに「タブが切り替わったら教えろや」ってイベントを設定しておきます。</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p dir="ltr">private function tab_change(event:Event):void<br />{&nbsp;<br />&nbsp;switch(tabnavigator1.selectedIndex.toString())<br />&nbsp;{<br />&nbsp;&nbsp;case &#8217;3&#8242;:<br />&nbsp;&nbsp;&nbsp;currentState = &#8220;search&#8221;;<br />&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;default:<br />&nbsp;&nbsp;&nbsp;currentState = &#8220;&#8221;;<br />&nbsp;&nbsp;&nbsp;break;&nbsp;&nbsp;<br />&nbsp;}<br />}</p>
</blockquote>
<p dir="ltr">で、これがAS側。あ、引数のevent使ってないや。上記の例だと、選択されたタブのインデックスが3（当然、0から始まるので4枚目のタブ、っていう意味です）だったら、Stateを「search」に切り替えてくださいという意味です。それ以外のタブがクリックされたら、ベースステートに戻ってくれます。</p>
<p dir="ltr">Canvasにclickイベントを設定しておいても、タブ自体がクリックされたイベントは判定してくれないんですね。タブはタブであって、Canvasではない、ということでしょう。まぁ確かにその通りです。</p>
<p dir="ltr">きっと、もっと美しい書き方があるのでしょう。ご存知の方が教えてくれるとうれしく思います。</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2009/02/tabnavigator_tab_clicked.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AIRでアプリケーション終了の確認ダイアログを表示する</title>
		<link>http://tt-house.com/2009/02/confirm_close_on_air.html</link>
		<comments>http://tt-house.com/2009/02/confirm_close_on_air.html#comments</comments>
		<pubDate>Fri, 13 Feb 2009 11:30:36 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[ActionScript]]></category>

		<guid isPermaLink="false">http://www.tt-house.com//wp/?p=85</guid>
		<description><![CDATA[不慣れなActionScript、はじめてのAIR開発とあって、いろんなことでつ...]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2009%252F02%252Fconfirm_close_on_air.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22AIR%E3%81%A7%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E7%B5%82%E4%BA%86%E3%81%AE%E7%A2%BA%E8%AA%8D%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AD%E3%82%B0%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%22%20%7D);"></div>
<p>不慣れなActionScript、はじめてのAIR開発とあって、いろんなことでつまづき続けています。</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;<br />&lt;mx:WindowedApplication xmlns:mx=&#8221;http://www.adobe.com/2006/mxml&#8221; applicationComplete=&#8221;init()&#8221; layout=&#8221;absolute&#8221;&gt;<br />&lt;mx:Script&gt;<br />&nbsp;&lt;![CDATA[<br />&nbsp;&nbsp;import mx.controls.Alert;<br />&nbsp;&nbsp;import mx.events.CloseEvent;<br />&nbsp;&nbsp;private function init():void<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;　　addEventListener(Event.CLOSING,application_closing);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;private function application_closing(event:Event):void<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;　　event.preventDefault();<br />&nbsp;&nbsp;&nbsp;　　Alert.show("終了しますか？","終了の確認",Alert.YES | Alert.CANCEL,null,goto_close);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;private function goto_close(event:CloseEvent):void<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;　　if(event.detail==Alert.YES)<br />&nbsp;&nbsp;&nbsp;　　{<br />&nbsp;&nbsp;&nbsp;&nbsp;　　nativeWindow.close();<br />&nbsp;&nbsp;&nbsp;　　}<br />&nbsp;&nbsp;}<br />&nbsp;]]&gt;<br />&lt;/mx:Script&gt;<br />&lt;/mx:WindowedApplication&gt;</p>
<p>&nbsp;</p>
</blockquote>
<p dir="ltr">applicationCompleteでイベントリスナーを追加しています。「closingイベントが起こったら呼べや」っていう感じですね。</p>
<p dir="ltr">で、呼ばれた関数の中で、ひとまずclosingイベントをキャンセルしています。確認云々のまえにキャンセルです。問答無用です。そのあと、確認します。キャンセルしておいて確認です。</p>
<p dir="ltr">確認ダイアログは、結果もコールバック関数です。これもはじめは違和感バリバリでした。C#だとそこで1回処理がとまるじゃないですか。基本的にすべてコールバック関数。慣れるまで戸惑いそうです。</p>
<p dir="ltr">確認ダイアログの結果によって、プログラムからアプリケーションを終了します。</p>
<p dir="ltr">正直、これが正しい実装方法なのかはまったくわかりません。こんな泥臭い方法じゃなくて、もっとスマートな記述方法があるのかもしれません。</p>
<p dir="ltr">まぁ、やりたかったことはできているようなのでOKかなと。</p>
<p dir="ltr">AIR 1.5、ActionScript 3.0です。</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2009/02/confirm_close_on_air.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RIAでいってみよう</title>
		<link>http://tt-house.com/2009/02/ria.html</link>
		<comments>http://tt-house.com/2009/02/ria.html#comments</comments>
		<pubDate>Tue, 10 Feb 2009 15:14:44 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://www.tt-house.com//wp/?p=84</guid>
		<description><![CDATA[いまさら唐突にRIA開発がやってみたくなりました。ホントにいまさらです。選択肢は...]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftt-house.com%252F2009%252F02%252Fria.html%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22RIA%E3%81%A7%E3%81%84%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86%22%20%7D);"></div>
<p>いまさら唐突にRIA開発がやってみたくなりました。ホントにいまさらです。選択肢はSilverlight2.0、Flex、Ajaxあたりでしょう。ハセテツのなかで、FlexとFLASHは別物です。タイムラインの概念があるのとないのとでは大違いです。</p>
<p>Ajaxはprototype.js、jquery等便利なライブラリがありますが、それでもコーディング量は多くなりそうな気がしてパス。</p>
<p>Silverlight2.0はC#が使えるということもあり、大本命だったのですがなんとなくFireFoxでの挙動が怪しかったりIEがフリーズ頻発したりでパス。あと、WPFの資料が少なすぎでギブ。Expression Blend 2もあんまり役に立ってくれなかった。コレであの値段って高くない？ターゲットブラウザがIEだけでいいっていうならアリだと思います。</p>
<p>&nbsp;で、Flex。これはRIAとしてのFlex、インストール型アプリケーションとしてのAIRが含まれます。豊富なTips、便利なFlex Builder、安定したマルチプラットフォーム。大量のリファレンス。決定ですね。Flex Builder3もあの機能であればさほど高価ではないでしょう。</p>
<p>フロントエンドはFlex、AIR。サーバサイドはRoR。しばらくはコレでいってみようと思います。</p>

]]></content:encoded>
			<wfw:commentRss>http://tt-house.com/2009/02/ria.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
