<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>blog.taiga.jp</title>
    <link rel="alternate" type="text/html" href="http://blog.taiga.jp/" />
    <link rel="self" type="application/atom+xml" href="http://blog.taiga.jp/atom.xml" />
    <id>tag:blog.taiga.jp,2007-10-10://1</id>
    <updated>2009-12-14T12:23:42Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Publishing Platform 4.01</generator>

<entry>
    <title>Adobe AIR Day イベントレポートを寄稿しました</title>
    <link rel="alternate" type="text/html" href="http://blog.taiga.jp/archives/2009/12/14/213000/" />
    <id>tag:blog.taiga.jp,2009://1.81</id>

    <published>2009-12-14T12:30:00Z</published>
    <updated>2009-12-14T12:23:42Z</updated>

    <summary>スピーカー / 写真撮影 / 記事執筆と、一通り携わらせていただいた Adobe...</summary>
    <author>
        <name>taiga</name>
        
    </author>
    
        <category term="AIR" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Event" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.taiga.jp/">
        <![CDATA[<p>スピーカー / 写真撮影 / 記事執筆と、一通り携わらせていただいた Adobe AIR Day のイベントレポートが、<a href="http://www.adobe.com/jp/special/web_events_report/">Adobe イベント・セミナー レポート</a>ページに掲載されました。</p>

<p>Adobe AIR Day イベントレポート<br />
<a href="http://www.adobe.com/jp/joc/events/airday/">http://www.adobe.com/jp/joc/events/airday/</a></p>

<p>今まで書いてきた記事の中で、過去最多ページ数のレポートになりました。<br />当日イベントに参加できなかった方はもちろん、参加された方にも是非見ていただけばと思います。</p>]]>
        
    </content>
</entry>

<entry>
    <title>Adobe AIR Day 発表資料</title>
    <link rel="alternate" type="text/html" href="http://blog.taiga.jp/archives/2009/12/14/100000/" />
    <id>tag:blog.taiga.jp,2009://1.80</id>

    <published>2009-12-14T01:00:00Z</published>
    <updated>2009-12-14T12:30:10Z</updated>

    <summary>先月 11 月 26 日に行われた Adobe AIR Day の資料をアップし...</summary>
    <author>
        <name>taiga</name>
        
    </author>
    
        <category term="AIR" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Event" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.taiga.jp/">
        <![CDATA[<p>先月 11 月 26 日に行われた Adobe AIR Day の資料をアップしました。<br />
<a href="http://labs.taiga.jp/presentationMaterial/FxUG/AIRDay20091126Slide.pdf">http://labs.taiga.jp/presentationMaterial/FxUG/AIRDay20091126Slide.pdf</a></p>
<p>口頭での解説がメインだったため、Adobe AIR デベロッパーセンターに掲載されている記事と、内容に大差はありませんが置いておきます。</p>]]>
        
    </content>
</entry>

<entry>
    <title>AIR 2.0 用ネイティブインストーラ生成 Ant 設定ファイル</title>
    <link rel="alternate" type="text/html" href="http://blog.taiga.jp/archives/2009/11/19/163000/" />
    <id>tag:blog.taiga.jp,2009://1.79</id>

    <published>2009-11-19T07:30:00Z</published>
    <updated>2009-11-19T07:55:52Z</updated>

    <summary>Touch Viewer リリース後に作った副産物ですが、Win/Mac 両対応...</summary>
    <author>
        <name>taiga</name>
        
    </author>
    
        <category term="AIR" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.taiga.jp/">
        <![CDATA[<p><a href="http://www.adobe.com/jp/devnet/air/articles/touchviewer.html">Touch Viewer</a> リリース後に作った副産物ですが、Win/Mac 両対応するように強化したので晒しておきます。</p>
<p>下記画像のような Flex プロジェクトのフォルダ構造を保っていれば、build.xml を実行するだけで、各 OS に対応した .exe や .dmg を書き出すことができます。</p>

<p><img class="photo" title="Flash Builder 4 β 2 で作成したサンプル Flex(AIR) プロジェクト" alt="Flash Builder 4 β 2 で作成したサンプル Flex(AIR) プロジェクト" src="http://blog.taiga.jp/images/img2009111901.png" width="220" height="280" /></p>

<code>
&lt;?xml version="1.0" encoding="utf-8"?&gt;<br />
&lt;!--<br />
build.xml<br />
--&gt;<br />
&lt;project name="<strong>≪ プロジェクト名 ≫</strong>" basedir="." default="init"&gt;<br />
<br />
&nbsp;&nbsp; &lt;condition property="os" value="<strong>≪ Flex SDK のフルパス (Windows) ≫</strong>"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;os family="windows" /&gt;<br />
&nbsp;&nbsp; &lt;/condition&gt;<br />
&nbsp;&nbsp; &lt;condition property="os" value="<strong>≪ Flex SDK のフルパス (Mac) ≫</strong>"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;os family="mac" /&gt;<br />
&nbsp;&nbsp; &lt;/condition&gt;<br />
<br />
&nbsp;&nbsp; &lt;condition property="suffix" value=".exe"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;os family="windows" /&gt;<br />
&nbsp;&nbsp; &lt;/condition&gt;<br />
&nbsp;&nbsp; &lt;condition property="suffix" value=".dmg"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;os family="mac" /&gt;<br />
&nbsp;&nbsp; &lt;/condition&gt;<br />
<br />
&nbsp;&nbsp; &lt;property name="FLEX_HOME"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value="${os}"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;<br />
&nbsp;&nbsp; &lt;property name="ADT.JAR"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value="${FLEX_HOME}/lib/adt.jar"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />
&nbsp;&nbsp; &lt;property name="AIR_CONFIG"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value="${FLEX_HOME}/frameworks/air-config.xml" /&gt;<br />
&nbsp;&nbsp; &lt;property name="FLEX_TASKS_JAR"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value="${FLEX_HOME}/ant/lib/flexTasks.jar"&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />
&nbsp;&nbsp; &lt;property name="APP_ROOT_DIR"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value="src"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;<br />
&nbsp;&nbsp; &lt;property name="ASSET_DIR"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value="asset"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;<br />
&nbsp;&nbsp; &lt;property name="ICON_DIR"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value="${ASSET_DIR}/icon"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;<br />
&nbsp;&nbsp; &lt;property name="APP_NAME"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value="${ant.project.name}"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;<br />
&nbsp;&nbsp; &lt;property name="AIRI_NAME"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value="${APP_NAME}.airi"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />
&nbsp;&nbsp; &lt;property name="DESCRIPTOR_NAME"&nbsp;&nbsp;&nbsp;&nbsp; value="${APP_NAME}-app.xml"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;<br />
&nbsp;&nbsp; &lt;property name="NATIVE_APP_NAME"&nbsp;&nbsp;&nbsp;&nbsp; value="${APP_NAME}${suffix}"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />
&nbsp;&nbsp; &lt;property name="SWF_NAME"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value="${APP_NAME}.swf"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;<br />
&nbsp;&nbsp; &lt;property name="APP_ROOT_FILE"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value="${APP_ROOT_DIR}/${APP_NAME}.mxml"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />
&nbsp;&nbsp; &lt;property name="APP_ROOT_DESCRIPTOR" value="${APP_ROOT_DIR}/${APP_NAME}-app.xml"&nbsp;&nbsp;&nbsp;&nbsp;/&gt;<br />
&nbsp;&nbsp; &lt;property name="KEYSTORE"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value="<strong>≪デジタル証明書ファイル名≫</strong>.p12"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />
&nbsp;&nbsp; &lt;property name="STORETYPE"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value="pkcs12"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />
&nbsp;&nbsp; &lt;property name="STOREPASS"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value="<strong>≪デジタル証明書のパスワード≫</strong>"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />
<br />
&nbsp;&nbsp; &lt;taskdef resource="flexTasks.tasks" classpath="${FLEX_TASKS_JAR}" /&gt;<br />
<br />
&nbsp;&nbsp; &lt;target name="resources"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;copy<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file&nbsp;&nbsp; = "${APP_ROOT_DESCRIPTOR}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tofile = "${APP_NAME}-app.xml"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;replaceregexp<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file&nbsp;&nbsp;&nbsp;&nbsp;= "${APP_NAME}-app.xml"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; match&nbsp;&nbsp; = "&lt;content&gt;.+?&lt;/content&gt;"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; replace = "&lt;content&gt;${APP_NAME}.swf&lt;/content&gt;"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;copy toDir="${ICON_DIR}"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fileset dir="${APP_ROOT_DIR}/${ICON_DIR}" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/copy&gt;<br />
&nbsp;&nbsp; &lt;/target&gt;<br />
<br />
&nbsp;&nbsp; &lt;target name="amxmlc" depends="resources"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;mxmlc<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "${APP_ROOT_FILE}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "${SWF_NAME}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; configname&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "air"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; actionscript-file-encoding = "UTF-8"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; incremental&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= "true"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= "false"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; optimize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "true"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; target-player&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= "10"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;load-config filename="${AIR_CONFIG}" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/mxmlc&gt;<br />
&nbsp;&nbsp; &lt;/target&gt;<br />
<br />
&nbsp;&nbsp; &lt;target name="prepare" depends="amxmlc"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;java jar="${ADT.JAR}" fork="true" failonerror="true"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg value = "-prepare"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg value = "${AIRI_NAME}"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg value = "${DESCRIPTOR_NAME}" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg value = "${SWF_NAME}"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg value = "${ICON_DIR}"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/java&gt;<br />
&nbsp;&nbsp; &lt;/target&gt;<br />
<br />
&nbsp;&nbsp; &lt;target name="package" depends="prepare"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;java jar="${ADT.JAR}" fork="true" failonerror="true"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg value = "-package"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg value = "-storetype"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg value = "${STORETYPE}"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg value = "-keystore"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg value = "${KEYSTORE}"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg value = "-storepass"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg value = "${STOREPASS}"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg value = "-target"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg value = "native"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg value = "${NATIVE_APP_NAME}" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg value = "${AIRI_NAME}"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/java&gt;<br />
&nbsp;&nbsp; &lt;/target&gt;<br />
<br />
&nbsp;&nbsp; &lt;target name="clean" depends="package"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;delete dir&nbsp;&nbsp;= "${ASSET_DIR}"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;delete file = "${AIRI_NAME}"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;delete file = "${SWF_NAME}"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;delete file = "${SWF_NAME}.cache"&nbsp;&nbsp;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;delete file = "${DESCRIPTOR_NAME}" /&gt;<br />
&nbsp;&nbsp; &lt;/target&gt;<br />
<br />
&nbsp;&nbsp; &lt;target name="init" depends="clean" /&gt;<br />
<br />
&lt;/project&gt;
</code>
]]>
        
    </content>
</entry>

<entry>
    <title>Adobe AIR 2.0 beta サンプルアプリケーション</title>
    <link rel="alternate" type="text/html" href="http://blog.taiga.jp/archives/2009/11/18/180000/" />
    <id>tag:blog.taiga.jp,2009://1.78</id>

    <published>2009-11-18T09:00:00Z</published>
    <updated>2009-11-18T08:57:41Z</updated>

    <summary>昨日、Adobe Labs にて Flash Player 10.1 と AIR...</summary>
    <author>
        <name>taiga</name>
        
    </author>
    
        <category term="AIR" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.taiga.jp/">
        <![CDATA[<p>昨日、Adobe Labs にて Flash Player 10.1 と AIR 2.0 のパブリック beta 版が公開されましたが、このリリースに併せて、日本のアドビのサイトより、AIR 2.0 beta のサンプルアプリケーションと解説記事が公開されました。<br />
<a href="http://www.adobe.com/jp/joc/air2/samples/">http://www.adobe.com/jp/joc/air2/samples/</a></p>

<p>私も、サンプルアプリケーション開発と記事執筆に携わっています。<br />
<a href="http://www.adobe.com/jp/devnet/air/articles/touchviewer.html">http://www.adobe.com/jp/devnet/air/articles/touchviewer.html</a></p>


<p>元々、先月 (10/31) と今月 (11/5) に行われた FxUG 勉強会 ( 熊本、東京 ) のために用意していたサンプルアプリだったのですが、アドビさんのご厚意により、今回の公開に至りました。</p>

<p>また、来週 (11/26) に Adobe AIR Day という AIR 2.0 beta のお披露目イベントがありますが、その場で開発 Tips やデモを行います。平日のお昼から開催されるイベントですが、興味のある方は是非お越しください。</p>

<p>Adobe AIR Day<br />
<a href="http://www.info-event.jp/adobe/air/">http://www.info-event.jp/adobe/air/</a></p>


<p>ちなみに、Mac 版のサンプルアプリケーション (Touch Viewer) には、『タイルのリストを選択したとき、2 回目以降に開いたネイティブウィンドウからジェスチャーイベントを取得できない』という既知のバグがあります。ランタイムの問題か SDK の問題か定かではありませんが、現在問合わせ中です。</p>]]>
        
    </content>
</entry>

<entry>
    <title>Adobe AIR コード署名証明書を取得しました</title>
    <link rel="alternate" type="text/html" href="http://blog.taiga.jp/archives/2009/11/15/011500/" />
    <id>tag:blog.taiga.jp,2009://1.77</id>

    <published>2009-11-14T16:15:00Z</published>
    <updated>2009-11-22T01:26:09Z</updated>

    <summary> Adobe AIR の署名に日本国内で唯一対応している証明機関は GMO グロ...</summary>
    <author>
        <name>taiga</name>
        
    </author>
    
        <category term="AIR" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.taiga.jp/">
        <![CDATA[<p><img class="photo" title="証明書付き AIR アプリケーション インストールダイアログ" alt="証明書付き AIR アプリケーション インストールダイアログ" src="http://blog.taiga.jp/images/img2009111501.jpg" width="500" height="291" /></p>

<p>Adobe AIR の署名に日本国内で唯一対応している証明機関は <a href="http://jp.globalsign.com/service/codesign/adobeair/">GMO グローバルサイン株式会社</a>なのですが、残念なことに個人／個人事業主からの申し込みは受け付けられないようです。</p>
<p>なので、私のような個人事業主がコード署名証明書を取得するためには、海外の証明機関に申請する必要があります。</p>
<p>証明機関に関する情報は Adobe AIR のヘルプに記載されていますが、Ryan Stewart 氏のブログを読む限りでは、 Chosen Security 社がおすすめらしいので申し込んでみました。以下手順になります。</p>

<ol>

<li>
<p>Chosen Security 社の AIR コード署名証明書購入ページを開きます。<br /><a href="http://www.chosensecurity.com/tc-publisher-id-for-adobe-air">http://www.chosensecurity.com/tc-publisher-id-for-adobe-air</a></p>
</li>

<li>
<p>[Buy TC Publisher ID for Adobe Air for Individual Developers] をクリックして購入手続きへ移動します。</p>
</li>

<li>
<p>必要な情報を入力して決済手続きを終えると、入力メールアドレス宛に 2 通メールが届きます。 ( 1 通は個人識別番号 (PIN) が記載されたメール、もう 1 通は証明書発行申請 PDF ファイルが添付されたメール )</p></li>

<li>
<p>証明書発行申請 PDF ファイル内記述箇所に必要な情報を入力して、メール本文に記載されている ChosenSecurity Support のメールアドレス宛に送付します。 ( 添付 PDF が送られてくるメールアドレスとは異なるので、注意が必要です )</p>
<p>証明書発行申請 PDF ファイルの記述例をアップしておきます。( <a href="http://blog.taiga.jp/images/img2009111503.jpg" target="_blank">記述例はこちら</a> )</p>
<p>メールの本文に悩む方は、下記文章を参考にしてください。</p>
<code>
Dear Sir/Madam<br /><br />

I request a TC Publisher ID for Adobe AIR.<br />
Please confirm an attached PDF file.<br />
<br />
<br />
Sincerely,<br />
</code>
</li>

<li>
<p>Chosen Security 社の担当者から、証明書発行申請の受理通知メールが届きます。</p>
</li>

<li>
<p>2 営業日くらいで、証明書ダウンロードサイトの URL が記述されたメールが届きます。</p>
</li>

<li>
<p>個人識別番号 (PIN) を入力すると、証明書をダウンロードすることができます。<br />
この個人識別番号 (PIN) は、AIR ファイルを書き出すためのパスワードにもなります。</p>
</li>

</ol>

<p>以上で、怪しい「オレオレ証明書」付きの AIR アプリケーションともサヨナラです。<br />
自分の作った AIR アプリで、以下のような画面を晒すこともなくなります。</p>

<p><img class="photo" title="オレオレ証明書付き AIR アプリケーション インストールダイアログ" alt="オレオレ証明書付き AIR アプリケーション インストールダイアログ" src="http://blog.taiga.jp/images/img2009111502.jpg" width="500" height="386" /></p>



<p>参考</p>
<ul>

<li>
<p>ClockMaker Blog<br />
個人向けのコードサイニング証明書<br />
<a href="http://clockmaker.jp/blog/2009/01/certificates-for-indivisuals/">http://clockmaker.jp/blog/2009/01/certificates-for-indivisuals/</a>
</p>
</li>

<li>
<p>Ryan Stewart &#8211; Rich Internet Application Mountaineer<br />
Adobe AIR Certificates for Individuals Now Available<br />
<a href="http://blog.digitalbackcountry.com/2009/01/adobe-air-certificates-for-individuals-now-available/">http://blog.digitalbackcountry.com/2009/01/adobe-air-certificates-for-individuals-now-available/</a>
</p>
</li>

<li>
<p>Adobe AIR 1.5<br />
AIR ファイルへの電子署名<br />
<a href="http://help.adobe.com/ja_JP/AIR/1.5/devappsflash/WS5b3ccc516d4fbf351e63e3d118666ade46-7ff0.html">http://help.adobe.com/ja_JP/AIR/1.5/devappsflash/WS5b3ccc516d4fbf351e63e3d118666ade46-7ff0.html</a>
</p>
</li>

</ul>

]]>
        
    </content>
</entry>

<entry>
    <title>Adobe MAX 2009 参加レポートを寄稿しました</title>
    <link rel="alternate" type="text/html" href="http://blog.taiga.jp/archives/2009/11/04/163000/" />
    <id>tag:blog.taiga.jp,2009://1.76</id>

    <published>2009-11-04T07:30:00Z</published>
    <updated>2009-11-04T07:34:54Z</updated>

    <summary>ご存知の方も多いと思いますが、先月上旬に参加してきた Adobe MAX 200...</summary>
    <author>
        <name>taiga</name>
        
    </author>
    
        <category term="Event" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.taiga.jp/">
        <![CDATA[<p>ご存知の方も多いと思いますが、先月上旬に参加してきた Adobe MAX 2009 のレポートが、<a href="http://www.adobe.com/jp/special/web_events_report/">Adobe イベント・セミナー レポート</a>ページに掲載されました。</p>

<p>Adobe MAX 2009 デベロッパー視点で見る、Adobe MAX 2009 の見所<br />
<a href="http://www.adobe.com/jp/joc/events/max2009/users_report/developer/">http://www.adobe.com/jp/joc/events/max2009/users_report/developer/</a></p>


<p>あと、ノンクレジットではありますが、下記記事の執筆、写真撮影に携わっています。</p>

<p>基調講演1日目<br />
<a href="http://www.adobe.com/jp/joc/events/max2009/">http://www.adobe.com/jp/joc/events/max2009/</a></p>

<p>基調講演2日目<br />
<a href="http://www.adobe.com/jp/joc/events/max2009/page2.html">http://www.adobe.com/jp/joc/events/max2009/page2.html</a></p>

<p>Adobe Office in San Francisco “Japan Session”<br />
<a href="http://www.adobe.com/jp/joc/events/max2009/session/japan/">http://www.adobe.com/jp/joc/events/max2009/session/japan/</a></p>


<p>明日の FxUG 東京勉強会では、参加レポート報告と AIR 2.0 のデモを行います。<br />
<a href="http://www.fxug.net/modules/bwiki/index.php?Flex%CA%D9%B6%AF%B2%F1%C2%E889%B2%F3%A1%F7%C5%EC%B5%FE%BB%B2%B2%C3%BC%F5%C9%D5">Flex 勉強会 第 89 回＠東京参加受付</a></p>
]]>
        
    </content>
</entry>

<entry>
    <title>TLF (Text Layout Framework) と戯れる #10</title>
    <link rel="alternate" type="text/html" href="http://blog.taiga.jp/archives/2009/10/22/130000/" />
    <id>tag:blog.taiga.jp,2009://1.75</id>

    <published>2009-10-22T04:00:00Z</published>
    <updated>2009-11-04T08:23:49Z</updated>

    <summary> 前回のエントリに引き続き、今回は MXML で TLF に埋め込みフォントを適...</summary>
    <author>
        <name>taiga</name>
        
    </author>
    
        <category term="Flex 4" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="TLF" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.taiga.jp/">
        <![CDATA[<p><img class="photo" title="埋め込みフォント サンプル MXML 版" alt="埋め込みフォント サンプル MXML 版" src="http://blog.taiga.jp/images/img2009102202.jpg" width="420" height="420" /></p>

<p><a href="http://blog.taiga.jp/archives/2009/10/22/121500/">前回のエントリ</a>に引き続き、今回は MXML で TLF に埋め込みフォントを適応させるサンプルをアップします。</p>
<p>TLF が使用されている Spark コンポーネントは、RichText と RichEditableText の 2 つで、AS で使用するのと比べてかなり楽に使えます。その代わり、Linked Containers 機能のみ使用できない仕様になっているため、注意が必要です。</p>

<ul>
<li><p>サンプル ( 画面とソース : Flex 4.0.0.10485 でビルド )<br />
<a href="http://labs.taiga.jp/flex4/TLFSample08/">http://labs.taiga.jp/flex4/TLFSample08/</a><br />
<a href="http://labs.taiga.jp/flex4/TLFSample08/srcview/">http://labs.taiga.jp/flex4/TLFSample08/srcview/</a><br />
アップしたサンプルでは、埋め込み許可リストに記載されている内容に基づき、小塚ゴシックを SWF に埋め込んでいます。<br />
<a href="http://www.adobe.com/jp/type/browser/legal/embeddingeula.html">http://www.adobe.com/jp/type/browser/legal/embeddingeula.html</a></p></li>

<li>
<p>参考<br />
Adobe Open Source : Spark Text Primitives - Flex SDK<br />
<a href="http://opensource.adobe.com/wiki/display/flexsdk/Spark+Text+Primitives">http://opensource.adobe.com/wiki/display/flexsdk/Spark+Text+Primitives</a></p></li>
</ul>
]]>
        
    </content>
</entry>

<entry>
    <title>TLF (Text Layout Framework) と戯れる #09</title>
    <link rel="alternate" type="text/html" href="http://blog.taiga.jp/archives/2009/10/22/121500/" />
    <id>tag:blog.taiga.jp,2009://1.74</id>

    <published>2009-10-22T03:15:00Z</published>
    <updated>2009-10-22T03:45:09Z</updated>

    <summary> TLF に埋め込みフォントを適応させるための手段について書きます。FTE の仕...</summary>
    <author>
        <name>taiga</name>
        
    </author>
    
        <category term="Flex 4" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="TLF" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.taiga.jp/">
        <![CDATA[<p><img class="photo" title="埋め込みフォント サンプル" alt="埋め込みフォント サンプル" src="http://blog.taiga.jp/images/img2009102201.jpg" width="420" height="420" /></p>
<p>TLF に埋め込みフォントを適応させるための手段について書きます。<br />FTE の仕様上、TLF の埋め込みフォントフォーマットは DefineFont4(CFF) フォーマットである必要があります。( 従来の TextField に使用されているフォントフォーマットは DefineFont3 フォーマットです )</p>

<h3><strong>フォント埋め込み方法</strong></h3>
<p>AS, MXML のどちらを使用しても CFF 形式でフォントを埋め込むことは可能ですが、Flash Builder 4 β 2 付属の SDK(4.0.0.10485) で確認したところ、フォント埋め込み時の Embed メタデータタグの引数 cff が、embedAsCFF と名称変更されていたので注意が必要です。</p>


<h3><strong>AS での埋め込み例</strong></h3>

<code>package {<br />
import flash.display.Sprite;<br />
public class TaigaFont extends Sprite {<br />
&nbsp;&nbsp;&nbsp;&nbsp;[Embed(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "asset/font/KozMinPro-Bold.otf",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fontName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "testFont",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mimeType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "application/x-font",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;embedAsCFF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "true",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;advancedAntiAliasing = "true",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unicodeRange&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "U+5927, U+96c5" //大雅<br />
&nbsp;&nbsp;&nbsp;&nbsp;)]<br />
&nbsp;&nbsp;&nbsp;&nbsp;public static const FONT:Class;<br />
}<br />
}</code>

<p>上記コードは、フォントを埋め込んだクラスを SWF に書き出して、Loader クラスから外部読み込みして使用することを想定したものですが、この場合、基底クラスは Sprite または MovieClip クラスである必要があります。( Font クラスを基底クラスにしても mxmlc は SWF を書き出せますが、Loader が読み込んでくれません )</p>
<p>読み込み完了後、作成した TextFlow インスタンスの fontLookup プロパティの値を "embeddedCFF" (FontLookup.EMBEDDED_CFF) に定義して、TextLayoutFormat の fontFamily に取得したフォント名を定義します。</p>

<ul>
<li><p>サンプル ( 画面とソース : Flex 4.0.0.10485 でビルド )<br />
<a href="http://labs.taiga.jp/flex4/TLFSample07/">http://labs.taiga.jp/flex4/TLFSample07/</a><br />
<a href="http://labs.taiga.jp/flex4/TLFSample07/srcview/">http://labs.taiga.jp/flex4/TLFSample07/srcview/</a><br />
アップしたサンプルでは、埋め込み許可リストに記載されている内容に基づき、小塚明朝を SWF に埋め込んでいます。<br />
<a href="http://www.adobe.com/jp/type/browser/legal/embeddingeula.html">http://www.adobe.com/jp/type/browser/legal/embeddingeula.html</a></p></li>

<li>
<p>参考</p>

<ul>

<li><p>Adobe Open Source : Font Embedding Reprise - Flex SDK<br />
<a href="http://opensource.adobe.com/wiki/display/flexsdk/Font+Embedding+Reprise">http://opensource.adobe.com/wiki/display/flexsdk/Font+Embedding+Reprise</a></p></li>

<li><p>Adobe Open Source : FontTranscoder.java<br />
<a href="http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/media/FontTranscoder.java">http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/media/FontTranscoder.java</a></p></li>

<li><p>zenoplex : UNICODE RANGE GENERATOR<br />
<a href="http://www.zenoplex.jp/tools/unicoderange_generator.html">http://www.zenoplex.jp/tools/unicoderange_generator.html</a></p></li>

<li><p>高橋文樹.com : TextlayoutFrameworkやFlash.text.engineで埋め込みOpenTypeフォントを使う方法<br />
<a href="http://takahashifumiki.com/web/programing/710/">http://takahashifumiki.com/web/programing/710/</a></p></li>


</ul>
</li>

</ul>


]]>
        
    </content>
</entry>

<entry>
    <title>Adobe MAX 2009 LA </title>
    <link rel="alternate" type="text/html" href="http://blog.taiga.jp/archives/2009/09/28/161500/" />
    <id>tag:blog.taiga.jp,2009://1.73</id>

    <published>2009-09-28T07:15:00Z</published>
    <updated>2009-09-29T02:54:28Z</updated>

    <summary>I&apos;ll participate in the Adobe MAX 2009 L...</summary>
    <author>
        <name>taiga</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.taiga.jp/">
        <![CDATA[<p>I'll participate in the Adobe MAX 2009 LA next week.<br />
Session scheduled to participate are as follows.</p>

<p><strong>Monday, October 5, 2009</strong></p>
<ul>
<li>09:30 - 11:00 General Session at Nokia Theatre L.A. LIVE</li>
<li>11:30 - 12:30 Moving from Flex 3 to Flex 4</li>
<li>14:00 - 15:00 Encoding Best Practices for H.264 Video Using Flash</li>
<li>15:30 - 16:30 Effects in Flex 4</li>
<li>17:00 - 18:00 Building Flex Collaboration Components</li>
<li>20:00 - 21:00 Meet the Teams (Flex and Flash Builder)</li>
<li>21:00 - 22:00 Meet the Teams (Flash Professional)</li>
</ul>

<p><strong>Tuesday, October 6, 2009</strong></p>
<ul>
<li>09:00 - 10:00 Things Every Flash Developer Should Know</li>
<li>10:30 - 12:00 General Session at Nokia Theatre L.A. LIVE</li>
<li>13:30 - 14:30 Flash Player Internals</li>
<li>15:00 - 16:00 XML based FLA: The New Flash File Format</li>
<li>16:30 - 17:30 ELIPS 3.0: Mobile Flex Builder Toolkit</li>
<li>17:30 - 19:00 Sneak Peeks and 2009 MAX Awards</li>
<li>20:00 - 23:00 MAX Bash TBD</li>
</ul>

<p><strong>Wednesday, October 7, 2009</strong></p>
<ul>
<li>09:30 - 10:30 Testing and Debugging with Flash Builder 4</li>
<li>11:00 - 12:00 A Deep Dive into Ten Innovative Projects for Flash</li>
<li>14:00 - 15:00 Killer Text in Flash with the Text Layout Framework (TLF)</li>
<li>15:30 - 16:30 Social Media Experiences with Flash Media and RTMFP</li>
<li>17:00 - 18:00 Tackling Memory and Performance in Flash, Flex, and Adobe AIR</li>
</ul>


<p>This's my first-ever visit to America.<br />
So I'm really looking forward to it!</p>
]]>
        
    </content>
</entry>

<entry>
    <title>flash.accessibility パッケージの動作環境構築</title>
    <link rel="alternate" type="text/html" href="http://blog.taiga.jp/archives/2009/09/10/152000/" />
    <id>tag:blog.taiga.jp,2009://1.72</id>

    <published>2009-09-10T06:20:00Z</published>
    <updated>2009-09-10T07:06:06Z</updated>

    <summary>Flash MX (Flash Player 6) から導入されているアクセシビ...</summary>
    <author>
        <name>taiga</name>
        
    </author>
    
        <category term="Flex 3" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.taiga.jp/">
        <![CDATA[<p>Flash MX (Flash Player 6) から導入されているアクセシビリティ機能ですが、今までまともに試したことがなかったので試しました。今回試して分かったことは、Accessibility クラスと通信するスクリーンリーダーの用意が意外と手間だったということです。</p>
<p>たとえば、Camera クラスを使用するためには Web カメラが必要であるように、Accessibility クラスを使用するためにはスクリーンリーダーが必要で、スクリーンリーダーを動作させるためには、いくつかのラインタイムやアプリケーションをインストールをしなければなりません。</p>

<p>ひとまず Windows XP(32bit) かつフリーの環境で、スクリーンリーダーと flash.accessibility パッケージの動作確認をするために私が辿った手順を備忘録として残しておきます。決して下記手段を推奨しているわけではありませんので、ご注意ください。</p>

<ul>
<li><p>NDVA 日本語版を入手、インストール<br />
<a href="http://groups.google.com/group/nvda-japanese-users">http://groups.google.com/group/nvda-japanese-users</a></p></li>

<li><p>Microsoft SAPI 4.0a runtime binaries を入手、インストール<br />
<a href="http://activex.microsoft.com/activex/controls/sapi/spchapi.exe">http://activex.microsoft.com/activex/controls/sapi/spchapi.exe</a><br />
※ SAPI 5.0 では日本語の読み上げをしてくれないので注意</p></li>

<li><p>Text-to-speech engines の入手、インストール<br />
※現在、Microsoft 本家のダウンロードページが消えてしまっているので、Internet Archive から入手<br />
<a href="http://web.archive.org/web/20071230035858/http://www.microsoft.com/msagent/downloads/user.aspx">http://web.archive.org/web/20071230035858/http://www.microsoft.com/msagent/downloads/user.aspx</a><br />
[Lernout &amp; HauspieR TTS3000 TTS engine - Japanese (3 MB exe)] を選択</p></li>

<li><p>NDVA 起動、設定<br />
システムトレイ上の NVDA アイコンを右クリックしてメニューを開き、下記ダイアログの設定を行う</p>
<ul>
<li><p>出力先<br />[sapi4, Microsoft Speech API version 4] を選択<br />出力デバイスは任意</p></li>
<li><p>音声<br />[Adult mail #1 Japanese LH] または [Adult Female #1 Japanese LH] を選択</p></li>
</ul>
</li>
</ul>

<ul>
<li><p>サンプル ( 画面とソース : Flex 3.3.0.4852 でビルド、要 : スクリーンリーダー )<br />
AccessibilityPropertiesSample<br />
<a href="http://labs.taiga.jp/flex3/AccessibilityPropertiesSample/">http://labs.taiga.jp/flex3/AccessibilityPropertiesSample/</a><br />
<a href="http://labs.taiga.jp/flex3/AccessibilityPropertiesSample/srcview/">http://labs.taiga.jp/flex3/AccessibilityPropertiesSample/srcview/</a></p></li></ul>
]]>
        
    </content>
</entry>

<entry>
    <title>labs.taiga.jp Index</title>
    <link rel="alternate" type="text/html" href="http://blog.taiga.jp/archives/2009/09/01/183000/" />
    <id>tag:blog.taiga.jp,2009://1.71</id>

    <published>2009-09-01T09:30:00Z</published>
    <updated>2009-09-01T09:27:59Z</updated>

    <summary>今まで面倒くさがって放置していましたが、Flex のサンプルが増えてきたので、l...</summary>
    <author>
        <name>taiga</name>
        
    </author>
    
        <category term="Diary" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.taiga.jp/">
        <![CDATA[<p>今まで面倒くさがって放置していましたが、Flex のサンプルが増えてきたので、labs.taiga.jp のインデックスページを PHP で作りました。</p>

<p><a href="http://labs.taiga.jp/">http://labs.taiga.jp/</a></p>

<p>labs.taiga.jp 配下のディレクトリをほじくってリスト化しているので、今までに公開してきた画面とソースは一通り閲覧できますが、中にはベータバージョンや Nightly Build の SDK で書き出しているサンプルもありますので、参考にするときにはご注意ください。</p>

<p>今後、説明を端折って告知せずにサンプルを増やすこともあると思いますが、たまにこちらを覗いていただければと思います。</p>]]>
        
    </content>
</entry>

<entry>
    <title>Flex 3.4 SDK の SystemManager バグ</title>
    <link rel="alternate" type="text/html" href="http://blog.taiga.jp/archives/2009/08/27/185000/" />
    <id>tag:blog.taiga.jp,2009://1.70</id>

    <published>2009-08-27T09:50:00Z</published>
    <updated>2009-08-27T09:57:55Z</updated>

    <summary>Flex アプリケーションのプリローダーがローディングしているときにステージをク...</summary>
    <author>
        <name>taiga</name>
        
    </author>
    
        <category term="Flex 3" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.taiga.jp/">
        <![CDATA[<p>Flex アプリケーションのプリローダーがローディングしているときにステージをクリックすると、SystemManager がランタイムエラーを発生する問題を発見しました。</p>
<p>この問題は、デフォルトのプリローダーを使用しても発生しますし、プリローダーのローディング時間が長ければ長いほど発生するリスクが増えます。</p>
<p>新規作成直後で最小状態の Flex アプリケーションでも、プリローダーが一瞬表示されるので、この隙にマウスを連打するなどしてステージをクリックすればアウトです。</p>
<p>原因は、SystemManager の 5649 行目です。</p>
<code>
5646 : private function stageEventHandler(event:Event):void<br />
5647 : {<br />
5648 :&nbsp;&nbsp;&nbsp;&nbsp; if (event.target is Stage)<br />
5649 :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mouseCatcher.dispatchEvent(event);<br />
5650 : }<br />
</code>
<p>mouseCatcher は、プリローダーのローディングが完了するまで NULL なのですが、stageEventHandler はプリローダー動作中も呼び出されます。つまり、mouseCatcher の NULL チェック漏れです。</p>

<p>この問題は Gumbo にもあったようで、Flex 4 では fix されています。<br />
<a href="https://bugs.adobe.com/jira/browse/SDK-22682">https://bugs.adobe.com/jira/browse/SDK-22682</a></p>


<p><strong>当面の回避策</strong><br />
プリローダークラスを自作して、ステージの MouseEvent.MOUSE_DOWN イベントを SystemManager 内のリスナーより早く拾って、イベントの伝播を止める。</p>

<p>面倒だと感じる方は、以下のように DownloadProgressBar クラスを継承することをおすすめします。</p>

<code>
package {<br />
import flash.events.Event;<br />
import flash.events.MouseEvent;<br />
import mx.preloaders.DownloadProgressBar;<br />
public class MyPreloader extends DownloadProgressBar {<br />
&nbsp;&nbsp;&nbsp;&nbsp;public function MyPreloader() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addEventListener(Event.COMPLETE, onCompleteHandler);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addEventListener(Event.ADDED_TO_STAGE, addedToStateHandler, false, int.MAX_VALUE, true);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;protected function addedToStateHandler(event:Event):void {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stage.addEventListener(MouseEvent.MOUSE_DOWN, stageMouseDownHandler, false, int.MAX_VALUE, true);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;removeEventListener(event.type, arguments.callee);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;protected function stageMouseDownHandler(event:MouseEvent):void {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event.stopImmediatePropagation();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;protected function onCompleteHandler(event:Event):void {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stage.removeEventListener(MouseEvent.MOUSE_DOWN, stageMouseDownHandler, false);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;removeEventListener(event.type, arguments.callee);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
}<br />
</code>
]]>
        
    </content>
</entry>

<entry>
    <title>Label クラスの styleSheet プロパティ</title>
    <link rel="alternate" type="text/html" href="http://blog.taiga.jp/archives/2009/08/24/173000/" />
    <id>tag:blog.taiga.jp,2009://1.69</id>

    <published>2009-08-24T08:30:00Z</published>
    <updated>2009-08-24T08:43:36Z</updated>

    <summary>今までアクセス制御の属性が mx_internal だった Label クラスの...</summary>
    <author>
        <name>taiga</name>
        
    </author>
    
        <category term="Flex 3" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.taiga.jp/">
        <![CDATA[<p>今までアクセス制御の属性が mx_internal だった Label クラスの styleSheet プロパティが、Flex 3.4 から public に変更されました。</p>
<p>地味な変更ですが、地味に嬉しいことです。</p>
<p>早速サンプルを作りました。Label クラスのサブクラスである Text クラスを使用しています。</p>
<ul>
<li><p>サンプル ( 画面とソース : Flex 3.4.0.9271 でビルド )<br />
<a href="http://labs.taiga.jp/flex3/StyleSheetSample/">http://labs.taiga.jp/flex3/StyleSheetSample/</a><br />
<a href="http://labs.taiga.jp/flex3/StyleSheetSample/srcview/">http://labs.taiga.jp/flex3/StyleSheetSample/srcview/</a></p></li>
</ul>
]]>
        
    </content>
</entry>

<entry>
    <title>詳細！ActionScript 3.0 入門ノート [ 完全改訂版 ]</title>
    <link rel="alternate" type="text/html" href="http://blog.taiga.jp/archives/2009/08/13/160000/" />
    <id>tag:blog.taiga.jp,2009://1.68</id>

    <published>2009-08-13T07:00:00Z</published>
    <updated>2009-08-13T12:47:07Z</updated>

    <summary>ありがたいことに、著者の大重さんから 『ブログの更新ちょっと止まってるみたいだし...</summary>
    <author>
        <name>taiga</name>
        
    </author>
    
        <category term="Diary" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.taiga.jp/">
        <![CDATA[<p>ありがたいことに、<a href="http://oshige.com/blog/index/">著者の大重さん</a>から 『ブログの更新ちょっと止まってるみたいだし、Flex ユーザー向けに紹介しない？』 …と、今月発売されたばかりの著書を頂戴しました。</p>

<p>ブログの更新を滞らせて良かった♪…という冗談はさておき、真面目に紹介します。</p>

<p>2 冊の既刊 [*1] と大きく異なる点は、Flash Player 10 で使用できる型やクラスについて書かれている点です。現状… Flex 3 の場合、アプリケーションのターゲットプレイヤーのバージョンを意図的に 10 にしない限り、Flash Player 10 の機能は使えません。そのため Flash Player 10 の機能とは無縁…という開発者も多いと思います。</p>
<p>ですが、近い将来 Flex 3 から Flex 4 に開発の主流が移ったとき、Flex 4 アプリケーションは、Flash Player 10 以上のプレイヤーでないと動作しないため、Vector, Matrix3D, TextLine など、新しく用意されたクラスについての知識も必要になってきます。</p>
<p>これらの知識をゼロから学習するのに、この本は入門書として適切だと思います。</p>

<p>個人的には、「 Chapter06 Point クラスと Rectangle クラス」が一押しです。
Flex 開発者でも、少し変わったカスタムコンポーネントを作るときには、結局 UIComponent をベースにフルスクラッチしなければならないので、この手のネイティブな Flash のクラスの知識も必要になるんですよね。</p>

<p>興味のある方は是非。</p>

<p>
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&amp;bc1=333333&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=333333&amp;lc1=990000&amp;t=th0d-22&amp;o=9&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;md=1X69VDGQCMF7Z30FM082&amp;asins=4881666940" style="width:120px;height:240px;margin-bottom:20px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
</p>

<p>*1 : 既刊</p>

<p>
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&amp;bc1=333333&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=333333&amp;lc1=990000&amp;t=th0d-22&amp;o=9&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;md=1X69VDGQCMF7Z30FM082&amp;asins=4881666460" style="width:120px;height:240px;float:left;margin-right:10px;margin-bottom:20px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&amp;bc1=333333&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=333333&amp;lc1=990000&amp;t=th0d-22&amp;o=9&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;md=1X69VDGQCMF7Z30FM082&amp;asins=4881665901" style="width:120px;height:240px;float:left;margin-bottom:20px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
</p>

<p style="clear:both;">ちなみに、2 冊の既刊と新刊との比較について、カヤックさんが素敵にまとめています。<br />
<a href="http://level0.kayac.com/2009/08/actionscript30.php">http://level0.kayac.com/2009/08/actionscript30.php</a>
</p>
]]>
        
    </content>
</entry>

<entry>
    <title>TLF (Text Layout Framework) と戯れる #08</title>
    <link rel="alternate" type="text/html" href="http://blog.taiga.jp/archives/2009/08/12/163000/" />
    <id>tag:blog.taiga.jp,2009://1.67</id>

    <published>2009-08-12T07:30:00Z</published>
    <updated>2009-08-13T12:47:55Z</updated>

    <summary> Linked Containers と呼ばれる機能のサンプルをアップしました。...</summary>
    <author>
        <name>taiga</name>
        
    </author>
    
        <category term="Flex 4" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="TLF" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.taiga.jp/">
        <![CDATA[<p><img class="photo" title="Linked Containers サンプル" alt="Linked Containers サンプル" src="http://blog.taiga.jp/images/img2009081201.jpg" width="420" height="420" /></p>

<p>Linked Containers と呼ばれる機能のサンプルをアップしました。
TextFlow.flowComposer プロパティに、表示オブジェクト情報を持った複数の ContainerController インスタンスを登録することにより、柔軟なレイアウトを作ることができます。</p>
<p>これはなかなか面白いです。</p>
<ul>
<li><p>サンプル ( 画面とソース : Flex 4.0.0.9215 でビルド )<br />
<a href="http://labs.taiga.jp/flex4/TLFSample06/">http://labs.taiga.jp/flex4/TLFSample06/</a><br />
<a href="http://labs.taiga.jp/flex4/TLFSample06/srcview/">http://labs.taiga.jp/flex4/TLFSample06/srcview/</a></p></li>
<li><p>参考<br />
pekolog&raquo; ブログアーカイブ &raquo; Text Layout Frameworkによるブックビューア制作の流れ(1)<br />
<a href="http://b-o-w.jp/blog/2009/07/22/making_bcck_viewer_1/">http://b-o-w.jp/blog/2009/07/22/making_bcck_viewer_1/
</a></p></li>
</ul>
]]>
        
    </content>
</entry>

</feed>
