<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>F-site</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/" />
   <link rel="self" type="application/atom+xml" href="http://f-site.org/atom.xml" />
   <id>tag:f-site.org,2012://1</id>
   <updated>2012-05-10T08:26:25Z</updated>
   <subtitle>F-siteは、コンテンツ制作のプロフェッショナルによるFlash情報発信サイトです。ウェブサイトやセミナーを通じて、もっと「楽しい」制作を応援する情報を伝えていきます。</subtitle>
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.35</generator>

<entry>
   <title>Adobe Flash Professional Toolkit for CreateJSについて知りたい方のためのリンク紹介</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2012/05/10142515.html" />
   <id>tag:f-site.org,2012://1.1825</id>
   
   <published>2012-05-10T05:25:15Z</published>
   <updated>2012-05-10T08:26:25Z</updated>
   
   <summary>「Adobe Flash Professional Toolkit for Cr...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="サロン" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>「<a href="http://www.adobe.com/jp/products/flash/flash-to-html5.html" target="_blank">Adobe Flash Professional Toolkit for CreateJS</a> は、オープンソースの CreateJS JavaScript ライブラリを使用した HTML5 プロジェクト用にアセットを作成する Flash Professional CS6 の拡張機能です」(Flash Professionalヘルプ「<a href="http://helpx.adobe.com/jp/flash/using/whats-new-cs6.html#id_89835" target="_blank">CS6 の新機能</a>」)。無償拡張機能として、Flash Professional CS6とは別にインストールします。そのインストール方法から、基本的な操作、さらにもう少し具体的な機能や用途について解説記事が公開されつつあります。そのいくつかをご紹介します。</p>]]>
      <![CDATA[<h3>インストールと基本的な使い方</h3>

<p>[Toolkit for CreateJS]をインストールして、とにかく使ってみたいという方は、まずつぎの解説記事からお読みになるとよいでしょう。インストールから始まり、使用方法、さらに出力される各種ファイルの簡単な説明までされています。</p>

<ul>
<li><a href="http://mushikago.com/i/?p=815" target="_blank">Adobe Flash Professional Toolkit for CreateJS とりあえずどんなものか</a></li>
</ul>

<p>どのような使い勝手で何をするものなのかイメージがつかみたいという場合は、パネルの操作と出力結果がビデオで観られます(英語)。</p>

<ul>
<li><a href="http://tv.adobe.com/jp/watch/cs6-creative-cloud-feature-tour-for-web-jp/12798/" target="_blank">Flash Professional CS6でFlashコンテンツをHTMLに書き出し</a>(字幕なし)</li>
<li><a href="http://tv.adobe.com/jp/watch/cs6-creative-cloud-feature-tour-for-web-jp/12797/" target="_blank">Flash Professional CS6でのJavaScriptの作成</a>(字幕あり)</li>
</ul>

<p><br />
<h3>実際の用途とワークフロー</h3></p>

<p>実際のコンテンツ制作でどのように使うのか、あるいはデザインと開発とのワークフローにどう役立つのか知りたいときには、CreateJS  Suite開発者のGrant Skinner氏による解説を読まれるとよいでしょう。</p>

<ul>
<li><a href="http://www.adobe.com/jp/devnet/createjs/articles/getting-started.html" target="_balnk">Flash Professional Toolkit for CreateJSのファーストステップガイド</a></li>
</ul>

<p>[Toolkit for CreateJS]の開発意図としては、デザイン側でFlash Professional CS6でHTML5用のアセット(パーツ)をつくって書出し、CreateJSのライブラリを使って開発側が仕上げるという流れのようです<sup>[*1]</sup>。なお、つぎのビデオは英語(字幕なし)ですが、上記Grant Skinner氏の解説にもとづいた紹介になっているので、合わせてご覧になるとイメージしやすいでしょう。</p>

<ul>
<li><a href="http://tv.adobe.com/watch/adc-presents/toolkit-for-createjs-part-1-designing-game-assets/" target="_blank">Toolkit for CreateJS - Part 1: Designing Game Assets</a></li>
<li><a href="http://tv.adobe.com/watch/getting-started-with-flash-professional-toolkit-for-createjs/toolkit-for-createjs-part-2-adding-game-interactivity/" target="_blank">Toolkit for CreateJS - Part 2: Adding Game Interactivity</a></li>
</ul>

<h3>対応機能と出力結果</h3>

<p>[Toolkit for CreateJS]はFlashコンテンツを丸ごとHTML5に変換しようとするものではなく、Flashオーサリング環境でHTML5に対応したパーツが制作できるようにするためツールという位置づけのようです。その場合にも、どのような機能がどこまで使えるのか、また処理の速さや容量も気になります。</p>

<p>つぎの記事ではGrant Skinner氏が、[Toolkit for CreateJS]の現在対応してる機能や問題点について、今後の予定にも触れながら解説しています。</p>

<ul>
<li> <a href="http://www.adobe.com/jp/devnet/createjs/articles/using-flash-pro-toolkit-createjs.html?sdid=INJUJ" target="_blank">Flash Professional Toolkit for CreateJSの使用</a></li>
</ul>

<p>また、4月26日配信のADC OnAirでは、池田泰延氏が[Toolkit for CreateJS]の基本的な操作と出力結果について実演されています'(00:46:00あたりより)。</p>

<ul>
<li>第1回 「<a href="http://onair.adclounge.jp/01-01/" target="_blank">ADC OnAirってどんな番組？</a>」</li>
</ul>

<hr />

<p>[*1] akihiro kamijo「<a href="http://cuaoar.jp/2012/04/flash-professional-toolk.html" target="_blank">Flash Professional Toolkit for CreateJS の発表</a>」もそのようなワークフローを想定されています。</p>]]>
   </content>
</entry>
<entry>
   <title>「ADC OnAir」が隔週水曜日20:30からUSTREAM配信</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2012/05/08162650.html" />
   <id>tag:f-site.org,2012://1.1824</id>
   
   <published>2012-05-08T07:26:50Z</published>
   <updated>2012-05-10T08:44:06Z</updated>
   
   <summary>AdobeからWeb制作者に向けたUSTREAM番組「ADC OnAir」が始ま...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="業界ニュース" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>AdobeからWeb制作者に向けたUSTREAM番組「<a href="http://onair.adclounge.jp/" target="_blank">ADC OnAir</a>」が始まりました。隔週水曜日20:30から90分で、第1回は4月25日にAdobe CS6のWeb製品が紹介されました。第2回は『Stage3Dを学ぼう！Flashで2Dコンテンツ」と題して5月23日水曜日に配信されます([追記2012/05/10] 当初予定の9日にUSTREAMサイトがダウンしたため23日に変更されました)。</p>

<p><a href="http://onair.adclounge.jp/" target="_blank"><img alt="ADC_OnAir_logo.png" src="http://f-site.org/ADC_OnAir_logo.png" width="407" height="125" /></a></p>]]>
      <![CDATA[<blockquote>ADC OnAirは、Webサイト制作者やアプリ開発者向けのアドビ技術情報サイトADC（Adobe Developer Connection）がお届けするUSTREAM番組です。アドビの新製品情報やWeb関連の技術情報を毎回著名なクリエイターをゲストに迎えて、お伝えしていきます。</blockquote>

<p>第2回「Stage3Dを学ぼう！Flashで2Dコンテンツ」は、野中がStarlingフレームワークを入門者向けに解説します。</p>

<blockquote>
<p>Stage3Dは描画を専門に扱うプロセッサ「GPU」でスクリーンを描画する技術です。描画を飛躍的に速めるものの、コンピュータがどのように画面を描くか理解していないとプログラムは書けない、という難点もあります。</p>

<p>Starlingは2次元のコンテンツをこれまでのActionScript 3.0と同じ感覚でスクリプティングしつつ、Stage3Dで描画するフレームワークです。いわば、ActionScript 3.0標準のスクリプトとStage3Dの間の通訳を務めてくれるのです。</p>

<p>そのStarlingを使って、ActionScript 3.0のフレームアクションを、Stage3Dによるスクリプトに書替えます。さらに、Flash Professional CS6から書出せるスプライトシートを使って、ムービークリップのアニメーションをStarlingのスクリプトに移行してみます。</p>
</blockquote>

<p>なお、合間のコーナーでは注目の[Toolkit for CreateJS]についても基本的な紹介をします。番組の最後には視聴者プレゼントの抽選も行われます。</p>]]>
   </content>
</entry>
<entry>
   <title>[05/26] 野中文雄「Starlingで始めるFlash Player 11のStage3D講座」</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2012/04/26000000.html" />
   <id>tag:f-site.org,2012://1.1821</id>
   
   <published>2012-04-25T15:00:00Z</published>
   <updated>2012-04-06T10:45:18Z</updated>
   
   <summary>「Starling」は、Flash Player 11の新しい描画機能「Stag...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<blockquote><p>「<a href="http://f-site.org/articles/2012/01/25170958.html" target="_blank">Starling</a>」は、Flash Player 11の新しい描画機能「Stage3D」にもとづいてつくられた2次元の描画用フレームワークです。本講座では、Flash CS5 ProfessionalでStarlingフレームワークを使って、Stage3Dのスクリプティングがどのようなものなのか、サンプルを作成しながら試してみます。</p>

<p>ActionScript 3.0の基礎を学んだ方、「<a href="http://www.jagra.or.jp/school/web/actionscript3_step1.html" target="_blank">基礎から学ぶActionScript 3.0～ステップ1</a>」を受講された程度の知識が前提となります。</p></blockquote>]]>
      <![CDATA[<p>
◇日　時： <br>
　2012年5月26日土曜日14:00〜17:00<br>
◇主　催： <a href="http://www.jagra.or.jp/school/index.html" target="_blank">PROFESSIONAL DTP&WEB SCHOOL</a>　講師: 野中 文雄<br>
◇教　材： オリジナルテキスト<br>
◇受講料： 12,600円（教材費・税込み）<br>
◇詳細は <a href="http://www.jagra.or.jp/school/web/starling_3d.html" target="_blank">http://www.jagra.or.jp/school/web/starling_3d.html</a>
</p>
<p>
◇関連講座：<br>
　「<a href="http://www.jagra.or.jp/school/web/actionscript3_step1.html" target="_blank">基礎から学ぶActionScript 3.0〜ステップ1</a>」<br>
　「<a href="http://www.jagra.or.jp/school/web/actionscript3_step2.html" target="_blank">基礎から学ぶActionScript 3.0〜ステップ2</a>」<br>
　「<a href="http://www.jagra.or.jp/school/main/web/actionscript3_step3.html" target="_blank">基礎から学ぶActionScript 3.0〜ステップ3</a>」
</p>]]>
   </content>
</entry>
<entry>
   <title>2012年5月セミナー受付開始</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2012/04/24161704.html" />
   <id>tag:f-site.org,2012://1.1823</id>
   
   <published>2012-04-24T07:17:04Z</published>
   <updated>2012-04-24T07:20:45Z</updated>
   
   <summary> 5/19（土）に行われるF-siteセミナーの参加受付を開始しました。 「Fl...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="お知らせ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>
5/19（土）に行われるF-siteセミナーの参加受付を開始しました。
</p>
<p>
「Flashユーザーが取り組むHTML5」と題し、HTML5のセミナーをお届けします。
</p>]]>
      <![CDATA[<p>
定員に達しましたら締め切りますので、お早めにお申込ください。<br />
<a href="http://f-site.org/articles/2012/02/07104606.html"  >セミナー詳細</a>
</p>]]>
   </content>
</entry>
<entry>
   <title>WebサイトAdobe &amp; HTMLが公開</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2012/04/24004618.html" />
   <id>tag:f-site.org,2012://1.1822</id>
   
   <published>2012-04-23T15:46:18Z</published>
   <updated>2012-04-23T15:50:44Z</updated>
   
   <summary>HTMLやCSS、SVG、あるいはJavaScriptなどHTMLに関わる情報を...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="業界ニュース" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>HTMLやCSS、SVG、あるいはJavaScriptなどHTMLに関わる情報を共有する場として、Webサイト<a href="http://html.adobe.com/" target="_blank">Adobe & HTML</a>が公開されました。その内容がblog記事「<a href="http://blogs.adobe.com/webplatform/2012/04/23/proudly-introducing-adobe-html/" target="_blank">Proudly Introducing Adobe & HTML</a>」で紹介されています。サイトはつぎのような構成です。</p>]]>
      <![CDATA[<h3>Web Standards</h3>
<p>Webの標準化を進め、CSS RegionsやCSS ShadersなどWebKitの機能を高めるプロジェクトについての情報が提供されます。さまざまな機能やカスタムビルド、サンプルなどを紹介します。</p>

<h3>Open Source</h3>
<p>Apache CordovaやjQuery MobileなどAdobeが取組んでいるオープンソースプロジェクトの情報です。プロジェクトへの参加・貢献の仕方についても伝えられます。</p>

<h3>Tools & Services</h3>
<p>Webに関わる便利なツールとサービスの紹介です。Adobeが優れたコンテンツのデザインや制作、コード、テスト、パブリッシュを手助けします。</p>]]>
   </content>
</entry>
<entry>
   <title>[05/18]野中文雄「基礎から学ぶActionScript 3.0 ～ステップ2」</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2012/04/18000000.html" />
   <id>tag:f-site.org,2011://1.1695</id>
   
   <published>2012-04-17T15:00:00Z</published>
   <updated>2012-04-17T15:23:34Z</updated>
   
   <summary>ActionScript 3.0の基礎の学習を終えた初級者が対象です。Movie...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<blockquote>ActionScript 3.0の基礎の学習を終えた初級者が対象です。MovieClipインスタンスをインタラクティブにアニメーションさせるムービーを作成しながら、座標と座標空間の扱い、条件判定、配列やObjectの操作などについて学びます。関数を基本にすえた処理のパーツ化についても、実習をとおして理解していただきます。</blockquote>]]>
      <![CDATA[<table>
<tr>
<td valign="top">
<p>
◇日　時： <br>
　2012年5月18日金曜日10:30～17:00<br>
◇主　催： <a href="http://www.jagra.or.jp/school/main/index.html" target="_blank">PROFESSIONAL DTP&WEB SCHOOL</a>　講師: 野中 文雄<br>
◇教　材： 野中 文雄 著『<a href="http://f-site.org/articles/2008/10/03082215.html" target="_blank">ActionScript 3.0プロフェッショナルガイド</a>』（定価4,179円）<br>
◇受講料： 21,000円（書籍代・税込み）<br>
◇詳細は <a href="http://www.jagra.or.jp/school/web/actionscript3_step2.html" target="_blank">http://www.jagra.or.jp/school/web/actionscript3_step2.html</a>
</p>
<p>
◇関連講座：<br>
　「<a href="http://www.jagra.or.jp/school/web/actionscript3_step1.html" target="_blank">基礎から学ぶActionScript 3.0 ～ステップ1</a>」<br>
　「<a href="http://www.jagra.or.jp/school/web/actionscript3_step3.html" target="_blank">基礎から学ぶActionScript 3.0 ～ステップ3</a>」
</p>
</td>
<td width="120">
<a href="http://f-site.org/articles/2008/10/03082215.html" target="_blank"><img alt="ActionScript 3.0 Professional Guide" src="http://www.fumiononaka.com/Books/Images/AS3ProfessionalGuide_m.gif" width="109" height="140" border="1" /></a>
</td>
</tr>
</table>]]>
   </content>
</entry>
<entry>
   <title>[05/17]野中文雄「基礎から学ぶActionScript 3.0〜ステップ1」</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2012/04/17000000.html" />
   <id>tag:f-site.org,2011://1.1672</id>
   
   <published>2012-04-16T15:00:00Z</published>
   <updated>2012-04-06T10:43:57Z</updated>
   
   <summary>簡単なスクリプトは書いたことがあるという初学者を対象とします。スクリプトによるア...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<blockquote>簡単なスクリプトは書いたことがあるという初学者を対象とします。スクリプトによるアニメーションを題材にして、ActionScript 3.0の基本と処理の組立て方・考え方を解説します。おもな学習項目としては、変数と関数、イベントリスナー、および日付と文字の扱いなどが含まれます。ActionScript 2.0の知識は、前提とはしません。</blockquote>]]>
      <![CDATA[<table>
<tr>
<td valign="top">
<p>
◇日　時： <br>
　2012年5月17日木曜日10:30〜17:00<br>
◇主　催： <a href="http://www.jagra.or.jp/school/index.html" target="_blank">PROFESSIONAL DTP&WEB SCHOOL</a>　講師: 野中 文雄<br>
◇教　材： 野中 文雄 著『<a href="http://f-site.org/articles/2008/10/03082215.html" target="_blank">ActionScript 3.0プロフェッショナルガイド</a>』（定価4,179円）<br>
◇受講料： 21,000円（書籍代・税込み）<br>
◇詳細は <a href="http://www.jagra.or.jp/school/web/actionscript3_step1.html" target="_blank">http://www.jagra.or.jp/school/web/actionscript3_step1.html</a>
</p>
<p>
◇関連講座：<br>
　「<a href="http://www.jagra.or.jp/school/web/actionscript3_step2.html" target="_blank">基礎から学ぶActionScript 3.0〜ステップ2</a>」<br>
　「<a href="http://www.jagra.or.jp/school/web/actionscript3_step3.html" target="_blank">基礎から学ぶActionScript 3.0〜ステップ3</a>」
</p>
</td>
<td width="120">
<a href="http://f-site.org/articles/2008/10/03082215.html" target="_blank"><img alt="ActionScript 3.0 Professional Guide" src="http://www.fumiononaka.com/Books/Images/AS3ProfessionalGuide_m.gif" width="109" height="140" border="1" /></a>
</td>
</tr>
</table>]]>
   </content>
</entry>
<entry>
   <title>[04/28] 野中文雄「Flash ActionScript 3.0ベーシックトレーニング(初級)」</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2012/03/28000000.html" />
   <id>tag:f-site.org,2012://1.1671</id>
   
   <published>2012-03-27T15:00:00Z</published>
   <updated>2012-03-24T08:15:49Z</updated>
   
   <summary>Flashアニメーションの基本、具体的にはタイムラインやフレームの操作とシンボル...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<blockquote><p>Flashアニメーションの基本、具体的にはタイムラインやフレームの操作とシンボルの作成について理解している方を対象とした、ActionScriptの入門講座です。ボタンを使ったスライドショー等、Flashでのインターフェイス作成を題材に、基本的なスクリプトを解説していきます。</p>

<p>受講にあたり、ActionScriptを含めスクリプトを書いた経験は不要です。</p></blockquote>]]>
      <![CDATA[<p>
◇日　時： <br>
　2012年4月28日土曜日10:30〜17:00<br>
◇主　催： <a href="http://www.jagra.or.jp/school/index.html" target="_blank">PROFESSIONAL DTP&WEB SCHOOL</a>　講師: 野中 文雄<br>
◇教　材： オリジナルテキスト<br>
◇受講料： 21,000円（教材費・税込み）<br>
◇詳細は <a href="http://www.jagra.or.jp/school/web/actionscript_basic.html" target="_blank">http://www.jagra.or.jp/school/web/actionscript_basic.html</a>
</p>
<p>
◇関連講座：<br>
　「<a href="http://www.jagra.or.jp/school/web/actionscript3_step1.html" target="_blank">基礎から学ぶActionScript 3.0〜ステップ1</a>」<br>
　「<a href="http://www.jagra.or.jp/school/web/actionscript3_step2.html" target="_blank">基礎から学ぶActionScript 3.0〜ステップ2</a>」<br>
　「<a href="http://www.jagra.or.jp/school/main/web/actionscript3_step3.html" target="_blank">基礎から学ぶActionScript 3.0〜ステップ3</a>」
</p>]]>
   </content>
</entry>
<entry>
   <title>CreateJS発表</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2012/03/17151938.html" />
   <id>tag:f-site.org,2012://1.1820</id>
   
   <published>2012-03-17T06:19:38Z</published>
   <updated>2012-03-17T06:45:51Z</updated>
   
   <summary>Grant Skinner氏が、blog記事「Announcing Create...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="業界ニュース" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>Grant Skinner氏が、blog記事「<a href="http://gskinner.com/blog/archives/2012/03/announcing-createjs.html" target="_blank">Announcing CreateJS</a>」でCreateJSを発表しました。公式サイトも間もなく公開されるようです。氏のblogから内容をかいつまんでご紹介します。</p>]]>
      <![CDATA[<h3>CreateJS</h3>
<p>CreateJSは、いくつものライブラリモジュールとツールを統合したものです。HTML5にもとづくリッチなインタラクティブコンテンツがつくれます。これらのライブラリはそれぞれ独立して使えますし、ニーズに応じて組合わせることもできます。まずは、EaselJSとTweenJS,、SoundJS、PreloadJSが提供されます。</p>

<p>公式サイト<a href="http://createjs.com/" target="_blank">createjs.com</a>では、デモやドキュメント、チュートリアル、コミュニティ、ショーケースなどが公開される予定です。</p>

<h3>EaselJS</h3>
<p>EaselJSはHTML5のCanvasに表示リストやインタラクティブな仕組みを加えます。扱い方も、Flashのデベロッパにはなじみやすくつくられています<sup>[*1]</sup>。</p>

<p>間もなく公開されるマイナーバージョンv0.4.1は、バグの修正や細かな機能が加えられます。さらにv0.5は、もっと大きな機能やそれらの整理と整合性、ドキュメントなどの改善を行います。</p>

<h3>TweenJS</h3>
<p>TweenJSはトゥイーンとアニメーションのライブラリです。EaselJSと一緒に使うこともできます。簡単なインターフェイスで機能は豊かです。開始待ちやイージング、コールバック、数値でないプロパティのサポートなどが備わっています。バージョンはもうすぐv0.2になります。</p>

<h3>SoundJS</h3>
<p>SoundJSは、HTML5で問題になりやすいサウンドを切離して、専門に扱うライブラリです。現在v0.2がテストされています。</p>

<h3>PreloadJS</h3>
<p>PreloadJSは素材を簡単にプリロードできます。読込めるのは、画像やサウンド、JavaScriptなどのデータです。ロードの進み具合を捉え、複数のキューが扱えます。バージョンv0.1がビルドされようとしています。</p>

<h3>Zoë</h3>
<p>ZoëはオープンソースのAIRアプリケーションで、SWFアニメーションをスプライトシートに変換します。Flash Professional CS6からは、直接EaselJS用のスプライトシートが書出せる予定です。</p>

<h3>Toolkit for CreateJS</h3>
<p>Toolkit for CreateJSはFlash Professionalの機能拡張で、コンテンツをCreateJSとHTML5用にパブリッシュして、オブジェクトをインスタンス化しスクリプトで制御できるようにします。</p>

<hr />
<p>[*1] EaselJSの基本的な使い方については、「<a href="http://www.fumiononaka.com/Business/html5/FN1202005.html" target="_blank">EaselJSで図形を描く</a>」および「<a href="http://www.fumiononaka.com/Business/html5/FN1203001.html" target="_blank">EaselJSで描いた星形を回す</a>」をお読みください。</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] 45度回転した矩形領域に対するクリック座標の判定</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2012/03/04005032.html" />
   <id>tag:f-site.org,2012://1.1819</id>
   
   <published>2012-03-03T15:50:32Z</published>
   <updated>2012-03-06T06:41:33Z</updated>
   
   <summary>2012年2月28日に催された「ADC MEETUP Round 04 Soci...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="サンプル" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>2012年2月28日に催された「<a href="http://www.4gamer.net/games/032/G003263/20120229016/" target="_blank">ADC MEETUP Round 04 Social Gaming</a>」で、中野亘氏のつくられたパズルゲーム「ワクチンケース」の中でタッチされた座標を、45度傾けた格子で調べられたらというアイデアが出されました(図001)。これをお題として頂戴します。</p>

<p><strong>図001■45度傾けた格子で座標を調べる</strong><br />
<img alt="kyounoshikaku_01.png" src="http://f-site.org/kyounoshikaku_01.png" width="183" height="184" /></p>]]>
      <![CDATA[<p>格子が水平と垂直であれば、座標がどの矩形に含まれるかは、xy座標値を調べるだけなので簡単です(図002)。格子を45度傾けると、格子の直線を方程式にしなければならないようにも思えてしまいます。</p>

<p><strong>図002■水平と垂直の格子なら調べるのは簡単</strong><sup>[*1]</sup><br />
<img alt="FF1203031_002.png" src="http://f-site.org/FF1203031_002.png" width="655" height="488" /></p>

<p>けれど、インスタンスは格子が水平と垂直になるようにつくっておき、タイムラインで45度回せば、インスタンスから見た座標でどの矩形に含まれるかがわかります(図003)。</p>

<p><strong>図003■インスタンスは格子が水平と垂直になるようにつくってタイムラインで45度回転する</strong><br />
<img alt="FF1203031_001.png" src="http://f-site.org/FF1203031_001.png" width="279" height="278" /></p>

<p>ただそれでは、インスタンスに何かの操作を加えるといった、座標を調べる以外の処理が逆にしにくくなります。そこで、インスタンスではなく、座標を計算上45度回して調べることにしましょう。座標はPointオブジェクトでもち、Matrixクラスを用いて回転します<sup>[*2]</sup>。回転は<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/geom/Matrix.html#rotate()" target="_blank"><em>Matrix.rotate()</em>メソッド</a>で行い、<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/geom/Matrix.html#transformPoint()" target="_blank"><em>Matrix.transformPoint()</em>メソッド</a>によりPointオブジェクトに適用します。</p>

<p>つぎのスクリプト001は、45度傾けた格子でクリック座標を調べたいMovieClipシンボルのフレームアクションに設定します。すると、クリックした座標を含む矩形領域に、青い外枠が引かれます(図004)。格子の間隔は原点から25ピクセルずつにしました。</p>

<p><strong>スクリプト001■クリックした座標が含まれる矩形領域に外枠を引く</strong><br />
<pre>// フレームアクション: クリック座標を調べたいMovieClipシンボル<br />
var rotate45:Number = 45 / 180 * Math.PI;<br />
var gridSize:Number = 25;<br />
var myShape:Shape = new Shape();<br />
var canvas:Graphics = myShape.graphics;<br />
addChild(myShape);<br />
addEventListener(MouseEvent.CLICK, xGetPoint);<br />
function xGetPoint(eventObject:MouseEvent):void {<br />
	var mousePoint:Point = new Point(mouseX, mouseY);<br />
	var myMatrix:Matrix = new Matrix();<br />
	myMatrix.rotate(rotate45);<br />
	var transformedPoint:Point = myMatrix.transformPoint(mousePoint);<br />
	var nX:Number = transformedPoint.x;<br />
	var nY:Number = transformedPoint.y;<br />
	var unitX:int = Math.floor(nX / gridSize);<br />
	var unitY:int = Math.floor(nY / gridSize);<br />
	var left:Number = unitX * gridSize;<br />
	var right:Number = (unitX + 1) * gridSize;<br />
	var top:Number = unitY * gridSize;<br />
	var bottom:Number = (unitY + 1) * gridSize;<br />
	myMatrix.identity();<br />
	myMatrix.rotate(-rotate45);<br />
	var topLeft:Point = myMatrix.transformPoint(new Point(left, top));<br />
	var topRight:Point = myMatrix.transformPoint(new Point(right, top));<br />
	var bottomLeft:Point = myMatrix.transformPoint(new Point(left, bottom));<br />
	var bottomRight:Point = myMatrix.transformPoint(new Point(right, bottom));<br />
	canvas.clear();<br />
	canvas.lineStyle(3, 0x0000FF);<br />
	canvas.moveTo(topLeft.x, topLeft.y);<br />
	canvas.lineTo(topRight.x, topRight.y);<br />
	canvas.lineTo(bottomRight.x, bottomRight.y);<br />
	canvas.lineTo(bottomLeft.x, bottomLeft.y);<br />
	canvas.lineTo(topLeft.x, topLeft.y);<br />
}</pre></p>

<p><strong>図004■クリックした座標を含む矩形領域に青い外枠がつく</strong><br />
<img alt="FF1203031_003.png" src="http://f-site.org/FF1203031_003.png" width="270" height="235" /></p>

<p>考え方として押さえておくことはふたつです。第1に、クリックした座標を45度傾けた格子にあてはめることです。つぎのステートメントが、クリックした座標を45度回転しています。45度回せば、格子は水平と垂直になりますので、どの矩形領域に含まれるか調べるのはたやすいでしょう。</p>

<blockquote>
<pre>var mousePoint:Point = new Point(mouseX, mouseY);
var myMatrix:Matrix = new Matrix();
myMatrix.rotate(rotate45);
var transformedPoint:Point = myMatrix.transformPoint(mousePoint);</pre>
</blockquote>

<p>第2は、調べた矩形領域に対して操作を加えることです。前掲スクリプト001では、外枠を描きました。これは45度回転した(つまり格子が水平と垂直の)状態で矩形座標の4点を決めたうえで、改めてMatrixクラスにより各座標を45度戻しています。なお、<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/geom/Matrix.html#identity()" target="_blank"><em>Matrix.identity()</em>メソッド</a>は、Matrixオブジェクトを初期化します。</p>

<blockquote>
<pre>myMatrix.identity();
myMatrix.rotate(-rotate45);
var topLeft:Point = myMatrix.transformPoint(new Point(left, top));
var topRight:Point = myMatrix.transformPoint(new Point(right, top));
var bottomLeft:Point = myMatrix.transformPoint(new Point(left, bottom));
var bottomRight:Point = myMatrix.transformPoint(new Point(right, bottom));</pre>
</blockquote>

<hr />
<p>[*1] 中野氏の使われたプレゼンテーション用スライド「<a href="http://www.slideshare.net/watarunakano/adc-meetup-04-flash" target="_blank">ADC MEETUP 04 Flashひとつでスマホアプリ </a>」p.24。</p>

<p>[*2] Matrixクラスについては、Flashデベロッパーセンター 「<a href="http://www.adobe.com/jp/devnet/flash/articles/matrix_class.html" target="_blank">Matrixクラス － 変換行列</a>」をお読みください。</p>]]>
   </content>
</entry>
<entry>
   <title>2012.5.19 セミナー情報</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2012/02/07104606.html" />
   <id>tag:f-site.org,2012://1.1818</id>
   
   <published>2012-02-07T01:46:06Z</published>
   <updated>2012-04-24T07:21:13Z</updated>
   
   <summary>*&apos;&apos;「Flashユーザーが取り組むHTML5」&apos;&apos;

HTML5はWeb制作におけるひとつの選択肢として定着しつつあります。とはいえ、いままでFlashで制作していたような演出をそのままHTML5で実現できるか？というとまた違うわけです。で、どう違うか？　何がHTML5に適しているのか？　続きは、当日セミナー会場のお楽しみ！

*&apos;&apos;demo1「Flashユーザーが今覚えておきたいHTML5」ClockMaker 池田 泰延氏&apos;&apos;

*&apos;&apos;demo2「制作事例から考えるテクノロジーの選択基準」世路庵 沖 良矢氏&apos;&apos;

*&apos;&apos;demo3「新登場！　CreateJSとは？（仮）」野中 文雄氏&apos;&apos;</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="セミナー" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[

<h3>次回予告</h3>
<p>
<em>「Flashユーザーが取り組むHTML5」</em>
</p>
<p>
HTML5はWeb制作におけるひとつの選択肢として定着しつつあります。とはいえ、いままでFlashで制作していたような演出をそのままHTML5で実現できるか？というとまた違うわけです。で、どう違うか？　何がHTML5に適しているのか？　続きは、当日セミナー会場のお楽しみ！
</p>


<h5>demo1「Flashユーザーが今覚えておきたいHTML5」ClockMaker 池田 泰延氏（50分）</h5>
<p class="session-summary">スマートフォンやタブレット端末の普及が進み、モバイルを筆頭としたクライアントワークのテクノロジーとしてHTML5が採用されるシーンも増えてきました。そこで、FlashユーザーがHTML5に取り組むにあたって、学び得ておきたいことをご紹介いただきます。HTML5の基本から、Flashとの技術的な違い、今後HTML5とどう付き合っていけばよいか、一緒に考えてみましょう。</p>


<h5>demo2「制作事例から考えるテクノロジーの選択基準」世路庵 沖 良矢氏（50分）</h5>
<p class="session-summary">これまでFlashで作られていたWebサイトは、すべてHTML5に置き換わっていくでしょうか？　今から作るWebサイトでは、HTML5でコーディングするのがベストな選択でしょうか？　フリーランスとしてFlash、HTML5を利用したいくつかの事例をご紹介しながら、なぜその技術を選んだのか、実装の工夫、苦労などをお話しします。</p>


<h5>demo3「新登場！　CreateJSとは？（仮）」野中 文雄氏（50分）</h5>
<p class="session-summary">HTML5のリッチでインタラクティブなコンテンツをつくるための統合ライブラリ「CreateJS」が登場します。Stageを頂点とした階層構造など、ActionScriptに慣れたユーザーには使いやすく設計されています。ライブラリの基本的な使い方から、ActionScriptとの違いまでをご紹介します。また、コンテンツをCreateJSとHTML5用に書出す「Adobe Flash Professional Toolkit for CreateJS」についても触れる予定です。<br />
<a href="http://www.createjs.com/" target="_blank">http://www.createjs.com/</a></p>]]>
      <![CDATA[

<h4>会場</h4>
<p>
日　　時：2012/5/19（土） 13:15～17:00<br />
場　　所：国立オリンピック記念青少年総合センター <a href="http://nyc.niye.go.jp/facilities/d6-1.html"  >センター棟</a> 1階 102室<br />
住　　所：東京都渋谷区代々木神園町3-1（<a href="http://f-site.org/articles/2003/09/30221445.html"  >地図</a>）<br />
募集人数：200名<br />
参加費用：1,000円（会議室使用料など）<br />
#本編終了後、新宿に移動後割り勘（4,000～5,000円程）で二次会（宴会）実施。<br />
#二次会のみの参加は受け付けていません。
</p>


<h4>お申し込み</h4>


<p>
<a href="http://f-site.org/FS-APL/FS-Form/form.cgi?Code=seminar_ani"  ><img src="http://f-site.org/img/btn_seminar-entry.jpg" alt="http://f-site.org/img/btn_seminar-entry.jpg" /></a>
</p>
<p>
上記ボタンの申し込みフォームよりお申し込みください。定員に達し次第、締め切りますのでお早めにお申し込みをお願いします。
</p>








<h4>当日の主な流れについて</h4>
<p>
12:45　受付開始<br />
13:20　demo1<br />
14:10　質疑応答<br />
14:20　休憩<br />
14:35　demo2<br />
15:25　質疑応答<br />
15:35　休憩<br />
15:50　demo3<br />
16:40　質疑応答<br />
16:50　じゃんけん大会、お知らせなど<br />
17:00　撤収
</p>


<h4>パソコンの持ち込みについて</h4>
<p>
今回はパソコン対応室です。LANケーブルを持参いただければインターネットに接続できます。電源もありますが、場所によってはコンセントから遠いこともありますのでご注意ください。
</p>




<hr />


<h3>定期セミナーについて</h3>
<p>
F-siteセミナーは「制作を楽しくする」方法の伝播を目的に行っています。継続的かつ定期的な開催のために、参加者のみなさまには下記内容のご理解とご協力をお願いしています。
</p>


<ol>
<li>会場内の誘導係はいません。あらかじめ会場を確認してからお越しください。</li>
<li>領収書は発行できません。</li>
<li>後片付けは参加する側も含めてみんなで行いましょう。</li>
</ol>


<h4>今後の予定</h4>


<ul>
<li>2012年7月28日（国立オリンピック記念青少年総合センター）</li>
<li>2012年11月3日（国立オリンピック記念青少年総合センター）</li>
</ul>


<h4>企業デモ（無料）について</h4>
<p>
F-siteセミナーでは、通常の枠と別に「企業デモ枠」を設けています（お申し込みがない回は省略）。新技術、新商品、バージョンアップ情報をはじめ、リサーチなど、Flashユーザーを対象にしたものなら、どのようにお使いいただいても構いません。デモ時間は15分、無料です。1セミナーにつき、2団体まで受け付けています。
</p>
<p>
詳しくは、<a href="http://f-site.org/FS-APL/FS-Form/form.cgi?Code=toiawase"  >お問い合わせフォーム</a>からお問い合わせください。
</p>]]>
   </content>
</entry>
<entry>
   <title>2012.2.4「みんなのFlash効率化大作戦」</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2012/02/06120810.html" />
   <id>tag:f-site.org,2012://1.1817</id>
   
   <published>2012-02-06T03:08:10Z</published>
   <updated>2012-05-08T00:02:24Z</updated>
   
   <summary> demo1「JSFL入門から上達への道」ロクナナ 加茂 雄亮氏 demo2「オ...</summary>
   <author>
      <name>廣畑 大雅</name>
      
   </author>
         <category term="レポート" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p><img alt="1.jpg" src="http://f-site.org/articles/2012/2/6/1.jpg" width="380" height="252" /></p>

<p>demo1「JSFL入門から上達への道」ロクナナ 加茂 雄亮氏<br />
demo2「オレオレJSFL自慢！JSFL友の会」加茂 雄亮氏、道家 陽介氏、小野田 智氏<br />
demo3「Flashワークスペース大比較」松本 慶一郎氏、蔵下 雅之氏、藤村 ケンジ氏、沖 良矢氏<br />
demo4「ActionScriptでの最速を求める」野中 文雄氏 <a href="http://www.fumiononaka.com/Sample/F-site/FF120204.html" target="_blank">&gt;&gt; レジュメおよびサンプルファイル</a> (2012/02/06公開)</p>

<p>当日には、69人のご参加をいただきました。ありがとうございました！</p>

<p>セミナーへ参加した方のコメント、トラックバックはこちらの記事にお願いします。</p>

<h5>2/10追記</h5>

<p>demo2の小野田さんが、お話しいただいた内容をブログにまとめてくださいました。<br />
<a href="http://imagelogic.info/blog/individual/jsfljsdoc/" target="_blank">http://imagelogic.info/blog/individual/jsfljsdoc/</a></p>

<h5>2/9追記</h5>

<p>demo3の沖さんが、お話しいただいた内容をブログにまとめてくださいました。<br />
<a href="http://448.jp/blog/article/1440/" target="_blank">http://448.jp/blog/article/1440/</a></p>

<h5>2/7追記</h5>

<p>demo1、demo3などで触れられたADCの記事はこちらです。<br />
<a href="http://www.adobe.com/jp/devnet/flash/articles/flashpro_and_flashbuilder.html" target="_blank">SWCを利用したFlash制作の分業ワークフロー：FlashとFlash Builder連携開発</a></p>

<p>demo2に参加予定だった前田さんが、発表予定だったものをブログにまとめてくださいました。<br />
<a href="http://www.kuma-de.com/blog/2012-02-06/3163" target="_blank">http://www.kuma-de.com/blog/2012-02-06/3163</a></p>

<p>demo3の蔵下さんが、お話しいただいた内容をブログにまとめてくださいました。<br />
<a href="http://umikappa.main.jp/20120205-312" target="_blank">http://umikappa.main.jp/20120205-312</a></p>]]>
      <![CDATA[<p><img alt="2.jpg" src="http://f-site.org/articles/2012/2/6/2.jpg" width="720" height="478" /></p>

<p><img alt="3.jpg" src="http://f-site.org/articles/2012/2/6/3.jpg" width="720" height="478" /></p>

<p><img alt="4.jpg" src="http://f-site.org/articles/2012/2/6/4.jpg" width="720" height="478" /></p>

<p><img alt="5.jpg" src="http://f-site.org/articles/2012/2/6/5.jpg" width="720" height="478" /></p>

<p><img alt="6.jpg" src="http://f-site.org/articles/2012/2/6/6.jpg" width="720" height="478" /></p>

<p><img alt="7.jpg" src="http://f-site.org/articles/2012/2/6/7.jpg" width="720" height="478" /></p>

<p><img alt="8.jpg" src="http://f-site.org/articles/2012/2/6/8.jpg" width="720" height="478" /></p>

<p><img alt="9.jpg" src="http://f-site.org/articles/2012/2/6/9.jpg" width="478" height="720" /></p>

<p><img alt="10.jpg" src="http://f-site.org/articles/2012/2/6/10.jpg" width="720" height="478" /></p>

<p><img alt="11.jpg" src="http://f-site.org/articles/2012/2/6/11.jpg" width="720" height="478" /></p>

<p><img alt="12.jpg" src="http://f-site.org/articles/2012/2/6/12.jpg" width="720" height="478" /></p>

<p><img alt="13.jpg" src="http://f-site.org/articles/2012/2/6/13.jpg" width="720" height="478" /></p>

<p><img alt="14.jpg" src="http://f-site.org/articles/2012/2/6/14.jpg" width="720" height="478" /></p>

<p><img alt="15.jpg" src="http://f-site.org/articles/2012/2/6/15.jpg" width="720" height="478" /></p>

<p><img alt="16.jpg" src="http://f-site.org/articles/2012/2/6/16.jpg" width="720" height="478" /></p>

<p><img alt="17.jpg" src="http://f-site.org/articles/2012/2/6/17.jpg" width="720" height="478" /></p>

<p><img alt="18.jpg" src="http://f-site.org/articles/2012/2/6/18.jpg" width="720" height="478" /></p>

<p><img alt="19.jpg" src="http://f-site.org/articles/2012/2/6/19.jpg" width="720" height="478" /></p>

<p>写真：廣畑大雅</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] Starlingはじめました</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2012/01/25170958.html" />
   <id>tag:f-site.org,2012://1.1815</id>
   
   <published>2012-01-25T08:09:58Z</published>
   <updated>2012-04-06T11:07:43Z</updated>
   
   <summary>「Starling」は、Flash Player 11の新しい描画機能「Stag...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>「Starling」は、Flash Player 11の新しい描画機能「<a href="http://www.adobe.com/jp/products/air.html#content-dotcom-jp-feature-air-stage-3D-accelerated-graphics-rendering" target="_blank">Stage3D</a>」にもとづいてつくられた2次元の描画用フレームワークです。Flash Professional CS5.5でStarlingフレームワークを使ってみたい方のために、いくつか解説を書き始めました。これまでのまとめをご紹介します。詳しくは、それぞれの記事をお読みください。</p>]]>
      <![CDATA[<h3>01 まずはインストール</h3>
<p>Starlingフレームワークは、Flash Player 11の新しい描画機能Stage3Dにもとづきます。したがって、Flash Player 11の書出しができなければなりません。Flash Player 11は、次期バージョンのFlash CS6から正規サポートされる予定です。それまでの暫定処置として、AdobeからFlash CS5/CS5.5でFlash Player 11のSWFを書出す機能拡張(MXP)が提供されました(図001)。そして、Starlingはオープンソースのフレームワークです。</p>

<p>これらをダウンロードしてインストールする手順は、つぎのノートで説明しています。</p>

<ul>
<li><a href="http://www.fumiononaka.com/TechNotes/Flash/FN1111001.html" target="_blank">Flash CS5/CS5.5でFlash Player 11のSWFを書出す</a></li>
<li><a href="http://www.fumiononaka.com/TechNotes/Flash/FN1201002.html" target="_blank">Starlingフレームワークをインストールする</a></li>
</ul>

<p><strong>図001■MXPをインストールすると[パブリッシュ設定]に[Flash Player 11]が加わる</strong><br />
<img src="http://f-site.org/FN1111001_002.jpg" width="635" height="310" alt="図001" /></p>

<p><br />
<br /></p>

<h3>02 とにかくStarlingフレームワークを使ってみる</h3>
<p>Stage3Dは文法こそActionScript 3.0にしたがうものの、プログラミングの考え方はアセンブラとほぼ変わらない、新しい言語といってもよいです。表示リストの階層もなければ、フレームベースのアニメーションも備わっていません。Starlingには、SpriteやMovieClipといったクラスがあり、<em>addChild()</em>メソッドも使えます。また、<em>addEventListner()</em>メソッドで<em>ENTER_FRAME</em>イベントのリスナーを加えることもできます。これまでのActionScript 3.0と似た感覚でStage3Dによる2次元の描画を扱えるのがStarlingフレームワークなのです。</p>

<p>手始めとして、Starlingフレームワークで描いた矩形に、回転のアニメーションを加えてみます(図002)。</p>

<ul>
<li><a href="http://www.fumiononaka.com/TechNotes/Flash/FN1201003.html" target="_blank">Starlingフレームワークを使う</a></li>
</ul>

<p><strong>図002■正方形のインスタンスをステージの中央で回す</strong><br />
<img src="http://f-site.org/FN1201003_006.gif" alt="図002" width="240" height="180" border="1" /></p>

<p>さらに、Quadインスタンスの頂点ごとに異なるカラーやアルファを定めて、グラデーションで塗ります(図003)。</p>

<ul>
<li><a href="http://www.fumiononaka.com/TechNotes/Flash/FN1202001.html" target="_blank"> StarlingフレームワークのQuadインスタンスをグラデーションで塗る </a></li>
</ul>

<p><strong>図003■Quadインスタンスの4頂点に異なるカラーとアルファを定める</strong><br />
<img alt="図003" src="http://f-site.org/FN1202001_004.jpg" width="240" height="180" />

<p><br />
<br /></p>

<h3>03 Starlingフレームワークで物理演算エンジンを試す</h3>
<p>CPUの負荷が上がりやすい物理演算は、Stage3Dを試したい処理のひとつです。そこで、ふたつの物理演算エンジンを試します。</p>

<p>まず、使いやすさで注目されている「Nape」です。ビットマップのボールをStarlingフレームワークに置くことから始めます。つぎに、そのボールをNapeの物理演算で自然落下させます。そして、100個のボールを落として、床および互いの間でバウンドさせるムービーをつくります(図004)。</p>

<ul>
<li><a href="http://www.fumiononaka.com/TechNotes/Flash/FN1201005.html" target="_blank">Starlingフレームワークで物理演算エンジンNapeを使う</a></li>
</ul>

<p><strong>図004■ランダムに落とした100個のボールを互いにバウンドさせる</strong><br />
<a href="http://www.fumiononaka.com/TechNotes/Samples/FN1201005/nape.html" target="_blank"><img src="http://f-site.org/FN1201005_005.gif" alt="図004" width="275" height="200" border="1"><br />
*クリックでサンプルSWFのページが開きます。</a></p>

<p>つぎに、C++から移植された物理エンジンBox2DFlashです。まずは、矩形のQuadインスタンスを落下させます。それを画面の下に置いた床に弾ませることができたら、矩形のインスタンスを50個まとめて落としてみます(図005)。</p>

<ul>
<li><a href="http://www.fumiononaka.com/TechNotes/Flash/FN1202006.html" target="_blank">StarlingStarlingフレームワークで物理演算エンジンBox2Dを使う</a></li>
</ul>

<p><strong>図005■50個の矩形をランダムに床に落とす</strong><br />
<img alt="FN1202006_007.gif" src="http://f-site.org/FN1202006_007.gif" width="240" height="180" /></p>

<p>さらに、落下させる剛体を[ライブラリ]のビットマップからつくったImageインスタンスに置換えてみます。</p>

<ul>
<li><a href="http://www.fumiononaka.com/TechNotes/Flash/FN1203004.html" target="_blank">StarlingフレームワークでつくったテクスチャのボールをBox2Dで弾ませる</a></li>
</ul>

<p><strong>図006■ 100個のテクスチャのボールをランダムに床に落とす</strong><br />
<img alt="FN1203004_003.gif" src="http://f-site.org/FN1203004_003.gif" width="275" height="200" />

<p><br /></p>

<h3>04 Starlingフレームワークでトゥイーンアニメーション</h3>
<p>Starlingフレームワークにはstarling.animation.Tweenクラスが備わっています。ただし、Flashにもともとあるfl.transitions.Tweenクラスとは少し使い勝手が違います。StarlingフレームワークのTweenクラスを用いたアニメーションについてご説明します。</p>

<ul>
<li><a href="http://www.fumiononaka.com/TechNotes/Flash/FN1202004.html" target="_blank"> StarlingフレームワークのTweenクラスを使ったアニメーション </a></li>
</ul>

<p><br /></p>

<h3>05 Starlingフレームワークでイベントを扱う</h3>
<p>Starlingフレームワークでは、マウスの操作は<em>DisplayObject.touch</em>イベント(定数<em>TouchEvent.TOUCH</em>)として受取ります。このイベントを用いたマウス操作の扱い方を学びます。まず、<em>Touch.phase</em>プロパティの値が<em>TouchPhase.MOVED</em>のとき、インスタンス上でボタンを押したままマウスを動かしています。</p>

<ul>
<li><a href="http://www.fumiononaka.com/TechNotes/Flash/FN1204001.html"  target="_blank">Starlingフレームワークでインスタンスをドラッグ&ドロップする</a></li>
</ul>

<p><strong>図007■Quadインスタンスをドラッグする </strong><br />
<img alt="FN1203009_002.gif" src="http://f-site.org/FN1203009_002.gif" width="240" height="180" /> &nbsp; 
<img alt="FN1203009_004.gif" src="http://f-site.org/FN1203009_004.gif" width="240" height="180" />
</p>

<p>つぎに、インスタンスのクリックは、<em>Touch.phase</em>プロパティの値が<em>TouchPhase.ENDED</em>の場合です。ただし、マウスボタンを放すのは、インスタンスの上か外かを問いません。そのため、ボタンを放した座標が、インスタンス上かどうかを調べなければならないのです。</p>

<ul>
<li><a href="http://www.fumiononaka.com/TechNotes/Flash/FN1204003.html" target="_blank">Starlingフレームワークでインスタンスをクリックする</a></li>
</ul>

<p><br />
<br /></p>

<h3>06 Starlingフレームワークのリファレンス</h3>
<p><a href="http://doc.starling-framework.org/core/" target="_blank">Starlingフレームワークのリファレンス</a>は、英文の情報もあまり詳しくありません。解説記事で触れたプロパティやメソッドを少しずつ加えていくつもりです。</p>

<ul>
<li><a href="http://www.fumiononaka.com/TechNotes/Flash/FN1201004.html" target="_blank">starling.core.Starlingクラス</a></li>
<li><a href="http://www.fumiononaka.com/TechNotes/Flash/FN1201006.html" target="_blank">starling.textures.Textureクラス</a></li>
<li><a href="http://www.fumiononaka.com/TechNotes/Flash/FN1201007.html" target="_blank">starling.display.Quadクラス</a></li>
<li><a href="http://www.fumiononaka.com/TechNotes/Flash/FN1203007.html" target="_blank">Starlingフレームワークで表示オブジェクトのイベントリスナーをすべて削除するメソッド</a></li>
<li><a href="http://www.fumiononaka.com/TechNotes/Flash/FN1204002.html" target="_blank">starling.events.Touchクラスと座標の変換</a></li>
<li><a href="http://www.fumiononaka.com/TechNotes/Flash/FN1204004.html" target="_blank">Starlingフレームワークで表示オブジェクトと座標の重なりを調べる</a></li>
</ul>

<p><strong>図008■Stage3D(Starling)とFlashのステージの関係</strong><br />
<img src="http://f-site.org/FN1201003_001.gif" width="400" height="300" alt="図004" /></p>

<hr />
<p>[追記2012/02/08]「starling.display.Quadクラス」と「StarlingフレームワークのQuadインスタンスをグラデーションで塗る」を、それぞれ本文04と02に加えました。</p>

<p>[追記2012/02/15]「StarlingフレームワークのTweenクラスを使ったアニメーション」を本文04に加え、「Starlingフレームワークのリファレンス」の項目番号を05としました。</p>

<p>[追記2012/03/19]「StarlingフレームワークでつくったテクスチャのボールをBox2Dで弾ませる」を本文03に加えました。</p>

<p>[追記2012/03/26]「Starlingフレームワークで表示オブジェクトのイベントリスナーをすべて削除するメソッド」を本文05に加えました。</p>

<p>[追記2012/04/02]「Starlingフレームワークでインスタンスをドラッグ&ドロップする」を新たな項目05「Starlingフレームワークでイベントを扱う」に加え、「Starlingフレームワークのリファレンス」の項目番号は06としました。また、項目06には「starling.events.Touchクラスと座標の変換」を追加しました。</p>

<p>[追記2012/04/06] 項目05に「Starlingフレームワークでインスタンスをクリックする」、06に「Starlingフレームワークで表示オブジェクトと座標の重なりを調べる」を加えました。</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] テキストが入ったAIファイルを読込むと − パンドラの箱</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2012/01/19232707.html" />
   <id>tag:f-site.org,2012://1.1814</id>
   
   <published>2012-01-19T14:27:07Z</published>
   <updated>2012-01-19T14:44:50Z</updated>
   
   <summary>IllustratorからFlashへの互換は、バージョンが進むごとによくなって...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="トラブル" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>IllustratorからFlashへの互換は、バージョンが進むごとによくなっているようです。けれど、安心していると足元をすくわれかねません。Flash Professional CS5.5に、テキストが含まれたIllustratorのAIファイルを読込んでみます(図001)。</p>

<p><br />
<p><strong>図001■テキストが含まれたIllustratorのアートワーク</strong><br /><br />
<img src="http://f-site.org/FF1201191_001.gif" width="200" height="202" alt="図001" /></p><br />
</p>]]>
      <![CDATA[<h3>01 AIファイルを[ステージに読み込み]</h3>
<p>AIファイルは、[ファイル]メニューの[読み込み]で、簡単に[ステージに読み込み]できます(図002)。</p>

<p><strong>図002■[ファイル]メニューの[読み込み]から[ステージに読み込み]</strong><br />
<img alt="FF1201191_002.gif" src="http://f-site.org/FF1201191_002.gif" width="635" height="390" /></p>

<p>[テキスト読み込みのオプション]は、もちろん[編集可能なテキスト]にしておく方が、後で修正もできて便利です(図003)。</p>

<p><strong>図003■[テキスト読み込みのオプション]を[編集可能なテキスト]にする</strong><br />
<img alt="FF1201191_003.gif" src="http://f-site.org/FF1201191_003.gif" width="671" height="204" /></p>

<p>読込まれたテキストを[プロパティ]インスペクタで確かめると、[TLFテキスト]になっています。</p>

<p><strong>図004■読込まれたテキストは[TLFテキスト]になる</strong><br /><br />
<table><br />
  <tr valign="top"><br />
    <td><br />
<img alt="FF1201191_004.gif" src="http://f-site.org/FF1201191_004.gif" width="240" height="180" /><br />
</td><br />
    <td><br />
<img alt="FF1201191_005.gif" src="http://f-site.org/FF1201191_005.gif" width="314" height="195" /><br />
</td><br />
  </tr><br />
</table></p>

<p><br />
<br /></p>

<h3>02 [TLFテキスト]はパンドラの箱</h3>
<p>実は、AIファイルと一緒にパンドラの箱を開いてしまったかもしれません。[TLFテキスト]が含まれているタイムラインは、一瞬親を失ってStageから切離されたりします。また、他のSWFから読込んだとき、メインタイムラインにアクセスできないこともあります。身に降りかかるおそれのあるさまざまな現象については「<a href="http://f-site.org/articles/2012/01/04093932.html" target="_blank">Text Layout Framework(TLF)で悩みがちなこと</a>」をお読みください。</p>

<p><br />
<br /></p>

<h3>03 SWF書出ししてから読込むと希望が</h3>
<p>なお、IllustratorからSWFファイルを書出してそれを読込んだ場合は、デフォルトでは(書出す[バージョン]が[Flash Player 9]のため)テキストは[クラシックテキスト]の[静止テキスト]として読込まれました。SWFの方がアートワークの再現性は高いという声も聞きます。ワークフローを考え合わせたうえ、SWF書出しも検討に値するでしょう。</p>]]>
   </content>
</entry>
<entry>
   <title>2012年2月セミナー受付開始</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2012/01/04125833.html" />
   <id>tag:f-site.org,2012://1.1813</id>
   
   <published>2012-01-04T03:58:33Z</published>
   <updated>2012-04-24T07:23:00Z</updated>
   
   <summary> 2/4（土）に行われるF-siteセミナーの参加受付を開始しました。 「みんな...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="お知らせ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>
2/4（土）に行われるF-siteセミナーの参加受付を開始しました。
</p>
<p>
「みんなのFlash効率化大作戦」と題し、JSFL、ワークスペース、ActionScriptと3つの切り口から、効率アップの糸口を掴むためのセミナーをお届けします。
</p>]]>
      <![CDATA[<p>
定員に達しましたら締め切りますので、お早めにお申込ください。<br />
<a href="http://f-site.org/articles/2011/11/10130448.html"  >セミナー詳細</a>
</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] Text Layout Framework(TLF)で悩みがちなこと</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2012/01/04093932.html" />
   <id>tag:f-site.org,2012://1.1812</id>
   
   <published>2012-01-04T00:39:32Z</published>
   <updated>2012-03-13T09:12:04Z</updated>
   
   <summary>TLFテキストやText Layout Frameworkのコンポーネントライブ...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>TLFテキストやText Layout Frameworkのコンポーネントライブラリを使うと、不思議な結果に出逢うことがあります。しかも、Flash Playerのバージョンによって、動きが変わったりします。その中のからいくつか解明できたことをご紹介します。</p>]]>
      <![CDATA[<p>TLF(Text Layout Framework)については、筆者のサイト<a href="http://www.fumiononaka.com/" target="_blank">FumioNonaka.com</a>にいくつかテクニカルノートを書いてきました。ところが、Flash Player 10.2/Flash Professional CS5.5で、コンポーネントライブラリの仕様が変わりました。そこで、重要なものは再検証したうえで、情報の追加やスクリプトの修正をしました。それらの記事をまとめてみます。</p>

<p><br />
<br /></p>

<h3>01 TLFテキストのある外部SWFを読込むとその中のオブジェクトにアクセスできない</h3>
<p>おそらく、もっとも引っかかりやすいのは、TLFテキストが含まれた外部SWFを読込んだ場合です。お決まりどおり<em>LoaderInfo.complete</em>イベント(定数<em>Event.COMPLETE</em>)で外部SWFの読込みを終えたうえで、<em>Loader.content</em>プロパティから読込んだムービーの参照を得て操作しようとすると、プロパティが見つからず、デフォルト値もないという、意味の分からないエラーが示されたりします。</p>

<p><strong>図001■プロパティが見つからずデフォルト値もないというエラー</strong><br />
<img src="http://www.fumiononaka.com/TechNotes/Images/FN1104003_005.gif" width="535" height="151" alt="図001" /></p>

<p>Text Layout Frameworkのコンポーネントライブラリは、デフォルトではFlash Playerに動的に読込まれます。そのため、メインタイムラインは一旦ステージから切離され、ロードが済んでから定位置に戻るのです。TLFが含まれた外部SWFのメインタイムラインにアクセスするやり方を3つご紹介します。→「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1104003.html" target="_blank">TLFテキストのある外部SWFを読込むとその中のオブジェクトにアクセスできない</a>」</p>

<p><br />
<br /></p>

<h3>02 SafeLoaderクラスを使う</h3>
<p>Adobeのサイトに「<a href="http://kb2.adobe.com/cps/838/cpsid_83812.html" target="_blank">Loading child SWFs with TLF content generates reference errors</a>」(TLFコンテンツのある子のSWFをロードすると参照エラーが起こる)というトラブルシューティングの記事が掲載されました。エラーを生じる具体的な状況は説明されていないものの、前項01の問題が想定されているようです。その対処法のひとつとして、AdobeからSafeLoaderというクラスが無償で公開されました(図002)。</p>

<p><strong>図002■AdobeサイトからダウンロードしたSafeLoaderクラス</strong><br />
<img src="http://www.fumiononaka.com/TechNotes/Images/FN1201001_002.gif" width="630" height="80" alt="図002" /></p>

<p>SafeLoaderクラスを使えば、外部SWFにTLFコンテンツが含まれていても、ロードしたムービーのメインタイムラインにアクセスできます。このSafeLoaderクラスのインストール方法と使い方を簡単にご説明します。→「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1201001.html" target="_blank">SafeLoaderクラスを使う</a>」</p>

<p><br />
<br /></p>

<h3>03 TLFテキストが配置されたメインタイムラインの初期化</h3>
<p>Text Layout Frameworkのコンポーネントライブラリは、デフォルトではランタイム共有ライブラリとして読込まれます。すると、メインタイムラインは初めはStageオブジェクトの表示リストから外され、ライブラリがロードされた後本来の場所に置かれます。ただ細かく調べると、メインタイムラインが定位置に戻るまでの過程は、Flash Player 10または10.1(Flash Professional CS5)と10.2(CS5.5)では違っています。</p>

<p>結果として、イベントの起こり方もバージョンによって変わりますので、注意しなければなりません。デフォルトのランタイム共有ライブラリの設定は変えることもできます。→「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1108001.html" target="_blank">TLFテキストが配置されたメインタイムラインの初期化</a>」</p>

<p><br />
<br /></p>

<h3>04 flashx.textLayoutパッケージのクラスを使うとコンストラクタからStageにアクセスできない</h3>
<p>ドキュメントクラスでも、Text Layout Frameworkを使うと、やはり一旦Stageオブジェクトの表示リストから外されます。そのため、コンストラクタメソッドからは、<em>DisplayObject.stage</em>プロパティでStageオブジェクトにアクセスできません。→「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1005002.html" target="_blank">flashx.textLayoutパッケージのクラスを使うとコンストラクタからStageにアクセスできない</a>」</p>

<p><br />
<br /></p>

<h3>05 TLFTextFieldのテキストの一部を指定したTextFormatが設定できない </h3>
<p>TLFTextField.setTextFormat()メソッドは、第2および第3引数のインデックスでテキストの一部を定めて、TLFTextFieldインスタンスにTextFormatオブジェクトの書式が設定できます。しかし、Flash Professional CS5.5では、すべてのテキストに書式が適用されてしまうようです。→「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1203003.html" target="_blank"> TLFTextFieldのテキストの一部を指定したTextFormatが設定できない </a>」</p>

<p><br />
<br /></p>

<h3>06 Text Layout Framework(TLF)でハマらないために</h3>
<p>Text Layout Frameworkに関わる問題について議論されたフォーラムやblog記事を以前ご紹介しました。一部上記の項目と重複しますが、改めてご案内しておきます。→「<a href="http://f-site.org/articles/2011/04/18210338.html" target="_blank">Text Layout Framework(TLF)でハマらないために</a>」</p>

<hr />
<p>[追記2012/03/13]「TLFTextFieldのテキストの一部を指定したTextFormatが設定できない」を本文05に加えました。</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] 間違いだらけ(？)のMatrix3Dクラスのドキュメント</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/12/17023643.html" />
   <id>tag:f-site.org,2011://1.1811</id>
   
   <published>2011-12-16T17:36:43Z</published>
   <updated>2012-01-04T14:56:58Z</updated>
   
   <summary>間違いだらけというかは別にして、Matrix3Dクラスのドキュメントには誤ってい...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="バグ" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>間違いだらけというかは別にして、Matrix3Dクラスのドキュメントには誤っている
のかどうかもわかりにくい説明が少なくありません。内容を正しく理解するには、ActionScriptだけでなく、数学の知識も必要になるからです。さらに、日本語訳の問題がややこしさを増します。</p>

<blockquote><img alt="Matrix3D" src="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/images/Matrix3Delements.jpg" width="300" height="246" /></blockquote>]]>
      <![CDATA[<p>まず、[ヘルプ]に載っているMatrix3Dオブジェクトの変換行列を表す上図です。[<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/geom/Matrix3D.html" target="_blank">Matrix3D</a>]のページ冒頭で、つぎのように説明されています。</p>

<blockquote><strong>マトリックスの<font color="#0000FF">最初の3行</font>は3Dの各軸(x, y, z)のデータを保持します</strong>。平行移動情報は最後の列に格納されます。方向と拡大/縮小のデータは、最初の3列に格納されます。倍率は、最初の3列の対角線上の数値です。Matrix3Dエレメントは次のように表現されます。</blockquote>

<p>「最初の3行」と書かれているのですから、「各軸(x, y, z)」は<a href="http://www.fumiononaka.com/TechNotes/Flash/Errata_HelpFlashCS5.html#Matrix3D" target="_blank">下図</a>の位置に表記すべきでしょう。[ヘルプ]の上図が変換行列の列ばかり、にぎやかに飾り立てているのは妙です。なお、下の図は「方向と拡大/縮小のデータは、最初の3列に格納」されるという記述に合わせて、列の記載も変えました。</p>

<blockquote><img alt="Matrix3D" src="http://www.fumiononaka.com/TechNotes/Images/Matrix3Delements.gif" width="300" height="200" /></blockquote>

<p>つぎに、行列は数学における概念です。「反転されたマトリックス」は「逆行列」、「反転可能」は「可逆」という数学用語を使うべきでしょう(表001)。数学の文献を調べる場合にも困ります。</p>

<p><br />
<strong>表001■行列についての[ヘルプ]の記載と数学用語</strong><br><br />
<table border="1" cellspacing="0" bordercolor="#9999FF"><br />
        <tr align="center" bgcolor="#CCCCFF"> <br />
          <td align="center"><strong><br />
[ヘルプ]の記載<br />
</strong></td><br />
          <td><strong><br />
数学用語<br />
</strong></td><br />
        </tr><br />
        <tr> <br />
          <td><br />
「マトリックス」<br />
</td><br />
          <td><br />
「行列」<br />
</td><br />
        </tr><br />
        <tr> <br />
          <td><br />
「反転されたマトリックス」<br />
</td><br />
          <td><br />
「逆行列」<br />
</td><br />
        </tr><br />
        <tr> <br />
          <td><br />
「反転可能」<br />
</td><br />
          <td><br />
「可逆」<br />
</td><br />
        </tr><br />
      </table></p>

<p>さらに、<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1004001.html" target="_blank"><em>Matrix3D.rawData</em>プロパティ</a>がわかりにくいです。値はNumberベース型のVectorオブジェクトです。つまり、行列を1本の数値の並びに置換えます。すると、数値の順は行ごとなのか列ごとなのかが問題です。[ヘルプ]は「1行または1列」と訳がわからない説明をします。</p>

<p>実際には、列を単位としてVectorオブジェクトの数値エレメントは並べられます。<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/geom/Matrix3D.html#Matrix3D()" target="_blank"><em>Matrix3D()</em>コンストラクタ</a>の引数に渡せるVectorオブジェクトも同じです。ただ、数学で行列を扱うときは、行を先に示すのが普通です(「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN0811001.html#02" target="_blank">変換行列を数学的に捉える</a>」注[*4]参照)。各数値に添字を使うときも行の番号が先です。HTMLの&lt;table&gt;やExcelのワークシートでもそうですね。</p>

<p>行列の順番が微妙に気持ち悪いと思っていたら、<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1110002.html" target="_blank">Flash Player 11で新たに加わった<em>Matrix3D.copyRawDataFrom()</em>/<em>copyRawDataTo()</em>メソッド</a>には、行列入替えの引数が備わりました。同じ違和感を覚えた人は、プロパティではなくこれらのメソッドを使えばよいでしょう。</p>]]>
   </content>
</entry>
<entry>
   <title>[12/19] 集中特訓！スマートフォンサイト制作術</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/12/05171632.html" />
   <id>tag:f-site.org,2011://1.1807</id>
   
   <published>2011-12-05T08:16:32Z</published>
   <updated>2012-01-25T09:06:20Z</updated>
   
   <summary> iPhoneやAndroidなどスマートフォンのシェアは、ものすごい勢いで増加...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[

<blockquote>
iPhoneやAndroidなどスマートフォンのシェアは、ものすごい勢いで増加しています。
それにともない、Web制作現場ではスマートフォン対応案件が急速に増え、クリエイターには必須のスキルになりつつあります。<br /><br />
そこでロクナナワークショップは、「 CSS3でつくるスマートフォンサイト講座 」の講師 西畑一馬（にしはたかずま）氏と、「 JavaScript/jQuery Mobile入門講座 」の講師 たにぐちまこと 氏を迎え、今現場で必要な スマートフォンサイト制作技術を「フロントエンド」と「バックエンド」の2つのセッションに分けセミナーイベントを開催します。
<cite><a href="http://event.67.org/smartphone/20111219/"  >集中特訓！スマートフォンサイト制作術</a></cite>
</blockquote>]]>
      <![CDATA[

<h3>概要</h3>
<p>
日時：2011年12月19日（月）10:00 - 16:30（開場 9:45）<br />
定員：40名（会場の都合により増減あり）<br />
料金：5,800円（税込み）<br />
会場：料金：5,800円（税込み）
</p>
<p>
詳しくはイベント詳細ページをご覧ください。<br />
<a href="http://event.67.org/smartphone/20111219/"  >http://event.67.org/smartphone/20111219/</a>
</p>


<h3>主催・お問い合わせ</h3>
<p>
株式会社ロクナナ・ロクナナワークショップ<br />
〒150-0001東京都渋谷区神宮前1-1-12 #203<br />
イベント運営事務局　担当：佐々木・上田<br />
E-mail：workshop@67.org<br />
Phone：03-3408-4605
</p>


<h3>ロクナナワークショップとは</h3>
<p>
ロクナナワークショップは、アドビ認定トレーニングセンターとして、Web 業界の第一線で活躍中の講師陣による実践的な講座を開講しています。全ての講座は最大6名・1日6時間で完結する、PCを操作しながらの集中トレーニングです。
</p>]]>
   </content>
</entry>
<entry>
   <title>[12/17]Native Extension Lab in 大阪</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/12/04123641.html" />
   <id>tag:f-site.org,2011://1.1809</id>
   
   <published>2011-12-04T03:36:41Z</published>
   <updated>2012-01-25T09:06:25Z</updated>
   
   <summary> 東京で不定期開催していた Native Extension Lab （通称：A...</summary>
   <author>
      <name>SIHO</name>
      
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[

<blockquote>
東京で不定期開催していた
Native Extension Lab （通称：ANE Lab）ですが大阪でも開催します。<br /><br />
内容：<br />
通常の勉強会とは違います。発表のないハッカソンに近いです。<br />
自分で黙々と実装していきます。自分でやりたいテーマを用意して挑んでください。<br />
（Hello World, アプリ内課金, FeliCa, Arduino...etc)
</blockquote>]]>
      <![CDATA[

<h3>概要</h3>
2011年12月17日（土）9時30分～16時30分<br />
定員：10名<br />
参加費用：無料<br />
会場：野村コンファレンスプラザ大阪御堂筋 ミーティングルーム H （大阪市中央区瓦町3丁目5番7号）<br />
会場アクセス： <a href="http://www.nomura-re.co.jp/office/midousuji/osaka_kaigi/location/loca.html"  >http://www.nomura-re.co.jp/office/midousuji/osaka_kaigi/location/loca.html</a><br />
受付：<a href="http://atnd.org/events/22836"  >http://atnd.org/events/22836</a><br />
AIR 3.0 から搭載された新機能「Native Extension ( ネイティブ拡張 ) 」のラボです。<br />
　<br />
<h3>準備してくるもの</h3>
1. ノートPC<br />
2. Flash Builder 4.6 or Flash Profesional CS 5.5<br />
3. AIR SDK 3.1<br />
4. スマートフォン端末（iOSやAndroidアプリの方）<br />
　<br />


<h3>主催・お問い合わせ</h3>
主催者：<a href="http://www.akabana.net/"  >AKABANAセミナー</a>]]>
   </content>
</entry>
<entry>
   <title>[12/09]Native Extension Lab 5</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/12/03223839.html" />
   <id>tag:f-site.org,2011://1.1810</id>
   
   <published>2011-12-03T13:38:39Z</published>
   <updated>2012-01-25T09:03:41Z</updated>
   
   <summary> Native Extension ( ネイティブ拡張 ) 機能のラボです。  ...</summary>
   <author>
      <name>SIHO</name>
      
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[

<blockquote>
Native Extension ( ネイティブ拡張 ) 機能のラボです。<br />
 Let's develop ネイティブ拡張 in XXX~<br /><br />
2011年、今年最後のNative Extensionなので実験結果を話しましょう。<br />
コーディングしながらもOK。2012年では何をするか話しましょう。<br />
</blockquote>]]>
      <![CDATA[

<h3>概要</h3>
<p>
日時：2011年12月09日（金）19:00 to 21:30
定員：15名（20名まで増えることもあり）<br />
料金：無料<br />
会場：Space g （東京都新宿区高田馬場2-14-26 INOビル3F）<br />
<a href="http://www.g-bm.jp/spaceg/"  >http://www.g-bm.jp/spaceg/</a><br />
申込：<a href="http://atnd.org/events/22301"  >http://atnd.org/events/22301</a><br />
</p>


<h3>準備してくるもの</h3>
<p>
[推奨]<br />
Flash Builder 4.6<br />
AIR 3.1<br />
　<br />
</p>


<h3>今回は講習付き</h3>
Flash Builder 4.6のNative Extension対応について<br />
AIR 3.1 の iOS5対応について<br />
Namespaceについて<br />]]>
   </content>
</entry>
<entry>
   <title>[12/06]FLASH MEETUP</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/11/19160721.html" />
   <id>tag:f-site.org,2011://1.1806</id>
   
   <published>2011-11-19T07:07:21Z</published>
   <updated>2012-01-25T09:03:34Z</updated>
   
   <summary> モバイル Flash Player の新規開発中止発表で、色々と Flash ...</summary>
   <author>
      <name>SIHO</name>
      
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[

<img src="http://f-site.org/articles/2011/11/FlashMeetupBanner_original.jpg" alt="" />


<blockquote>
モバイル Flash Player の新規開発中止発表で、色々と Flash について不安や意見があると思います。今回、アドビ本社から Flash コミュニティに直接、現在の Flash の状況や今後について対話するべく以下の3名がミーティングを開きます。<br />
・<a href="http://www.mikechambers.com/blog/"  >Mike Chambers</a><br />
　Principal Product Manger, Adobe Systems<br />
・<a href="http://www.bytearray.org/"  >Thibault Imbert</a><br />
　Product Manager Flash Player, Adobe Systems<br />
・<a href="http://www.leebrimelow.com/"  >Lee Brimelow</a><br />
　Platform Evangelist, Adobe Systems<br />
通訳も参加しますので、Flash 全般に関する質問や意見を投げかけてください。アドビの Flash チームが大切に考えている日本の Flash コミュニティに生の声を伝えるいい機会だと思います。
なお、Flex に関しては 2012年初旬に Flex チームが来日を検討しており、そちらで今後の説明などを行う予定です。
</blockquote>]]>
      <![CDATA[

<h3>申し込み</h3>
<p>
<a href="http://atnd.org/events/22297"  >FLASH MEETUP</a>
</p>


<h3>開催概要</h3>


<dl>
<dt>日時</dt>
<dd>2011/12/6（火）19:00-21:00</dd>
<dt>場所</dt>
<dd>ゲートシティ大崎 ホールB</dd>
<dt>対象</dt>
<dd>Flash コミュニティ全般（Flash の状況が知りたい方は誰でも）</dd>
<dt>費用</dt>
<dd>無料</dd>
</dl>]]>
   </content>
</entry>
<entry>
   <title>2011.11.5「Flashまわりのでっかい夢」</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/11/16235944.html" />
   <id>tag:f-site.org,2011://1.1804</id>
   
   <published>2011-11-16T14:59:44Z</published>
   <updated>2011-11-16T15:36:45Z</updated>
   
   <summary> demo1「スマートフォンのUIデザインとFlash」tha ltd. 奥田 ...</summary>
   <author>
      <name>桜井 和貴</name>
      <uri>http://www.infective.jp/</uri>
   </author>
         <category term="レポート" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p><img alt="1.jpg" src="http://f-site.org/articles/2011/11/17/1.jpg" width="380" height="252" /></p>

<p>demo1「スマートフォンのUIデザインとFlash」tha ltd. 奥田 透也氏<br />
demo2「FP11にFlashが見る夢」Adobe Andy Hall氏<br />
demo3「Flashだけにとどまらない！体験コンテンツのアレやコレ」株式会社ココノヱ　山田 純也氏</p>

<p>当日には、86人のご参加をいただきました。ありがとうございました！</p>

<p>セミナーへ参加した方のコメント、トラックバックはこちらの記事にお願いします。</p>]]>
      <![CDATA[<p><img alt="1_37.jpg" src="http://f-site.org/articles/2011/11/17/1_37.jpg" width="720" height="477" /></p>

<p><img alt="2_DSC_0007.jpg" src="http://f-site.org/articles/2011/11/17/2_DSC_0007.jpg" width="720" height="477" /></p>

<p><img alt="3.jpg" src="http://f-site.org/articles/2011/11/17/3.jpg" width="720" height="478" /></p>

<p><img alt="4.jpg" src="http://f-site.org/articles/2011/11/17/4.jpg" width="720" height="478" /></p>

<p><img alt="nomi.jpg" src="http://f-site.org/articles/2011/11/17/nomi.jpg" width="720" height="478" /></p>

<p></p>

<p></p>

<p></p>

<p></p>

<p><br />
</p>]]>
   </content>
</entry>
<entry>
   <title>[12/03-04]FITC Tokyo 2011</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/11/16113535.html" />
   <id>tag:f-site.org,2011://1.1803</id>
   
   <published>2011-11-16T02:35:35Z</published>
   <updated>2011-12-05T08:15:59Z</updated>
   
   <summary> 2011年、トロント、シカゴ、サンフランシスコ、ハリウッド、韓国、アムステルダ...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[

<img src="http://f-site.org/articles/2011/11/fitc2011_img_hol01.jpg" alt="" />


<blockquote>
2011年、トロント、シカゴ、サンフランシスコ、ハリウッド、韓国、アムステルダムのイベントで成功を収めたFITCが、再び日本に帰ってきます。デザインとアートの技術を限界まで試したり、その限界を模索したり、更には壊して一から作りなおしたり。デザイナーや技術者は、ツールの本来の目的を乗り越えるためにどのように現状を打破しているのか。望みどおりのものを手に入れるためにどのように代替方法を見つけるのか。陳腐化しないためにどのように新境地を開いていくのか、新しいアイデアやコンセプトの誕生を是非、ご自身の目で確かめてください。
</blockquote>]]>
      <![CDATA[

<h3>公式イベントサイト</h3>
<p>
<a href="http://www.fitc.ca/tokyo"  >FITC Tokyo 2011</a>
</p>


<h3>開催概要</h3>


<dl>
<dt>日時</dt>
<dd>2011年12月3日（土）～4日（日）2日間開催</dd>
<dt>開催地</dt>
<dd>HAL東京 コクーンタワー 〒160-0023 東京都新宿区西新宿1-7-3</dd>
<dt>主催</dt>
<dd>FITC / 株式会社ゼオ</dd>
<dt>協賛</dt>
<dd>アドビシステムズ株式会社 / 学校法人 モード学園</dd>
<dt>受講料</dt>
<dd>（すべて税込み、2日間共通）<br />早期割引（11月18日まで）一般 10,500円  / 学生 6,000円<br />通常料金（11月19日以降）一般 13,650円 / 学生 11,550円</dd>
</dl>
<p>
詳細は、<a href="http://www.fitc.ca/tokyo"  >公式イベントサイト</a>をごらんください。
</p>]]>
   </content>
</entry>
<entry>
   <title>モバイル版Flash Player、Flash Platform、そしてこれからのFlashについてはっきり言っておこうか。</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/11/14125101.html" />
   <id>tag:f-site.org,2011://1.1802</id>
   
   <published>2011-11-14T03:51:01Z</published>
   <updated>2011-11-14T04:09:04Z</updated>
   
   <summary>先日、突如アドビ本社からモバイル版Flash Player開発中止との発表があり...</summary>
   <author>
      <name>小野田 智</name>
      
   </author>
         <category term="サロン" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>先日、突如アドビ本社からモバイル版Flash Player開発中止との発表がありました。あまりにも急な上に単に決定事項だけの発表だったそのリリースはネット上で大きな混乱を巻き起こしていたのですが、それに対して「みんなちょっと落ち着け」とアドビのFlash Platform プロダクトマネージャー、Mike Chanbersが詳細な解説を<a href="http://www.mikechambers.com/blog/2011/11/11/clarifications-on-flash-player-for-mobile-browsers-the-flash-platform-and-the-future-of-flash/" target="_blank">自身のブログに投稿しています</a>。</p>

<p>個人的には当初はサラっと原文を読み流すだけの予定だったのですが、この内容は日本のFlashコミュニティにとっても大切だと感じましたので頑張って全訳してみました(あまりにも長文だったので途中で何度か挫けかけましたけど)。一部は独自に抜粋/翻訳されてTwitterやBlog上に上がっていますが、特に後半部分、これからのFlashとHTML5の関係性についてMikeが語っている部分は必読だと思いますよ。</p>
]]>
      <![CDATA[<p>--ココから翻訳文------</p>

<p>この12,3年の間、私はFlashコミュニティの一員として(そのうちの10年以上はマクロメディア、アドビと)働いていて、その間、素敵なことも大変なこともいろいろと経験してきた。それでも、この数日間は私のキャリアの中でも最も大変な日々だったと言えるだろう。今回はここ数日に起きたニュースや、それにまつわる背景、実際に何が起こっているかという事をハッキリさせたいと思う。</p>

<p>まず根本的な話として、数日前にアドビは以下の<a href="http://blogs.adobe.com/conversations/2011/11/flash-focus.html" target="_blank">ニュースを発表した。</a></p>
<ol>
<li>
我々はFlash Platformのうちで以下の分野に集中する
<ul>
<li>AIRによって開発されるモバイルアプリケーション</li>
<li>デスクトップのWebブラウザ上でのFlash Playerを利用した表現力の高いコンテンツ(特にゲームとビデオ)
</ul>
</li>
<li>我々はHTML5向けのツール、ソリューション、ブラウザに対して割くリソースをさらに増やす(費用とエンジニアと両方の面で)</li>
<li>モバイルブラウザ向けのFlash Playerはこれ以上の開発は行わない</li>
</ol>

<p>このうち最後のトピックだけが、大きな注目を集めてしまい、結果的に大きな混乱もたらし、他の話を霞めてしまった。最近の各デバイスにおけるFlash Playerの状況を鑑みると十分に理解可能な内容ではあるはずなのだが、それにしても、なぜこのような大きな方向転換をしなくてはいけなかったかという事に対して、私たちはうまく説明しきれていなかったようだ。Flashコミュニティにとってこのニュースはかなりフラストレーションが溜まるものであっただろうし、その点については謝っておきたい。私たちが先日発表したことは「これから何をするのか」という面に対しては明確だったはずだが「なぜそうするのか」という事に対してはハッキリと伝えきれていなかったと思う。</p>

<p>だから、長くなってしまうけど、少しだけ私につきあって欲しい。これからそれらの理由を説明し、今後のWeb上におけるFlashの役割(特にHTML5との関わり方とか)についてきっちりと語るから。</p>

<p>まず、ハッキリさせておきたいのは、AIRを使ったモバイルアプリケーション開発については今後も継続していくということだ。実際、AIRを使用して成功しているアプリケーションの数も増えてきている。今回、止めることになったのは、モバイルブラウザ向けのFlash Playerの新規開発。既存のデバイスに対するバグフィックスや、セキュリティアップデート、また現行バージョンの配布に関しては続けていく。そして、同時に、HTML5に対する投資を、リソース、エンジニアリング両方の面で増やしていく。この場では深くは掘り下げないが、簡単に言ってしまうと、Flash PlatformからHTML5に開発リソースが移行されるということだ。</p>

<p>このモバイルブラウザ向けのFlash Playerプラグインの開発を止めるという決定は、今後のアドビとしての全体戦略の一部であり、そこには、HTML5や<a href="http://blogs.adobe.com/conversations/2011/11/adobe-creative-cloud-and-adobe-creative-suite-new-choices-for-customers.html" target="_blank">Creative Cloud</a>といったサービス群も含まれる。ここでは詳細については割愛するが、もし気になる人がいるのならば数日前に行われれたファイナンシャルアナリストミーティングの資料(<a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/201111/110811AdobeFinancialAnalystMeeting.html" target="_blank">サマリー</a>, <a href="http://www.adobe.com/aboutadobe/invrelations/2011_analyst_mtg/2011analystmeeting.html" target="_blank">ビデオ</a>) に詳しく載っているので見てみるといい(長いけど、見てみる価値はあると思う)</p>

<h2>なぜ、アドビはモバイルブラウザ向けFlash Playerの開発を止めるという決定を下したのか。</h2>

<p>これがどれだけ大きな政治的テーマとして扱われてきたかということを踏まえると、この決定は決して簡単に起こったことではなかった。ただ、最終的にはこの開発に多くのリソースを割くのはベストではないと判断するに足る理由がいくつもあったのだ。</p>

<h3>モバイル版Flash Playerではデスクトップ版のような普遍性は期待できない</h3>

<p>すでに分かりきったことではあるのだが、この複雑に分断されたモバイルマーケット上で、ひとつの巨大なプラットフォーム(つまりはアップルのiOS)がブラウザ上でのFlash Playerをサポートしないということは、つまり、Flash Playerがデスクトップ上で獲得している普遍的な普及率に達することはできないということを意味している。</p>

<p>これはつまり、もしFlashを用いたリッチなモバイルコンテンツをつくろうとするのならば、同時にHTML5版も作らなくてはいけないということだ。そして近年のモバイルデバイスにおけるHTML5への対応具合を踏まえると、最初からHTML5ベースで開発するほうが確実に理にかなっている。特にビデオ周りなどいくつかの例外はあるものの、モバイルデバイス上でのブラウザ向けリッチコンテンツを制作する場合、HTML5の方が適しているのは明らかだろう。</p>

<p>ここで念のためクリアにしておきたいのだが、近い将来でFlash PlayerがアップルのiOSに載るということは、私たちがどんなに頑張ってもまずありえなかった。</p>

<p><br />
<h3>モバイルブラウザ上でのHTML5の高い普及率</h3></p>

<p>すでに述べてきたことと関連しているのだが、HTML5は近年のモバイルデバイスやタブレット上でかなり高いサポートを受けている。実際、モバイルデバイス上でのHTML5の普及率はデスクトップ上での Flash Playerのそれに近いものがある。そしてパフォーマンスや実装具合に関してバラつきがあるものの、現在も驚くべきスピードで改良が進んでいる。(iOS4からiOS5でCanvasのパフォーマンスはものすごく改良されたし)</p>

<p>ApppleのiPhoneによって切り開かれた、新世代のスマートフォンやタブレットはまだわずか数年の歴史しか持っていない。であるからこそ、これらのデバイスのレンダリングエンジン(ほとんどがWebKitベース)は比較的モダンで、モバイル向けの開発ではデスクトップ版でありがちな大昔のブラウザ対策をしなくてはいけないというような事は発生しない。</p>

<p>モバイルデバイス上でのHTML5の普及率はデスクトップ上でのFlash Playerのそれに近いものがある。ということは、それがモバイルデバイス向けのリッチコンテンツを開発するのに最適な技術だということなのだろう。</p>

<p>私たちのゴールはモバイルデバイス上でのFlash Playerに関してもデスクトップと同じレベルの普及率を得ることだったのだが、残念ながらそこまで到達しなかったし、今後もそうなることは無いだろう。</p>

<p><br />
<h3>デスクトップ上とモバイル上における、ユーザーのリッチコンテンツに対する傾向の違い。</h3></p>

<p>デスクトップ上では、ユーザーは(ゲームやアプリケーションのような)リッチコンテンツをブラウザ、ネイティブアプリケーション、両方を使用して閲覧してきた。対してモバイル上では、ユーザーはリッチコンテンツの閲覧にアプリケーションだけを使う傾向にあるようだ。モバイルプラットフォームはアプリケーションストアとそのOSを融合させることで、ユーザーが簡単に新しいコンテンツやアプリケーションを見つけられるようにした。そのおかげで、ユーザーはモバイル上でWebを閲覧する際には、一般的にゲームやアプリケーションのようなリッチコンテンツを求めていない。</p>

<p>これにはいくつかの理由が挙げられる</p>
<ul>
<li>モバイルとデスクトップでの画面サイズや解像度、インタラクション仕様の違い</li>
<li>一般的にモバイルデバイス上でのネット速度は遅く、オンデマンドで読み込むリッチコンテンツは重く、お金もかかり、しかも最終的に読み込みに失敗したりする。(訳註:日本の3G回線は世界基準では超高速です。しかも完全定額なんてアリエナイ)</li>
<li>ネイティブアプリケーションはOSの機能をフル活用できる</li>
<li>アプリケーションストアがOSの一部として組み込まれたおかげで、新しいコンテンツを探すときの煩雑さが無くなった</li>
</ul>

<p>現状で、ユーザーがモバイルデバイス上で何かゲームをしたくなったら、彼らは単にアプリケーションストアを起動するだろう。これがゲームを見つけるのに一番簡単な方法だからだ。そして、このアプリケーションという概念のおかげで、ユーザーはネットワーク状況に関係なく、すぐにコンテンツにアクセスできるようになった。</p>

<p>つまり、そもそものユーザー傾向の時点で、モバイル版Flash Playerはデスクトップ版に比べてそこまで必要とされていないのだ。</p>

<p><br />
<h3>モバイルブラウザ向けプラグインの開発規模</h3></p>

<p>モバイルブラウザ向けのFlash Playerを開発することは、私たちが当初想定したよりも遥かに多くのリソースが必要だった。デスクトップブラウザ向けのプレイヤーを作るときには、各ブラウザが提供してくれるAPIを利用すればそれで問題ない。実際、私たちは各ブラウザベンダー(Googleや、Apple、Firefox、Microsoftなど)とも良好な関係をとりあってはいるものの、基本的には既存のAPIを使っているだけだ。</p>

<p>対してモバイル上のエコシステムに載せる場合、非常に多くの分野のエンジニアたちと密接にやりとりをしなくてはならない。</p>
<ol>
<li>OS開発社(GoogleやRIMなど)</li>
<li>ハードウェア設計社(モトローラやサムスンなど)</li>
<li>コンポーネント製造社(NVIDIAなど)</li>
</ol>
<p>どの分野の人たちとも良好な関係を築いてはいるものの、これだけ多種多様な組み合わせがあると、それに対応するリソースもかなりの量にのぼる。新しいデバイスやブラウザがリリースされるたびに、Flash Playerを開発し、テストし、保守するためのリソースが増えるのだ。これを今後も続けていくのはかなり厳しい。</p>

<p>ここでAIRは違うのかという質問もありそうだが、AIRの開発に関してはそこまでFlash Playerと比べてそこまでリソースが必要とされない理由がいくつかある。OSのAPIはしっかりと定義されているし、新しいブラウザのバージョンに左右されることもない。そして、結果論になってしまうが、AIRを用いて成功したアプリケーションを開発している人たちが大勢いるという事実も、私たちがAIRのモバイル版を継続していく理由のひとつだ。</p>

<h3>FlashからHTML5へのリソースの移行</h3>

<p>最後に、モバイル、デスクトップ双方におけるHTML5の発展を鑑みて、私たちはHTML5とFlashに対してより平等にリソースを分けることにした。</p>

<p>モバイルデバイス向けFlash Playerの開発を停止することによって、HTML5向けのツールやフレームワーク、ブラウザへの開発リソースが捻出できる。</p>

<p>みながこの結論に対して賛同できないのは仕方がないことだ。ただ、これらのポイントを踏まえ、今後さらに複雑化し高価になっていく開発のことを考えると、モバイル版Flash Playerに対して、これ以上のリソースをつぎ込むのはベストではないということが、私たちの判断なのだ。</p>

<p><br />
<h2>この決定がFlash Platform全体に対してどのような意味を持つのか？</h2></p>

<p>今回の発表を受けて、このモバイル版Flash Player開発を止めるという事実に対する反応もあったことはあったのだが、実際に私が耳にした反応の多くは、この決定が今後のFlash Platform全体に対してどのような影響をおよぼすのかという、疑問、混乱だった。実際のところどうなのだろう？デスクトップ版Flash Playerの開発も止まってしまうのだろうか？Flashは死んでしまったのだろうか？</p>

<p>まずはハッキリさせておこう。色々と言われてはいるものの、Flashそのものが死んでしまったわけでは決してない。フォーカスや役割は確かに変わってきた、それでも私たちは今でもFlashがWeb上でもモバイル上でも重要な役割を担っていると信じている。</p>

<h3>Adobe AIR</h3>
<p>デスクトップ版とモバイル版、両方でAIRの開発は継続する。実際、AIRを利用して大ヒットしたアプリはたくさんあるのだ。最近の事例を挙げると、<a href="http://amanita-design.net/games/machinarium.html" target="_blank">Machinarium</a>や <a href="https://market.android.com/details?id=air.WatchESPN&amp;hl=en" target="_blank">Watch ESPN</a> あたりだろうか。個人的なお気に入りは<a href="http://tweethunt.net/" target="_blank">tweet hunt</a>だな。</p>

<h3>デスクトップブラウザ向けFlash Player</h3>
<p>Flashは今までと同様、Flashでなくては実現できない機能を提供し続ける。これまでもずっとデスクトップ版Flash Playerに関してはその方針で開発が行われてきたし、それは今後も同様だ。</p>

<p>もちろん、HTML5に対応したブラウザが増えるに従って、Flashの役割は変わってくるだろう。近い将来では、Flashは特に高度なビデオやグラフィックに特化したゲームといった部分に強くなるはずだ。</p>

<p>今、開発中の機能としては以下のようなものがある</p>
<ul>
<li><a href="http://www.leebrimelow.com/?p=3133" target="_blank">マウスロック</a></li>
<li>ActionScript Workers / Concurrency APIs (マルチスレッド化)</li>
<li>Telemetry / <a href="http://tv.adobe.com/watch/max-2011-sneak-peeks/max-2011-sneak-peek-monocle/" target="_new">Monocle Support</a> (新しいプロファイラ)</li>
<li>オーディオAPIの強化、特に低レイテンシなオーディオの実現</li>
<li>ActionScript3の新しいデータタイプ</li>
</ul>

<p>また、長期的観点からいくと大きなアーキテクチャの改変も行っていて、これはFlash Playerとデベロッパー双方にいいことがあるはずだ。これに関しては、まだまだ序盤だが、数カ月後にはもう少し情報を出せると思う。</p>

<h3>Adobe Flex</h3>
<p>Flexに対しても、多くの懸案事項があることは知っている。Flexチームが別に情報をポストしたので詳しくは<a href="http://blogs.adobe.com/flex/2011/11/your-questions-about-flex.html" target="_blank">ここ</a><a href="http://cuaoar.jp/2011/11/flex-flex.html" target="_blank">(日本語訳</a>)を見て欲しい。</p>

<h3>Flash Professional</h3>
<p>Flash Professionalについては、先日別に語ってあるので<a href="http://www.mikechambers.com/blog/2011/11/10/flash-professional-and-the-future/" target="_blank">そちらを参照</a>して欲しい。基本的には今後も積極的に開発を続けていく予定だ。(訳註:こっちのポストは訳してる余裕がありませんが、MikeはFITC TOKYOに来るのでその時にFlash Professionalについて色々と話してくれるそうです。)</p>

<p><br />
<h2>HTML5とFlashについて</h2></p>

<p>最後に、HTML5とFlashについて私なりの考えを記しておきたい。</p>

<p>その始まりからして、Flashの役割はWeb上でFlashにしかできない表現を提供することだった。過去を振り返ってみると、アニメーション、ベクターグラフィックス、サウンド、ビデオ、ウェブカム、マイクなどなど、その普遍性と新バージョンが普及する速さから、Web上で新しい機能を導入するにはうってつけの環境と言える。</p>

<p>そして、時の経過と共に、それらのFlashの機能はブラウザ自身にも組み込まれる。Flashだけで実現可能だったことが、ブラウザ単体でもできるようになり、そして、そFlash Playerは新たな機能を追加する、というサイクルがずっと繰り返されてきた。これがFlashの歴史であり、今後も続いていくのだと私は予想している。実際、この流れはどの立場にもメリットをもたらしているのだ。ユーザーはリッチなコンテンツをすぐに享受できるし、アドビは技術やツールを売ることができる、そしてブラウザベンダーはFlash Playerが先行した中から人気だとわかった機能から実装すればいい。</p>

<p>ここでキーになってくるのは、もしある機能がFlashで実装され成功したのならば、その機能はその後ブラウザにも搭載され、結果的にデベロッパーはFlashからではなくブラウザから直接使うようになるということだ。</p>

<p>最近のブラウザ間での競争や、HTML5での新機能サポートのおかげで、ブラウザ単体でできることが劇的に増えたのだが、その中にはかつてはFlashの独壇場だった機能も多く含まれている。まだHTML5/CSS3がFlash Player並に普及しているとは言い難いが、今後の方向性はハッキリしている。これからは過去にFlashを用いて実現されていた多くのことが、HTML5とCSS3によって直接ブラウザ上でできるようになってくるだろう。</p>

<p>大切な事なのでもう一度言っておく。</p>

<p>これからは過去にFlashを用いて実現されていた多くのことが、HTML5とCSS3によって直接ブラウザ上でできるようになってくるだろう。</p>

<p>Flashを使って仕事をしている人にとって、この事実が恐ろしく聞こえるのはしかたない。しかし、私にはFlashコミュニティにとってここに大きな可能性が広がっているように思えるのだ。ブラウザ単体でリッチなコンテンツやモーショングラフィックスを実装できるようなれば、それらをWeb上で作った経験のある人材が必要とされる。そしてFlashコミュニティは過去10年以上にもわたって、その種の仕事を行ってきたのだから、この似た仕事に対応できる資質があるはずだ。現時点でHTML5を用いて製作された最先端のグラフィックコンテンツが、Flash経験者の手によるものだという事実は決して偶然とは思えない。(例えば、<a href="http://gskinner.com/" target="_blank">Grant Skinner</a>, <a href="http://automatastudios.com/the-endless-mural/" target="_blank">Branden Hall</a>, <a href="http://www.bigspaceship.com/" target="_blank">Big Spaceship</a>, etc…)</p>

<p>もちろん、すべてのFlashコンテンツがHTML5になるべきだとは言っていない。すべてのプロジェクトはケースバイケースで扱われ、開発コストや対応するプラットフォーム、そしてユーザーによって使用される技術は決められるべきだ。たとえ顧客がHTML5がいいと言ってきたとしても、技術やプラットフォームの話はおいておき、彼らが本当に何を必要としているのかを考えてあげて欲しい。</p>

<p>想定していたよりもかなり長くなってしまった。でも、この数日間に私の頭を駆け巡った多くのことを皆と共有しておきたかったのだ。最後にもう一度だけ強調しておく。今回のアドビの発表に対して、皆がどれほどフラストレーションが溜まったかは理解しているつもりだ。それに対しては素直に謝っておきたい。私たちはもっと分かりやすくコミュニケーションをするべきだった。</p>

<p>疑問やコメントがある場合は<a href="http://www.mikechambers.com/blog/2011/11/11/clarifications-on-flash-player-for-mobile-browsers-the-flash-platform-and-the-future-of-flash/#comments" target="_blank">コメント欄に</a>ポストして欲しい。その際は、あくまでもトピックに沿った形で建設的にお願いしたい。</p>

<p>--翻訳文オワリ------</p>

<p>なお、このページにコメントを残していただいても構いませんが、こちらに書かれたコメントに対してF-siteはMike及びAdobe関係者に伝える責務は負わないものとします。本人へのコンタクトは<a href="http://www.mikechambers.com/blog/2011/11/11/clarifications-on-flash-player-for-mobile-browsers-the-flash-platform-and-the-future-of-flash/#comments" target="_blank">彼のブログへ直接どうぞ</a>。また、本文中でも触れていますが、MikeはFITC TOKYOにもやってくるらしいので、気になる人はその時に質問攻めにしてしまいましょう。</p>
<p>p.s. special thanks @otachan for 技術方面翻訳チェック</p>
<p>p.s. p.s. この件に関して全く個人的な見解は自分のブログの方にも書いておきましたのでよかったら<a href="http://imagelogic.info/blog/individual/rather_than_future_of_flash/" target="_blank">こっちもどうぞ</a>。</p>
]]>
   </content>
</entry>
<entry>
   <title>2012.2.4 セミナー情報</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/11/10130448.html" />
   <id>tag:f-site.org,2011://1.1801</id>
   
   <published>2011-11-10T04:04:48Z</published>
   <updated>2012-02-05T07:48:43Z</updated>
   
   <summary>*&apos;&apos;「みんなのFlash効率化大作戦」&apos;&apos;

今取り組んでいるあなたの仕事（もちろんプライベートワークでも！）を、もっと快適に進めることができるとしたら、その方法を知りたくはありませんか？　今回は、JSFL、ワークスペース、ActionScriptと3つの切り口から、効率アップの糸口を掴むためのセミナーをお届けします。

*&apos;&apos;demo1「JSFL入門から上達への道」ロクナナ 加茂 雄亮氏&apos;&apos;

*&apos;&apos;demo2「オレオレJSFL自慢！　JSFL友の会」加茂 雄亮氏、道家 陽介氏、小野田 智氏、前田 タスク氏&apos;&apos;

*&apos;&apos;demo3「Flashワークスペース大比較」松本 慶一郎氏、蔵下 雅之氏、藤村 ケンジ氏、沖 良矢氏&apos;&apos;

*&apos;&apos;demo4「ActionScriptでの最速を求める」野中 文雄氏&apos;&apos;

//2012/1/4（水）夜ごろより参加受け付けを開始する予定です。もう少しお待ちください！</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="セミナー" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[

<h3>次回予告</h3>
<p>
<em>「みんなのFlash効率化大作戦」</em>
</p>
<p>
今取り組んでいるあなたの仕事（もちろんプライベートワークでも！）を、もっと快適に進めることができるとしたら、その方法を知りたくはありませんか？　今回は、JSFL、ワークスペース、ActionScriptと3つの切り口から、効率アップの糸口を掴むためのセミナーをお届けします。
</p>


<h5>demo1「JSFL入門から上達への道」ロクナナ 加茂 雄亮氏</h5>
<p class="session-summary">Flashには、Flash JavaScript APIというオーサリング環境で実行できるスクリプトAPIが用意されています。このスクリプトが、Flash用に拡張されたJavaScriptである「JSFL（Flash JavaScript）」です。ここでは、JSFLの基本と書くときのコツについて、2011年に発売された書籍『JSFLではじめるFlash制作自動化入門』の著者、加茂さんにお話しいただきます。<br />
<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798031038/fsite-22/ref=nosim/" target="_blank">JSFLではじめるFlash制作自動化入門</a><br />


<h5>demo2「オレオレJSFL自慢！　JSFL友の会」加茂 雄亮氏、道家 陽介氏、小野田 智氏、前田 タスク氏</h5>
<p class="session-summary">自分が作ったこんなに便利なJSFLを自慢したい！　いやいや、オレの作ったJSFLが最高だぜ！　とにかくオリジナルJSFLの自慢をしたくてたまらない人たちが集うJSFL友の会が結成されました。はたしてどんなJSFLが飛び出すのか、乞うご期待。</p>


<h5>demo3「Flashワークスペース大比較」松本 慶一郎氏、蔵下 雅之氏、藤村 ケンジ氏、沖 良矢氏</h5>
<p class="session-summary">他の人がどういう環境でFlashを使っているのか、気になりませんか？　アニメーター、デザイナー、スクリプター……それぞれのワークスペースには特徴があるはず。合わせてお気に入りの周辺ハードウェア＆ソフトウェアなどの話もご紹介します。</p>


<h5>demo4「ActionScriptでの最速を求める」野中 文雄氏</h5>
<p class="session-summary">ActionScriptを記述するとき、多くの場合では同じ処理を実装するときに複数のアプローチが考えられます。一定の条件下でどういう処理はどの処理より速い、など具体的なコードを交えながらご紹介します。<a href="http://www.fumiononaka.com/Sample/F-site/FF120204_.html" target="_blank">&gt;&gt;お品書きと口上</a></p>]]>
      <![CDATA[

<h4>会場</h4>
<p>
日　　時：2012/2/4（土） 13:15～17:00<br />
場　　所：国立オリンピック記念青少年総合センター <a href="http://nyc.niye.go.jp/facilities/d6-1.html"  >センター棟</a> 4階 405室<br />
住　　所：東京都渋谷区代々木神園町3-1（<a href="http://f-site.org/articles/2003/09/30221445.html"  >地図</a>）<br />
募集人数：80名<br />
参加費用：1,000円（会議室使用料など）<br />
#本編終了後、新宿に移動後割り勘（4,000～5,000円程）で二次会（宴会）実施。<br />
#二次会のみの参加は受け付けていません。
</p>


<h4>お申し込み</h4>






<p>
満員御礼！　参加多数のため、申し込みは締め切りました。
</p>






<h4>当日の主な流れについて</h4>
<p>
12:45　受付開始<br />
13:20　demo1<br />
13:50　質疑応答<br />
14:00　demo2<br />
14:45　質疑応答<br />
14:55　休憩<br />
15:05　demo3<br />
15:50　質疑応答<br />
16:00　休憩<br />
16:10　demo4<br />
16:50　じゃんけん大会、お知らせなど<br />
17:00　撤収
</p>








<hr />


<h3>定期セミナーについて</h3>
<p>
F-siteセミナーは「制作を楽しくする」方法の伝播を目的に行っています。継続的かつ定期的な開催のために、参加者のみなさまには下記内容のご理解とご協力をお願いしています。
</p>


<ol>
<li>会場内の誘導係はいません。あらかじめ会場を確認してからお越しください。</li>
<li>領収書は発行できません。</li>
<li>後片付けは参加する側も含めてみんなで行いましょう。</li>
</ol>


<h4>今後の予定</h4>


<ul>
<li>2012年5月19日（国立オリンピック記念青少年総合センター）</li>
<li>2012年7月28日（国立オリンピック記念青少年総合センター）</li>
<li>2012年11月3日（国立オリンピック記念青少年総合センター）</li>
</ul>


<h4>企業デモ（無料）について</h4>
<p>
F-siteセミナーでは、通常の枠と別に「企業デモ枠」を設けています（お申し込みがない回は省略）。新技術、新商品、バージョンアップ情報をはじめ、リサーチなど、Flashユーザーを対象にしたものなら、どのようにお使いいただいても構いません。デモ時間は15分、無料です。1セミナーにつき、2団体まで受け付けています。
</p>
<p>
詳しくは、<a href="http://f-site.org/FS-APL/FS-Form/form.cgi?Code=toiawase"  >お問い合わせフォーム</a>からお問い合わせください。
</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] 外部から読込んだSWFをメモリから消し去るには</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/10/28201600.html" />
   <id>tag:f-site.org,2011://1.1800</id>
   
   <published>2011-10-28T11:16:00Z</published>
   <updated>2011-10-28T11:39:28Z</updated>
   
   <summary>Loaderクラスにより外部から読込んだSWFが要らなくなり、メモリから消したい...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>Loaderクラスにより外部から読込んだSWFが要らなくなり、メモリから消したいときどのようにしたらよいでしょう。<em>Loader.unload()</em>メソッドを呼出すだけでは足りません。その場合に行うべき処理を確かめます。</p>]]>
      <![CDATA[<h3>01 アンロードする前にSWF内のオブジェクトはすべて止める</h3>
<p>まず、<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/display/Loader.html#unload()" target="_blank"><em>Loader.unload()</em>メソッド</a>は、SWFのタイムラインの再生やその中のサウンド、ビデオを止める訳でも、メモリから直ちに消し去る訳でもありません。ただ、Laoderオブジェクトから子SWFのデータを除くだけです。[ヘルプ]の「<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/display/Loader.html#unload()" target="_blank">Loader.unload()メソッド</a>」の項には、つぎのような注意が記されています。</p>

<blockquote>
子SWFファイルを解放する前に、LocalConnection、NetConnection、NetStream、Soundオブジェクトなど、子SWFファイルのオブジェクト内のストリームをすべて明示的に閉じておくことをお勧めします。そうしなかった場合は、子SWFファイルが解放された後も、子SWFファイルのオーディオの再生が続く場合があります。</blockquote>

<p>問題はサウンドにかぎりません。サウンド以外も、SWFの再生はメモリの中で続きます。ただ、サウンドは聴いてわかるのに対して、その他は見えないので気づかないだけです。AdobeのTechNote「<a href="http://kb2.adobe.com/jp/cps/234/234510.html" target="_blank">ActionScript 3のLoader.unloadAndStopについて（Flash Player 10）</a>」には、つぎのように説明されています(<em>Loader.unloadAndStop()</em>メソッドについては後述)。なお、ガベージコレクションについては、Adobeデベロッパーセンター「<a href="http://www.adobe.com/jp/devnet/flash/articles/flash_as3_debugging_02.html" target="_blank">FlashでのActionScript 3デバッグの理解</a>」をご参照ください。</p>

<blockquote>
Loader.unloadはLoaderオブジェクトの子を削除しますが、unloadされたオブジェクトは、ガベージコレクタによって廃棄されるまで、バックグラウンドで実行されます。
</blockquote>

<p>したがって、CPUやメモリが無駄に費やされるのを防ぎ、予期しない問題を避けるためには、アンロードする前にSWF内のオブジェクトはすべて止めるのが基本です。具体的にはつぎのような項目が挙げられます(moockblog「<a href="http://www.moock.org/blog/archives/000279.html" target="_blank">Things You Must Do Before Unloading a SWF File</a>」参照)。</p>

<ul>
<li>サウンドの再生を止める。</li>
<li>メインタイムラインやMovieClipインスタンスの再生を止める<sup>[*1]</sup>。</li>
<li>ネットワークの接続を閉じる。</li>
<ul>
<li>LoaderやURLLoader、Socket、XMLSocket、LocalConnection、NetConnections、NetStreamなど。</li>
</ul>
<li>カメラ(Camera)やマイク(Microphone)など、周辺機器のオブジェクトを開放する。</li>
<li>SWFのイベントリスナーを削除する。</li>
<li>Timerオブジェクトや<em>setInterval()</em>関数などのタイマーを止める。</li>
</ul>

<p><br />
<h3>02 Flash Player 10から備わったLoader.unloadAndStop()メソッド</h3><br />
Flash Player 10から<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/display/Loader.html#unloadAndStop()" target="_blank"><em>Loader.unloadAndStop()</em>メソッド</a>が備わりました。<em>Loader.unload()</em>メソッドと同じアンロードに加えて、SWFに対してつぎに掲げる処理が行われます(なお、「CPU 使用率の最小化」の「<a href="http://help.adobe.com/ja_JP/as3/mobile/WS4bebcd66a74275c36cfb8137124318eebc6-8000.html#WS4bebcd66a74275c36cfb8137124318eebc6-7ffc" target="_blank">オブジェクトのフリーズとフリーズ解除</a>」参照)。</p></p>

<ul>
<li>サウンドの再生を止める。</li>
<li>すべてのMovieClipインスタンスの再生を止める。</li>
<li>カメラ(Camera)やマイク(Microphone)のオブジェクトを開放する。</li>
<li>SWFのイベントリスナーを削除する。</li>
<ul>
<li>StageオブジェクトやSWFのメインタイムラインに登録されたイベントリスナー。</li>
<li><em>DisplayObject.enterFrame</em>や<em>DisplayObject.frameConstructed</em>、<em>DisplayObject.exitFrame</em>、<em>EventDispatcher.activate</em>、<em>EventDispatcher.deactivate</em>のイベントリスナー。</li>
</ul>
<li>Timerオブジェクトのタイマーを止める。</li>
</ul>

<p>具体的には、<em>Loader.unloadAndStop()</em>メソッドの呼出しにより<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/display/LoaderInfo.html#event:unload" target="_blank"><em>LoaderInfo.unload</em>イベント</a>が起きたとき、SWF内のオブジェクトを片っ端から探して、上記の停止と消去の処理を行います<sup>[*2]</sup>。その結果、無駄にCPUを費やすことが避けられます。とくに、ソースのFLAファイルが開けない外部SWFファイルを読込んだときには役立つでしょう。</p>

<p>しかし、外部SWFファイルが自らつくったものであれば、再生されているMovieClipやサウンド、ビデオが何かは把握しておくべきです。また、イベントリスナーについても、予め削除の処理を備え、いつ実行するか決めておくのが確実です。</p>

<p>また、<em>Loader.unloadAndStop()</em>メソッドも万能ではありません<sup>[*3]</sup>。このメソッドに頼りきらず、オブジェクトの停止と消去を自ら行えるようにすることが望ましいでしょう。</p>

<hr />

<p>[*1] Flash Player 11には、再生中かどうかを調べる「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1110003.html" target="_blank">MovieClip.isPlayingプロパティ</a>」が備わりました。</p>

<p>[*2] 「<a href="http://kb2.adobe.com/jp/cps/234/234510.html" target="_blank">ActionScript 3 の Loader.unloadAndStop について（Flash Player 10）</a>」は、つぎのように説明します。</p>

<blockquote>
「unload」イベントがLoaderInfoクラスに送信されると、Flash Playerは可能な限り多くのオブジェクト（Sound、NetStream、EventListenerなど）の停止と消去を再帰的に試みます。
</blockquote>

<p>[*3] gskinner.com「<a href="http://gskinner.com/blog/archives/2008/07/additional_info.html" target="_blank">Additional Information on Loader.unloadAndStop</a>」参照。なお、クラウド番外地「<a href="http://outcloud.blogspot.com/2010/08/20100818.html" target="_blank">制作記録 2010/08/18</a>」は、<em>Loader.unloadAndStop()</em>で完全に削除されないSWFの事例を紹介しています。</p>]]>
   </content>
</entry>
<entry>
   <title>2011年11月セミナー受付開始</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/10/13190154.html" />
   <id>tag:f-site.org,2011://1.1799</id>
   
   <published>2011-10-13T10:01:54Z</published>
   <updated>2012-01-04T03:59:44Z</updated>
   
   <summary> 11/5（土）に行われるF-siteセミナーの参加受付を開始しました。 「Fl...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="お知らせ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>
11/5（土）に行われるF-siteセミナーの参加受付を開始しました。
</p>
<p>
「Flashまわりのでっかい夢」と題し、第一線のFlash制作者の「いまのFlashとの関わりかた」と、Flashがこれから目指す未来についてお送りします！
</p>]]>
      <![CDATA[<p>
定員に達しましたら締め切りますので、お早めにお申込ください。<br />
<a href="http://f-site.org/articles/2011/08/07160143.html"  >セミナー詳細</a>
</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] Flash Player 11でMovieClipクラスに唯一備わったプロパティMovieClip.isPlaying</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/10/09232719.html" />
   <id>tag:f-site.org,2011://1.1798</id>
   
   <published>2011-10-09T14:27:19Z</published>
   <updated>2011-10-09T15:04:49Z</updated>
   
   <summary>Flash Player 11でMovieClipクラスにひとつだけ、Movie...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>Flash Player 11でMovieClipクラスにひとつだけ、<em>MovieClip.isPlaying</em>というプロパティが備わりました。</p>]]>
      <![CDATA[<p><em>MovieClip.isPlaying</em>は読取り専用のプロパティで、参照するMovieClipインスタンスが再生中かどうかをブール(論理)値で示します。再生中かどうかは見ればわかる、と思われるかもしれません。そのとおりでしょう。つまり、このプロパティはステージに表れていないインスタンスを調べるのがおもな役目だと考えられます。</p>

<p>ステージから消えた、あるいは消したインスタンスは、ただちにメモリからは除かれません(「<a href="http://f-site.org/articles/2010/05/09072731.html" target="_blank">DisplayObjectインスタンスの削除とガベージコレクション</a>」参照)。そのまま再生を続けていると、予期しないエラーが起こることもあります。また、見えなくても再生を続けていれば、CPUを無駄に費やします。したがって、ステージから消したMovieClipインスタンスのタイムラインは止めることが望ましいのです。詳しくは「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1110003.html" target="_blank">MovieClip.isPlayingプロパティ</a>」をお読みください。</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] Adobe Flash Player 11とAIR 3が正規公開</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/10/06112140.html" />
   <id>tag:f-site.org,2011://1.1797</id>
   
   <published>2011-10-06T02:21:40Z</published>
   <updated>2011-10-06T02:33:23Z</updated>
   
   <summary>Flash Player 11とAIR 3が正式公開されました。 Adobe A...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="業界ニュース" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p><a href="http://get.adobe.com/flashplayer/" target="_blank">Flash Player 11</a>と<a href="http://get.adobe.com/air/" target="_blank">AIR 3</a>が正式公開されました。 Adobe AIR and Adobe Flash Player Team Blog「<a href="http://blogs.adobe.com/flashplayer/2011/10/adobe-flash-player-11-air-11-available-later-today.html" target="_blank">Adobe Flash Player 11 &amp; AIR 3 Have Launched!</a>」に概要が紹介されています。その内容をかいつまんで邦訳しました。</p>]]>
      <![CDATA[<p>注目を浴びている新機能のひとつは、Stage 3Dによるハードウェアアクセラレーションされた2次元および3次元の画像レンダリングで、Mac OSやWindowsおよびConnected TV(ネット接続テレビ)で利用されます。Flash Player 10およびAIR 2と比べて最大1,000倍の描画速度により、膨大なオブジェクトを60fpsで滑らかにアニメーションさせることができます。映画や専用機並みのゲームをブラウザにもアプリケーションとしても提供可能です。Stage 3Dはモバイルのサポートも予定されています。Stage 3Dのゲームについては、 <a href="http://www.adobe.com/devnet/flashplayer/stage3d.html" target="_blank">Adobe Developer Center</a>をご覧ください。</p>

<p>追加の情報として第1に、3Dフレームワークの技術「Proscenium」があります。<a href="http://labs.adobe.com/technologies/proscenium/" target="_blank">Adobe Labsにプレビューが公開</a>されています。ProsceniumはFlash Builderを使う開発者が手早くプロトタイプをつくって、簡単なコンテンツのインタラクションや表示を実演できます。簡単なゲームやビジュアル、小さなオブジェクトの高品質な描画などに利用できるでしょう。</p>

<p>第2に、ハードウェアアクセラレーションされた滑らかな2次元画像を描く2Dフレームワーク「<a href="http://cuaoar.jp/2011/09/starling-actionscript-3.html" target="_blank">Starling</a>」の提供がすでに発表されました。Starlingフレームワークを使ったゲームは「<a href="http://www.adobe.com/devnet/flashplayer/articles/creating-whack-with-starling.html" target="_blank">Creating "Whack!" with Starling and Flash Player 11</a>」で紹介されています。また、つぎのような3Dフレームワークの情報も公開されています。</p>

<ul>
<li>「<a href="http://www.adobe.com/devnet/flashplayer/articles/alternativa3d-getting-started.html" target="_blank">Getting started with Alternativa3D</a>」</li>
<li>「<a href="http://www.adobe.com/devnet/flashplayer/articles/creating-games-away3d.html" target="_blank">Creating 3D games and apps with Away3D 4 and Stage 3D – Part 1: Setting up a 3D project in 30 minutes</a>」</li>
<li>「<a href="http://www.adobe.com/devnet/flashplayer/articles/flare3d-building-3d-game.html" target="_blank">Building a 3D Flash game with Flare3D and Stage3D</a>」</li>
<li>「<a href="http://www.adobe.com/devnet/flashplayer/articles/mixamo-flare-stage3d.html" target="_blank">Adding 3D content to your Flash game fast and easy</a>」</li>
<li>「<a href="http://aerys.in/minko/" target="_blank">Minko</a>」</li>
</ul>]]>
   </content>
</entry>
<entry>
   <title>[AS3] Flash Player 11でビットマップのサイズ制限がなくなる</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/10/05225852.html" />
   <id>tag:f-site.org,2011://1.1796</id>
   
   <published>2011-10-05T13:58:52Z</published>
   <updated>2011-10-05T15:03:38Z</updated>
   
   <summary>昨日10月4日にAdobeからFlash Player 11が正規公開されました...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>昨日10月4日にAdobeから<a href="http://japan.cnet.com/news/service/35008571/" target="_blank">Flash Player 11が正規公開</a>されました。その機能のひとつとして、ビットマップの大きさにこれまであった制限がなくなりました。</p>]]>
      <![CDATA[<p>Flash Player 10や9には、ビットマップを扱う<a href="http://help.adobe.com/ja_JP/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d65.html#WS5b3ccc516d4fbf351e63e3d118a9b90204-7d57" target="_blank">BitmapDataクラス</a>のオブジェクトに、つぎのような制約がありました。</p>

<blockquote>AIR 1.5およびFlashPlayer 10では、BitmapDataオブジェクトの最大サイズは幅または高さで8,191ピクセルです。総ピクセル数が16,777,215ピクセルを超えることはできません。（したがって、BitmapDataオブジェクトの幅が8,191ピクセルであった場合、高さは2,048ピクセルまでしか指定できません）。FlashPlayer 9以前およびAIR 1.1以前では、制限は高さ2,880ピクセル、幅2,880ピクセルです。</blockquote>

<p>しかし、<a href="http://www.adobe.com/jp/products/flashplayer/features.html" target="_blank">Flash Player 11</a>からは「BitmapDataオブジェクトは最高解像度16メガピクセル（16,777,215ピクセル）に制限されなくなり、ビットマップの最大幅／高さは8,191ピクセルに制限されなくなりました」。英文ドキュメントの<a href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#BitmapData%28%29" target="_blank">BitmapDataクラス</a>には、つぎのように説明されています(野中訳)。</p>

<ul>
<li>SWF 13以降(Flash Player 11とAIR 3)では、使えるメモリが実際上の制限になる。(理論上、幅と高さの上限は正の整数の最大値で、<a href="http://f-site.org/articles/2006/04/26111538.html" target="_blank">twip</a>とするため20で割る。しかし、メモリの上限の方が、その数値に達するよりはるか前だろう。)</li>
<li>SWF 10(Flash Player 10とAIR 1.5)では、BitmapDataオブジェクトの最大サイズは幅と高さが各8,191ピクセルで、総数は16,777,215ピクセルを超えられない。(したがって、BitmapDataオブジェクトの幅が8,191ピクセルであれば、高さは2,048ピクセルにしかできない。)</li>
<li>SWF 9(Flash Player 9とAIR 1.1)の制約は、幅と高さがそれぞれ2,880ピクセルになる。幅または高さに2,880を超える数値を定めると、新たなインスタンスがつくれない。</li>
</ul>]]>
   </content>
</entry>
<entry>
   <title>[AS3] BitmapData.setPixel()とBitmapData.setVector()メソッドでピクセルを塗る</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/10/02000000.html" />
   <id>tag:f-site.org,2011://1.1795</id>
   
   <published>2011-10-01T15:00:00Z</published>
   <updated>2011-10-01T16:14:10Z</updated>
   
   <summary>[ヘルプ]の[モバイル]/[Flash Platformのパフォーマンスの最適化...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>[ヘルプ]の[モバイル]/[Flash Platformのパフォーマンスの最適化]/[ActionScript 3.0のパフォーマンス]/[<a href="http://help.adobe.com/ja_JP/as3/mobile/WS4bebcd66a74275c3a0f5f19124318fc87b-7ffd.html" target="_blank">ピクセルの操作</a>]には、メソッド<em>BitmapData.setPixel()</em>と<em>BitmapData.setVector()</em>を用いたピクセル操作の最適化が説明されています。そこでwonderflに投稿したテスト用のコードで、3つのやり方について速さを比べてみました。</p>]]>
      <![CDATA[<p><script type="text/javascript" src="http://wonderfl.net/blogparts/jo6R/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/jo6R" title="Manipulating pixels with BitmapData.setPixel() and BitmapData.setVector() methods">Manipulating pixels with BitmapData.setPixel() and BitmapData.setVector() methods - wonderfl build flash online</a></p> </p>

<p>実際のコードそのものはwonderflでご覧いただけますので、ここではフレームアクションに直して簡単にご説明します。なお、ビットマップのインスタンスを動的につくって配置する方法については、gihyo.jp連載「ActionScript 3.0で始めるオブジェクト指向スクリプティング」第34回「3次元空間における回転」2ページ「<a href="http://gihyo.jp/dev/serial/01/as3/0034?page=2" target="_blank">ビットマップのインスタンスを動的に配置する</a>」をお読みください。</p>

<p>ひとつ目は、<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#setPixel()" target="_blank"><em>BitmapData.setPixel()</em>メソッド</a>で、ピクセルごとに単純に塗った場合です。メソッドには初めのふたつの引数でxy座標、そして3つ目にRGBカラーを渡します。</p>

<blockquote>BitmapDataオブジェクト.setPixel(x座標:int, y座標:int, RGBカラー:uint):void</blockquote>

<p>以下のスクリプト001は、ステージ一杯の大きさのBitmapDataオブジェクトをBitmapインスタンスに入れて配置し、青(0x0000FF)から赤(0xFF0000)のグラデーションで塗ります(図001)。初めの<em>for</em>ループは垂直方向に赤成分を0から255まで増やし、入れ子の<em>for</em>ループで水平方向に青成分を0から255に高めます。なお、カラー値に0.5を加えているのは、最大値の端数が切捨てられて255に達しないことを避ける四捨五入の処理です。</p>

<p>図001■ グラデーションは右方向に青・下方向に赤を高める <br />
<img alt="FF1110011_001.gif" src="http://f-site.org/FF1110011_001.gif" width="240" height="180" />
</p>

<p><strong>スクリプト001■ BitmapData.setPixel()メソッドでグラデーションの塗りを設定する</strong><br />
<pre>var nWidth:int = stage.stageWidth;<br />
var nHeight:int = stage.stageHeight;<br />
var myBitmapData:BitmapData = new BitmapData(nWidth, nHeight, false);<br />
var myBitmap:Bitmap = new Bitmap(myBitmapData);<br />
addChild(myBitmap);<br />
// myBitmapData.lock();<br />
for (var i:uint  = 0; i &lt; nHeight; i++) {<br />
	var pixelY:uint = i / nHeight * 256 + 0.5;<br />
	for (var j:uint = 0; j &lt; nWidth; j++) {<br />
		var pixelX:uint = j / nWidth * 256 + 0.5;<br />
		var color:uint = pixelY &lt;&lt; 16 | pixelX<br />
		myBitmapData.setPixel(j, i, color);<br />
	}<br />
}<br />
// myBitmapData.unlock();</pre></p>

<p> BitmapDataオブジェクトのピクセルを塗ると、それを参照するBitmapインスタンスのデータが更新されます。しかし、フレームアクションが済むまでインスタンスのイメージはステージに描画されません。いちいちデータを反映するのは無駄です。 </p>

<p> そこで、<em>for</em>ループに入る前に<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#lock()" target="_blank"><em>BitmapData.lock()</em>メソッド</a>を呼出すと、BitmapDataオブジェクトの書替えは、Bitmapインスタンスに反映されません。そして、ピクセルごとの塗りを終えて<em>for</em>ループから抜けたとき、<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#unlock()" target="_blank"><em>BitmapData.unlock()</em>メソッド</a>でデータを更新すればよいのです。前掲スクリプト001でコメントアウトされている2行のステートメントを有効にすると、その結果が確かめられます。これが、ふたつ目のやり方です。 </p>

<p>3つ目は、<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#setVector()" target="_blank"><em>BitmapData.setVector()</em>メソッド</a>でピクセルを塗ります。このメソッドはピクセルごとのカラーをuintベース型のVectorオブジェクトに納めて、引数に渡します。</p>

<blockquote>BitmapDataオブジェクト.setVector(矩形領域Rectangleオブジェクト:Rectangle, (A)RGBカラーVectorオブジェクト:Vector.<uint>):void</blockquote>

<p>つまり、BitmapDataオブジェクトを塗るのは<em>BitmapData.setVector()</em>メソッド1回の呼出しで一気に行います。そのため、Bitmapインスタンスのデータの更新を止めるという必要がありません。この<em>BitmapData.setVector()</em>メソッドを用いたのが、つぎのスクリプト002です。</p>

<p><strong>スクリプト002■ BitmapData.setVector()メソッドでグラデーションの塗りを設定する</strong><br />
<pre>var nWidth:int = stage.stageWidth;<br />
var nHeight:int = stage.stageHeight;<br />
var myBitmapData:BitmapData = new BitmapData(nWidth, nHeight, false);<br />
var myBitmap:Bitmap = new Bitmap(myBitmapData);<br />
var size:uint = nWidth * nHeight;<br />
var pixels:Vector.&lt;uint&gt; = new Vector.&lt;uint&gt;(size);<br />
addChild(myBitmap);<br />
for (var i:uint  = 0; i &lt; size; i++) {<br />
	var pixelX:uint = (i / nWidth * 256 + 0.5) % 256;<br />
	var pixelY:uint = int(i / nWidth) / nHeight * 256 + 0.5;<br />
	pixels[i] = pixelY &lt;&lt; 16 | pixelX;<br />
}<br />
myBitmapData.setVector(myBitmapData.rect, pixels);</pre></p>

<p>なお、BitmapDataオブジェクトを<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#BitmapData()" target="_blank">コンストラクタメソッド</a>の呼出しでつくるとき、第3引数に不透明となる<em>false</em>を渡しています。この場合、<em>BitmapData.setVector()</em>メソッドの第2引数とするVectorオブジェクトには、RGBカラーを整数エレメントに納めればよいです。</p>

<p>もし、BitmapDataオブジェクトを透明に(第3引数を<em>true</em>もしくは省略)したときは、ARGBカラーをVectorオブジェクトのエレメントとして加えなければなりません。</p>]]>
   </content>
</entry>
<entry>
   <title>F-siteセミナーにおけるFlashトークディスカッションのまとめ</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/10/01065742.html" />
   <id>tag:f-site.org,2011://1.1794</id>
   
   <published>2011-09-30T21:57:42Z</published>
   <updated>2011-09-30T22:35:04Z</updated>
   
   <summary>2011年8月6日に行われたF-siteセミナーの中で、「真夏のFlashトーク...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="制作全般" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p><a href="http://f-site.org/articles/2011/08/17144603.html">2011年8月6日に行われたF-siteセミナー</a>の中で、「真夏のFlashトークディスカッション」と題してFlashに関する意見交換を行いました。</p>

<p>F-siteでは、その内容をレポートにまとめました。このレポートは、日本のFlashユーザーコミュニティからの声として、セミナーにもご参加いただいたアドビシステムズの太田さんを通じてFlash開発チームに届けられる予定です。</p>

<p>レポートは、以下のURLからご覧いただけます。</p>]]>
      <![CDATA[<h3>PDF形式</h3>

<p><a href="http://f-site.org/2011/08/flash-request.pdf">http://f-site.org/2011/08/flash-request.pdf</a></p>

<h3>SlideShare（内容はPDF形式と同じものです）</h3>

<div style="width:595px" id="__ss_9492578"><iframe src="http://www.slideshare.net/slideshow/embed_code/9492578" width="595" height="497" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></div>

<p>自分でも要望を出したい方は、アドビシステムズが用意している<a href="https://www.adobe.com/cfusion/mmform/index.cfm?name=wishform&loc=jp">製品への要望 / 不具合報告 フォーム</a>をお使いいただくことをお勧めします。このフォームで送信された製品への要望、不具合は、そのまま開発チームに送られます。</p>

<p>なお製品名についてですが、Flash Professionalに関する内容は「Flash Authoring」を、Flash Playerに関する内容は「Flash Player」を選択するとよいでしょう。</p>

<h3>今後について</h3>

<p>F-siteでは、Web／セミナーの2本柱を活動の軸としながら、引き続きFlashコミュニティを楽しくする試みに取り組んでいきます！</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] Flash CS5に潜む謎のクラスWorld II − 内緒の物理エンジン</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/09/23000000.html" />
   <id>tag:f-site.org,2011://1.1793</id>
   
   <published>2011-09-22T15:00:00Z</published>
   <updated>2011-09-26T13:15:12Z</updated>
   
   <summary>以前の記事でご紹介した「Flash CS5に潜む謎のクラスWorld」は、非ドキ...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="サンプル" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>以前の記事でご紹介した「<a href="http://f-site.org/articles/2011/07/31031203.html" target="_blank">Flash CS5に潜む謎のクラスWorld</a>」は、非ドキュメントの物理エンジンに含まれているようです。昨年11月に書かれた英文blogに、ライブラリの中身を探った解説がありました。そのblogのテスト用コードをもとに、簡単なサンプルをつくってみました。</p>]]>
      <![CDATA[<p>参考にしたのは、Significant Data「<a href="http://heftybyte.com/flash/flash-cs5-physics/" target="_blank">Flash CS5 Built-in Physics Discovered</a>」です。スクリプトは<strong>Flash Professional <font color="#0000FF">CS5</font>でしか書出せず</strong>、CS5.5でもコンパイルエラーになります。またもちろん、正規サポートはされません。</p>

<p><br /></p>

<h3>01 Flash Professional CS5の物理エンジンを内緒で使う</h3>
<p>以下のスクリプト001をFlash Professional CS5のフレームアクションとしてコピー&amp;ペーストします。ステージには何も置きません。[ムービープレビュー]でステージをクリックすると、ランダムに置かれたインスタンスの半分が落下運動をします。</p>

<p><strong>図001■ランダムに置かれたインスタンスの半分が落下運動する</strong><br /><br />
<table><tr><br />
<td><br />
<img alt="FF1109231_001.gif" src="http://f-site.org/FF1109231_001.gif" width="240" height="180"  border="1" /><br />
</td><br />
<td><strong>→</strong></td><br />
<td><br />
<img alt="FF1109231_002.gif" src="http://f-site.org/FF1109231_002.gif" width="240" height="180"  border="1" /><br />
</td><br />
</tr><br />
</table><br />
<table><br />
<tr><br />
<td><strong>→</strong></td><br />
<td><br />
<img alt="FF1109231_003.gif" src="http://f-site.org/FF1109231_003.gif" width="240" height="180"  border="1" /><br />
</td><br />
</tr><br />
</table></p>

<p><br /></p>

<p><strong>スクリプト001■物理エンジンを試す</strong><br />
<pre>const COUNT:uint = 50;<br />
var instances:Vector.&lt;Shape&gt; = drawShapes(COUNT);<br />
var physics:PhysicsManager = new PhysicsManager(stage);<br />
var myWorld:World = physics.createWorld();<br />
assignPhysics();<br />
myWorld.enableCollisions(true);<br />
myWorld.setGravity(new Point(0, 200));<br />
stage.addEventListener(MouseEvent.CLICK, startPhysics);<br />
function startPhysics(eventObject:MouseEvent):void {<br />
	addEventListener(Event.ENTER_FRAME, animatePhysics);<br />
}<br />
function assignPhysics():void {<br />
	var myPoint:Point = new Point(1, 1);<br />
	for (var i:uint = 0; i &lt; COUNT; i++) {<br />
		var instance:DisplayObject = instances[i];<br />
		var physicsObject:PhysObj = myWorld.addPhysObj(instance, myPoint, 0, false);<br />
		if (i % 2) {<br />
			physicsObject.setNonMoving(true);<br />
		}<br />
	}<br />
}<br />
function animatePhysics(eventObject:Event):void {<br />
	myWorld.updateAllObjects();<br />
	myWorld.step();<br />
}<br />
function drawShapes(count:uint):Vector.&lt;Shape&gt; {<br />
	var nStageWidth:int = stage.stageWidth;<br />
	var nStageHeight:int = stage.stageHeight;<br />
	var nWidth:Number = 25;<br />
	var nHeight:Number = 5;<br />
	var instances:Vector.&lt;Shape&gt; = new Vector.&lt;Shape&gt;(count);<br />
	for (var i:uint = 0; i &lt; count; i++) {<br />
		var myShape:Shape = new Shape();<br />
		var myGraphics:Graphics = myShape.graphics;<br />
		myGraphics.beginFill(uint(0xFFFFFF * Math.random()));<br />
		myGraphics.drawRect(-nWidth / 2, -nHeight / 2, nWidth, nHeight);<br />
		myGraphics.endFill();<br />
		addChild(myShape);<br />
		instances[i] = myShape;<br />
		myShape.x = nStageWidth * Math.random();<br />
		myShape.y = nStageHeight * Math.random();<br />
		myShape.rotation = 360 * Math.random();<br />
	}<br />
	return instances;<br />
}</pre></p>

<p>非ドキュメントの機能ですので、ごく簡単にだけご説明します。まず、関数drawShapes()はタイムラインにShapeインスタンスをランダムにつくったうえで、Vectorオブジェクト(Shapeベース型)に納めて返します。試す手間がかからないように、スクリプトで配置しただけで、物理エンジンの中身には関わりません。前出のblogではMovieClipインスタンスを[ライブラリ]から配置しています。</p>

<p>物理エンジンのシミュレーションは、PhysicsManagerインスタンス(physics)からPhysicsManager.createWorld()メソッドにより件のWorldインスタンス(myWorld)をつくるところから始まります。</p>

<p>そして、タイムラインに置いたDisplayObject(Shape)インスタンスを<em>World.addPhysObj()</em>メソッドによりPhysObjオブジェクトとして加え、<em>PhysObj.setNonMoving()</em>メソッドで動かすかどうかを定めます。</p>

<p>さらに、メソッド<em>World.enableCollisions()</em>で衝突判定、<em>World.setGravity()</em>で重力を設定します。あとは、<em>DisplayObject.enterFrame</em>イベントで、<em>World.updateAllObjects()</em>と<em>World.step()</em>メソッドを呼出すことにより自然落下のアニメーションが行われます。</p>

<p>前出英文blogに引用のビデオに示されたとおり、Adobe MAX 2009ではインバース・キネマティクスのフレームワークに含まれる物理エンジンを[物理]パネルとともに公開する予定でした。しかし、製品でその公開は実現せず、非ドキュメントのクラスとして残ったようです。</p>

<p>内部的に物理エンジンはあるはずですが、CS5.5ではもはやアクセスも許されなくなったのでしょう。できれば、次期バージョンで公開してもらいたいものです。</p>

<p><br /></p>

<h3>02 物理エンジンのライブラリPffLibをCS5.5でもがんばって使う</h3>
<p>物理エンジンのAPIは、ライブラリPffLib.swcとしてFlash Professional CS5のアプリケーションの中に含まれています。これをコピーすれば、CS5.5でも使えるようです。もちろん、サポート外であることは変わりません。</p>

<p>具体的には、アプリケーションのAdobe Flash CS5/Common/Configuration/ActionScript 3.0/libsフォルダにPffLib.swcがあります(図002)。</p>

<p><strong>図002■Flash Professional CS5アプリケーション内のPffLib.swc</strong><br />
<img alt="FF1109231_004.gif" src="http://f-site.org/FF1109231_004.gif" width="525" height="275" /></p>

<p>このPffLib.swcをディスクの任意の場所(下図003ではユーザーのフォルダmylibs/libsとした)にコピーします。そして、CS5.5の[パブリッシュ設定]から[ActionScript 3.0の詳細設定]ダイアログボックスを開き、[<a href="http://help.adobe.com/ja_JP/flash/cs/using/WS3e7c64e37a1d85e1e229110db38dec34-7fa4a.html#WSFE27EB8F-735F-423e-BF7A-56E47357EBD8" target="_blank">ライブラリパス</a>]にPffLib.swcがあるフォルダを加えます(図003)。</p>

<p><strong>図003■CS5.5の[ActionScript 3.0の詳細設定]ダイアログボックスで[ライブラリパス]を追加</strong><br />
<img alt="FF1109231_005.gif" src="http://f-site.org/FF1109231_005.gif" width="535" height="365" /></p>

<p>筆者の環境では、これでCS5.5でも前掲スクリプト001が動作しました。なお、あくまで自己責任でお楽しみください。</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] 三角関数で座標を回転するふたつの計算方法</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/09/22000000.html" />
   <id>tag:f-site.org,2011://1.1792</id>
   
   <published>2011-09-21T15:00:00Z</published>
   <updated>2011-09-22T05:25:32Z</updated>
   
   <summary>角度からxy座標を定めるには、三角関数が用いられます。具体的には、つぎのふたつの...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>角度からxy座標を定めるには、三角関数が用いられます。具体的には、つぎのふたつの計算の仕方があります。これらふたつの違いと使い方をご紹介します。</p>

<ol>
<strong>【角度からxy座標を定める】</strong><br>
<li>原点からの距離がrで正のx軸となす角度がθの座標</li>
<blockquote>
x座標: r cosθ<br>
y座標: r sinθ
</blockquote>
<li>座標(x, y)を原点でθ回転した座標</li>
<blockquote>
x座標: x cosθ - y sinθ<br>
y座標: x sinθ + y cosθ
</blockquote>
</ol>]]>
      <![CDATA[<p><br /></p>

<h3>01 原点からの距離と角度で位置を定める</h3>

<p>三角関数は、原点(0, 0)からの距離が1で正のx軸となす角度がθのxy座標を(cosθ, sinθ)と定めました(gihyo.jp連載「ActionScript 3.0で始めるオブジェクト指向スクリプティング」第16回「<a href="http://gihyo.jp/dev/serial/01/as3/0016" target="_blank">三角関数を使った楕円軌道のアニメーション</a>」参照)。したがって、原点からの距離がrで正のx軸となす角度がθのxy座標は(r cosθ, r sinθ)になります(図001)。</p>

<blockquote>x = r cosθ<br>
y = r sinθ</blockquote>

<p><strong>図001■原点からの距離がrで正のx軸となす角度がθの座標をsinとcosで表す</strong><br />
<img alt="ActionScript30for3D_M01_006.gif" src="http://f-site.org/ActionScript30for3D_M01_006.gif" width="236" height="239" /></p>

<p>原点を中心とした座標の回転は、上式で角度θを増減させればよいことになります。MovieClipインスタンスをタイムラインに動的に置いて、ステージの真ん中を軸に回してみましょう。まずは、[ライブラリ]でMovieClipシンボルを選び、[シンボルプロパティ]ダイアログボックスで[ActionScript用に書き出し]にチェックして、[クラス]にはMyClassと入力します(図002)。</p>

<p><strong>図002■ MovieClipシンボルにクラスを設定する</strong><br />
<img alt="FF1109211_001.gif" src="http://f-site.org/FF1109211_001.gif" width="314" height="260" /><br />
<img alt="FF1109211_002.gif" src="http://f-site.org/FF1109211_002.gif" width="595" height="370" /></p>

<p>以下のスクリプト001をメインタイムラインのフレームに書くと、動的につくられたMovieClipインスタンス(my_mc)がステージ中央を原点として回ります(図003)。予め親Spriteインスタンス(mySprite)を置いて、原点となる基準点をステージの真ん中にしました。</p>

<p>MovieClipインスタンス(my_mc)は、角度0となる時計の3時の位置からアニメーションを始め、<em>DisplayObject.enterFrame</em>イベント(定数<em>Event.ENTER_FRAME</em>)のリスナー関数(xRotate())が三角関数sinとcosによりインスタンスの座標を回しています(スクリプト001)。</p>

<p><strong>スクリプト001■ インスタンスの原点からの距離と角度を定めて回す</strong><br />
<pre>var radius:Number = 50;<br />
var radians:Number = 0;<br />
var theta:Number = 0.05;<br />
var mySprite:Sprite = new Sprite();<br />
var my_mc:MovieClip = new MyClass();<br />
addChild(mySprite);<br />
mySprite.x = stage.stageWidth / 2;<br />
mySprite.y = stage.stageHeight / 2;<br />
mySprite.addChild(my_mc);<br />
my_mc.x = radius;<br />
addEventListener(Event.ENTER_FRAME, xRotate);<br />
function xRotate(eventObject:Event):void {<br />
	radians +=  theta;<br />
	my_mc.x = radius * Math.cos(radians);<br />
	my_mc.y = radius * Math.sin(radians);<br />
}</pre></p>

<p><br /></p>

<h3> 02 座標を原点から一定の角度回す</h3>

<p> 2次元平面の座標(x, y)を原点で角度θ回転した点(x', y')は、つぎの式で表されます。原点からの距離や正のx軸となす角度を調べることなく、平面上のどこにある座標でも決まった角度回した位置が求められます。</p>

<blockquote>x' = x cosθ - y sinθ<br />
y' = x sinθ + y cosθ</blockquote>

<p>前掲スクリプト001のインスタンスを回転するアニメーションは、この式で定めるならつぎのスクリプト002のようになります。インスタンスの原点からの距離や正のx軸となす角度は、予め知る必要がありません。</p>

<p><strong>スクリプト002■インスタンスのxy座標を直接変換して回す</strong><br />
<pre>var radius:Number = 50;<br />
var theta:Number = 0.05;<br />
var nSin:Number = Math.sin(theta);<br />
var nCos:Number = Math.cos(theta);<br />
var mySprite:Sprite = new Sprite();<br />
var my_mc:MovieClip = new MyClass();<br />
addChild(mySprite);<br />
mySprite.x = stage.stageWidth / 2;<br />
mySprite.y = stage.stageHeight / 2;<br />
mySprite.addChild(my_mc);<br />
my_mc.x = radius;<br />
addEventListener(Event.ENTER_FRAME, xRotate);<br />
function xRotate(eventObject:Event):void {<br />
	var nX:Number = my_mc.x;<br />
	var nY:Number = my_mc.y;<br />
	my_mc.x = nCos * nX - nSin * nY;<br />
	my_mc.y = nSin * nX + nCos * nY;<br />
}</pre></p>

<p><br /></p>

<h3>03 ふたつの計算の使い方</h3>

<p>前掲スクリプト001と002はひとつのインスタンスを回すだけですので、それのみではどちらがよいとはいいきれません。原点からの距離および正のx軸となす角度が定まっていれば、前述01「原点からの距離と角度で位置を定める」の式によるのが定石でしょう。</p>

<p>けれど、距離や角度は調べなければわからないとき、あるいは多くの座標を同じ角度回すときには前項02「座標を原点から一定の角度回す」の式がスマートです。xy座標だけがわかればよく、しかも回す角度が決まっていれば三角関数の値も定数扱いできるからです。</p>

<p>つぎのスクリプト003は、100個のMovieClipインスタンスんをVectorオブジェクト(MovieClipベース型)に納めて、02の式ですべて同じ角度ずつ回します(図003)。</p>

<p><strong>図003■100個のインスタンスを同じ角度ずつ回す</strong><br />
<img alt="FF1109211_003.gif" src="http://f-site.org/FF1109211_003.gif" width="270" height="235" /></p>

<p><strong>スクリプト003■数多くのインスタンスのxy座標を直接変換して回す</strong><br />
<pre>var count:uint = 100;<br />
var maxRadius:Number = 70;<br />
var theta:Number = 0.05;<br />
var nSin:Number = Math.sin(theta);<br />
var nCos:Number = Math.cos(theta);<br />
var mySprite:Sprite = new Sprite();<br />
var instances:Vector.&lt;MovieClip&gt; = new Vector.&lt;MovieClip&gt;(count);<br />
addChild(mySprite);<br />
mySprite.x = stage.stageWidth / 2;<br />
mySprite.y = stage.stageHeight / 2;<br />
for (var i:uint = 0; i &lt; count; i++) {<br />
	var radius:Number = maxRadius * Math.random();<br />
	var radians:Number = 2 * Math.PI * Math.random();<br />
	var my_mc:MovieClip = new MyClass();<br />
	mySprite.addChild(my_mc);<br />
	my_mc.x = radius * Math.cos(radians);<br />
	my_mc.y = radius * Math.sin(radians);<br />
	instances[i] = my_mc;<br />
}<br />
addEventListener(Event.ENTER_FRAME, xRotate);<br />
function xRotate(eventObject:Event):void {<br />
	for (var i:uint = 0; i &lt; count; i++) {<br />
		var my_mc:MovieClip = instances[i];<br />
		var nX:Number = my_mc.x;<br />
		var nY:Number = my_mc.y;<br />
		my_mc.x = nCos * nX - nSin * nY;<br />
		my_mc.y = nSin * nX + nCos * nY;<br />
	}<br />
}</pre></p>

<p>リスナー関数(xRotate())がすべてのインスタンスを回す計算に用いるsinとcosの値は予め変数(nSinおよびnCos)に入れられていて、メソッド<em>Math.sin()</em>も<em>Math.cos()</em>も呼出されていないことにご注目ください。メソッドの呼出しがなければ、その分演算は速くなります。</p>

<p>なお、初めにforループで各インスタンスの位置をランダムに決めるときには、01の式を使いました。</p>

<p>もちろん、インスタンスの原点からの距離および正のx軸となす角度は計算で導けます。前者は三平方の定理、後者には<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/Math.html#atan2()" target="_blank"><em>Math.atan2()</em>メソッド</a>を使います。たとえば、インスタンス(my_mc)の距離(radius)と角度(radians)はつぎのスクリプトで求められます。</p>

<blockquote>
<pre>var nX:Number = my_mc.x;
var nY:Number = my_mc.y;
var radius:Number = Math.sqrt(nX * nX + nY * nY);
var radians:Number = Math.atan2(nY, nX);</pre>
</blockquote>

<p>しかしこのやり方では、リスナー関数(xRotate())が呼出されるたびに、すべてのインスタンスについていちいち計算しなければなりません<sup>[*1]</sup>。それに、01の式で座標を定めるときも、三角関数sinとcosの値がインスタンスごとに毎回変わります。スクリプト003の方が優れているといえるでしょう。</p>

<p>ふたつのやり方で計算したそれぞれの速さを、wonderflのコードで比べてみました。polarが式01、transformが式02になります。</p>

<p><script type="text/javascript" src="http://wonderfl.net/blogparts/nw2f/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/nw2f" title="Calculating coordinates to rotate">Calculating coordinates to rotate - wonderfl build flash online</a></p> </p>

<hr />

<p>[*1] Vectorオブジェクトにインスタンスごとの距離と角度を納めておけば、いちいち計算する手間はなくなります。けれど、スクリプト003であればそれらの値そのものが必要ありません。</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] Dictionaryオブジェクトのキーにプリミティブ値を指定した場合</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/09/04133639.html" />
   <id>tag:f-site.org,2011://1.1791</id>
   
   <published>2011-09-04T04:36:39Z</published>
   <updated>2011-09-04T07:10:37Z</updated>
   
   <summary>Dictionaryオブジェクトは、参照をキーとして値が設定できることに特長があ...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>Dictionaryオブジェクトは、参照をキーとして値が設定できることに特長があります(詳しくは、「<a href="http://f-site.org/articles/2009/12/04044941.html" target="_blank">Dictionaryクラスを使ってみる</a>」をお読みください)。しかし、プリミティブ値もキーとして使えます。その場合、Dictionaryオブジェクトのキーの扱いが少し違ってくるようです。なお、参照とプリミティブの違いについては、「<a href="http://f-site.org/articles/2006/11/13162720.html" target="_blank">Stringはプリミティブ値かオブジェクトか</a>」2「ActionScript 3.0の場合」をご参照ください。</p>]]>
      <![CDATA[<p>少々マニアックなこのお題については、tail_y(尾野)さんがwonderflに「<a href="http://wonderfl.net/c/jsXD" target="_blank">Dictionaryの挙動まとめ</a>」を投稿されました。そこで、この結果をもとに簡単な説明を加えます。</p>

<p>DictionaryクラスはもちろんObjectクラスを継承します。そして、前出「Dictionaryクラスを使ってみる」に述べたとおり、「Objectインスタンスは文字列の識別子を用い」て値が加えられます。Dictionaryオブジェクトにプリミティブ値のキーを定めるとObjectインスタンスとしてふるまい、キーは文字列に変換して値を納めるようです(表001)。</p>

<p><strong>表001■Dictionaryオブジェクトのふたとおりのふるまい</strong><br /><br />
<table border="1" cellspacing="0" bordercolor="#9999FF"><br />
        <tr><br />
          <td colspan="2" bgcolor="#CCCCFF"><strong><br />
          Objectインスタンスとしてのふるまい<br />
</strong></td><br />
          <td bgcolor="#CCCCFF"><br />
プリミティブ値のキーは文字列に変換する<br />
</td><br />
        </tr><br />
      <tr bgcolor="#EEEEFF"><br />
        <td><strong><br />
キー<br />
        </strong></td><br />
        <td><strong><br />
データ型<br />
        </strong></td><br />
        <td><strong><br />
値の例<br />
        </strong></td><br />
      </tr><br />
      <tr><br />
        <td bgcolor="#EEEEFF"><strong><br />
文字列<br />
</strong></td><br />
        <td><br />
String<br /><br />
(未定義値はNull)<sup>[*1]</sup><br />
</td><br />
        <td><br />
"a"、""(空文字列)、"\n"(改行)、"[object Object]"({}.toString())<br />
</td><br />
      </tr><br />
      <tr><br />
        <td bgcolor="#EEEEFF"><strong><br />
数値<br />
</strong></td><br />
        <td><br />
Number、int、uint<br />
</td><br />
        <td><br />
1、int(1)、0.5、NaN、Infinity<br />
</td><br />
      </tr><br />
      <tr><br />
        <td bgcolor="#EEEEFF"><strong><br />
ブール(論理)値<br />
</strong></td><br />
        <td><br />
Boolean<br />
</td><br />
        <td><br />
true<br />
</td><br />
      </tr><br />
      <tr><br />
        <td bgcolor="#EEEEFF"><strong><br />
未定義値<br />
</strong></td><br />
        <td><br />
Null、void<br />
</td><br />
        <td><br />
null、undefined<br />
</td><br />
      </tr><br />
        <tr><br />
          <td colspan="2" bgcolor="#CCCCFF"><strong><br />
          Dictionaryインスタンスとしてのふるまい<br />
</strong></td><br />
          <td bgcolor="#CCCCFF"><br />
リファレンス型データは参照をキーにする<br />
</td><br />
        </tr><br />
      <tr bgcolor="#EEEEFF"><br />
        <td><strong><br />
キー<br />
        </strong></td><br />
        <td><strong><br />
データ型<br />
        </strong></td><br />
        <td><strong><br />
値の例<br />
        </strong></td><br />
      </tr><br />
      <tr><br />
        <td bgcolor="#EEEEFF"><strong><br />
オブジェクトや配列など<br />
</strong></td><br />
        <td><br />
Object、Array、Vectorなど<br />
</td><br />
        <td><br />
{}、[]、new &lt;int&gt;[]<br />
</td><br />
      </tr><br />
      <tr><br />
        <td bgcolor="#EEEEFF"><strong><br />
XMLデータ<br />
</strong></td><br />
        <td><br />
XML<br />
</td><br />
        <td><br />
&lt;xml /&gt;<br />
</td><br />
      </tr><br />
      <tr><br />
        <td bgcolor="#EEEEFF"><strong><br />
関数<br />
</strong></td><br />
        <td><br />
Function<br />
</td><br />
        <td><br />
function ():void {}、trace<br />
</td><br />
      </tr></p>

</table>

<p>先に、Objectインスタンスとしてのふるまいを確かめましょう。文字列のキーには、改行コード("\n")や空文字列("")も使えるようです。数値のキーも文字列に変換されます。したがって、数値と文字列の数字は区別されません。<em>NaN</em>や<em>Infinity</em>などの特別な値も、そのまま文字列としてキーになります。ブール値や未定義値も同じです。</p>

<p>つぎに、Dictionaryオブジェクトにリファレンス型データ(オブジェクト)をキーに定めると、その参照に対して値が設定されます。オブジェクトや配列などをキーにすると、たとえ中身(プロパティやエレメント)の値は同じでも参照が異なれば別に扱われます。XMLデータもオブジェクトですので、ノードデータは空であってもその参照がキーになります。関数もキーにすることができます。</p>

<p>Dictionaryオブジェクトを使いながら、あえてプリミティブ値をキーにすることは少ないと思われます。けれど、一般にオブジェクトで型指定した場合の未定義値は<em>null</em>です。初期値を必ず与えるといった注意はした方がよいでしょう。</p>

<hr />
<p>[*1]「<a href="http://f-site.org/articles/2010/07/31041620.html" target="_blank">変数には初期値を与える</a>」参照。</p>]]>
   </content>
</entry>
<entry>
   <title>[09/16] 中村享介のJavaScriptプログラミング基本講座</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/08/30174214.html" />
   <id>tag:f-site.org,2011://1.1790</id>
   
   <published>2011-08-30T08:42:14Z</published>
   <updated>2011-12-05T08:16:07Z</updated>
   
   <summary> Webデザインの学校 ロクナナワークショップは、2011年9月より、新講座「中...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[

<blockquote>
Webデザインの学校 ロクナナワークショップは、2011年9月より、新講座「中村享介のJavaScriptプログラミング基本講座」を開講することになりました。講師には、株式会社ピクセルグリッドの代表取締役で、フロントエンド・エンジニアの中村享介氏にご担当いただきます。<br /><br />
JavaScriptを扱い始めると、サンプルをコピーしているのに思ったように動作しない、なぜ動かないのかわからないといった場面に遭遇します。そういった問題は、基礎をしっかり固めることで大抵の場合、解決することができます。<br /><br />
本講座では、今までにJavaScriptライブラリを使ってWebサイトの制作経験がある方、またはJavaScriptを書き始めた方を対象に、JavaScriptを体系立てて解説していきます。また、実際に実習をとおして、JavaScriptの動作や実装を理解していきます。
<cite><a href="http://67.org/ws/workshop/detail/092js.html"  >中村享介のJavaScriptプログラミング基本講座</a></cite>
</blockquote>]]>
      <![CDATA[

<h3>概要</h3>
<p>
初回日程：2011年9月16日（金）<br />
開講時間：11:00 - 18:00<br />
料金：29,800円（税込み）<br />
会場：東京・原宿「ロクナナワークショップ」<br />
形態：ハンズオントレーニング
</p>
<p>
詳しくはイベント詳細ページをご覧ください。<br />
<a href="http://67.org/ws/workshop/detail/092js.html"  >http://67.org/ws/workshop/detail/092js.html</a>
</p>


<h3>主催・お問い合わせ</h3>
<p>
株式会社ロクナナ・ロクナナワークショップ<br />
〒150-0001東京都渋谷区神宮前1-1-12 #203<br />
イベント運営事務局　担当：佐々木・上田<br />
E-mail：workshop@67.org<br />
Phone：03-3408-4605
</p>


<h3>ロクナナワークショップとは</h3>
<p>
ロクナナワークショップ（アドビ認定トレーニングセンター）は、Web業界の第一線で活躍中の講師陣による実践的な講座を開講しています。全ての講座は最大6名・1日6時間で完結する、PCを操作しながらの集中トレーニングです。
</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] 矢印キーでインスタンスを移動させる</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/08/27200619.html" />
   <id>tag:f-site.org,2011://1.1789</id>
   
   <published>2011-08-27T11:06:19Z</published>
   <updated>2011-08-27T11:12:41Z</updated>
   
   <summary>MovieClipインスタンスを矢印キーで上下左右に動かす例のご紹介です(図00...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="サンプル" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>MovieClipインスタンスを矢印キーで上下左右に動かす例のご紹介です(図001)。ただし、少しひねりを加えて、キーを押し続けたときに入力が繰返される速さではなく、フレームレートで進むようにします。</p>

<p><strong>図001■MovieClipインスタンスを矢印キーで上下左右に動かす</strong><br />
<img alt="AS3_OptimizingPerformance_01_02_008.png" src="http://f-site.org/AS3_OptimizingPerformance_01_02_008.png" width="270" height="235" /></p>]]>
      <![CDATA[<p>お題はFLASH-japanの「<a href="http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&amp;topic_id=10118&amp;forum=6" target="_blank">fpsに同期したmcの移動</a>」で上がったものです。もっとも、この回答ではつくりを単純にするために、乱暴なスクリプトになっています。そこを少し整えて、簡単な説明を加えます。</p>

<p><br /></p>

<h3>01 ふたつの課題と繰返されるキー入力の扱い</h3>
<p>まず、キー入力の基本的な扱いについては、gihyo.jp連載「ActionScript 3.0で始めるオブジェクト指向スクリプティング」第13回「<a href="http://gihyo.jp/dev/serial/01/as3/0013" target="_blank">キーボードによる操作</a>」をお読みください。<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/display/InteractiveObject.html#event:keyDown" target="_blank"><em>InteractiveObject.keyDown</em>イベント</a>(定数<em>KeyboardEvent.KEY_DOWN</em>)のリスナー関数が受取るKeyboardEventオブジェクトの<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/events/KeyboardEvent.html#keyCode" target="_blank"><em>KeyboardEvent.keyCode</em>プロパティ</a>で押されたキーのコードがわかります。そこでキーの振分けをどうするかが第1の課題です。</p>

<p>第2の課題は、矢印キーを押し続けたときの扱いです。<em>InteractiveObject.keyDown</em>イベントは、押している間繰返し生じます。しかし、初めに押したときフレームレートのアニメーションを開始し、キーを放したら止めるようにします。そのためには、繰返されるイベントは除けなければなりません(前掲FLASH-japanの回答ではこの処理を省いています)。</p>

<p>ふたつ目の課題から先にかたづけましょう。以下のスクリプトのように、初めの<em>InteractiveObject.keyDown</em>イベントで押したキーのコードを変数(nPressedKey)にとります。続くイベントではそのコードが変わらないかぎり、中身の処理は端折ります。<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/display/InteractiveObject.html#event:keyUp" target="_blank"><em>InteractiveObject.keyUp</em>イベント</a>(定数<em>KeyboardEvent.KEY_UP</em>)が起きたら、変数は初期化します。</p>

<blockquote>
<pre>var nPressedKey:uint = 0;
stage.addEventListener(KeyboardEvent.KEY_DOWN, xKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, xKeyUp);
function xKeyDown(eventObject:KeyboardEvent):void {
	var nKeyCode:uint = eventObject.keyCode;
	if (nKeyCode != nPressedKey) {
		nPressedKey = nKeyCode;
		// 中身の処理
		trace(nKeyCode);  // 確認用
	}
}
function xKeyUp(eventObject:KeyboardEvent):void {
	nPressedKey = 0;
}</pre>
</blockquote>

<p><br /></p>

<h3>02 switch-caseステートメントでキー入力を切り分ける</h3>
<p>初めの課題の押されたキーによる振分けは、条件判定によるのが定石でしょう。ここでは<em>switch-case</em>ステートメントを使うと、スクリプトが見やすくなります。もちろん、<em>if</em>ステートメントでも差支えありません。<em>switch-case</em>ステートメントにより矢印キーの操作を切り分けるスクリプトについては、前出「ActionScript 3.0で始めるオブジェクト指向スクリプティング」第14回「<a href="http://gihyo.jp/dev/serial/01/as3/0014" target="_blank">キー操作とif以外の条件判定</a>」で詳しく解説しています。このやり方にしたがって整えたのが、つぎのスクリプト001です。矢印キーで動かすMovieClipシンボルのフレームアクションとして加えます。</p>

<p><strong>スクリプト001■矢印キーの操作をswitch-caseステートメントで切り分ける</strong><br />
<pre>// MovieClip: 矢印キーで動かすMovieClipシンボル<br />
var nMove:Number = 0;<br />
var nPressedKey:uint = 0;<br />
stage.addEventListener(KeyboardEvent.KEY_DOWN, xKeyDown);<br />
stage.addEventListener(KeyboardEvent.KEY_UP, xKeyUp);<br />
function xKeyDown(eventObject:KeyboardEvent):void {<br />
	var nKeyCode:uint = eventObject.keyCode;<br />
	if (nKeyCode != nPressedKey) {<br />
		xRemoveAllEventListeners();<br />
		switch (nKeyCode) {<br />
			case Keyboard.LEFT :<br />
				nPressedKey = nKeyCode;<br />
				nMove = -1;<br />
				addEventListener(Event.ENTER_FRAME, xMoveX);<br />
				break;<br />
			case Keyboard.RIGHT :<br />
				nPressedKey = nKeyCode;<br />
				nMove = 1;<br />
				addEventListener(Event.ENTER_FRAME, xMoveX);<br />
				break;<br />
			case Keyboard.UP :<br />
				nPressedKey = nKeyCode;<br />
				nMove = -1;<br />
				addEventListener(Event.ENTER_FRAME, xMoveY);<br />
				break;<br />
			case Keyboard.DOWN :<br />
				nPressedKey = nKeyCode;<br />
				nMove = 1;<br />
				addEventListener(Event.ENTER_FRAME, xMoveY);<br />
				break;<br />
		}<br />
	}<br />
}<br />
function xKeyUp(eventObject:KeyboardEvent):void {<br />
	nPressedKey = 0;<br />
	xRemoveAllEventListeners();<br />
}<br />
function xMoveX(eventObject:Event):void {<br />
	x += nMove;<br />
}<br />
function xMoveY(eventObject:Event):void {<br />
	y += nMove;<br />
}<br />
function xRemoveAllEventListeners():void {<br />
	removeEventListener(Event.ENTER_FRAME, xMoveX);<br />
	removeEventListener(Event.ENTER_FRAME, xMoveY);<br />
}</pre></p>

<p>[ムービープレビュー]を確かめると、上下左右の矢印キーをおしたとき、その方向にインスタンスがフレームレートで移動します。なお、<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/events/EventDispatcher.html#removeEventListener()" target="_blank"><em>EventDispatcher.removeEventListener()</em>メソッド</a>を呼出したとき(関数xRemoveAllEventListeners())、第2引数に渡したリスナーがイベントに登録されていなくてもとくに問題は生じません。</p>

<p><br /></p>

<h3>03 配列によりキーコードを切り分ける</h3>
<p>キーコードは正の整数で一意に定められています。重複しない整数はインデックスとして使うことができ、配列ととても相性がよいです。配列の基本的な扱い方とキーコードへの適用について、前出「ActionScript 3.0で始めるオブジェクト指向スクリプティング」第15回「<a href="http://gihyo.jp/dev/serial/01/as3/0015" target="_blank">配列を使ったキーコードとプロパティの扱い</a>」で詳しく解説しました。このやり方で整えたのがつぎのスクリプト002です。</p>

<p><strong>スクリプト002■矢印キーのコードを配列により切り分ける</strong><br />
<pre>// MovieClip: 矢印キーで動かすMovieClipシンボル<br />
var nMove:Number = 0;<br />
var nPressedKey:uint = 0;<br />
var moveFunction:Function;<br />
var movements:Array = [];<br />
movements[Keyboard.LEFT] = [-1, xMoveX];<br />
movements[Keyboard.RIGHT] = [1, xMoveX];<br />
movements[Keyboard.UP] = [-1, xMoveY];<br />
movements[Keyboard.DOWN] = [1, xMoveY];<br />
stage.addEventListener(KeyboardEvent.KEY_DOWN, xKeyDown);<br />
stage.addEventListener(KeyboardEvent.KEY_UP, xKeyUp);<br />
function xKeyDown(eventObject:KeyboardEvent):void {<br />
	var nKeyCode:uint = eventObject.keyCode;<br />
	if (nKeyCode != nPressedKey) {<br />
		xRemoveAllEventListeners();<br />
		var movement:Array = movements[eventObject.keyCode];<br />
		if (movement) {<br />
			nPressedKey = nKeyCode;<br />
			nMove = movement[0];<br />
			moveFunction = movement[1];<br />
			addEventListener(Event.ENTER_FRAME, moveFunction);<br />
		}<br />
	}<br />
}<br />
function xKeyUp(eventObject:KeyboardEvent):void {<br />
	nPressedKey = 0;<br />
	xRemoveAllEventListeners();<br />
}<br />
function xMoveX(eventObject:Event):void {<br />
	x +=  nMove;<br />
}<br />
function xMoveY(eventObject:Event):void {<br />
	y +=  nMove;<br />
}<br />
function xRemoveAllEventListeners():void {<br />
	removeEventListener(Event.ENTER_FRAME, xMoveX);<br />
	removeEventListener(Event.ENTER_FRAME, xMoveY);<br />
}</pre></p>

<p>前出「配列を使ったキーコードとプロパティの扱い」で示したスクリプトと大きく異なるのは、配列にプロパティの文字列ではなく、関数(xMoveX()またはxMoveY())の参照を納めたことです。プロパティを直接いじるより、関数で扱う方が安全で応用範囲も広がります<sup>[*1]</sup>。さらに、配列をVectorオブジェクトに置換えると、扱いがより速くなります。詳しくは「<a href="http://f-site.org/articles/2011/02/14002458.html" target="_blank">キーボードのキー操作をVectorオブジェクトで扱う</a>」をお読みください。</p>

<hr />

<p>[*1] さらに汎用性を高めた考え方としては、FumioNonaka.com「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1102001.html" target="_blank">条件分岐をポリモーフィズムに置換える</a>」をご参照ください。</p>]]>
   </content>
</entry>
<entry>
   <title>2011.8.6 「チーム力向上DAY！～みんなで作るために」</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/08/17144603.html" />
   <id>tag:f-site.org,2011://1.1788</id>
   
   <published>2011-08-17T05:46:03Z</published>
   <updated>2011-08-17T07:36:46Z</updated>
   
   <summary> demo1「PANOPTES流！コラボレーション術」PANOPTES 北畠 蘭...</summary>
   <author>
      <name>徳久 達彦</name>
      
   </author>
         <category term="レポート" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>
<img src="http://f-site.org/2011/08/06/1.jpg" alt="" />
</p>
<p>
demo1「PANOPTES流！コラボレーション術」PANOPTES 北畠 蘭知亜氏、小島準矢氏<br />
demo2「音楽とFlash～Web制作におけるミュージシャンの役割」dajistudio 吉田 健二氏<br />
demo3「Flash Professional CS5.5新機能紹介」Adobe 太田 禎一氏<br />
demo4「真夏のFlashトークディスカッション」野中 文雄氏、A.e.Suck氏、奥田 透也氏、北畠 蘭知亜氏、小島準矢氏、吉田 健二氏、太田 禎一氏
</p>
<p>
当日には、64人のご参加をいただきました。ありがとうございました！
</p>
<p>
セミナーへ参加した方のコメント、トラックバックはこちらの記事にお願いします。
</p>]]>
      <![CDATA[<p>
<img src="http://f-site.org/2011/08/06/2.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/2011/08/06/3.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/2011/08/06/4.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/2011/08/06/5.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/2011/08/06/6.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/2011/08/06/7.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/2011/08/06/8.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/2011/08/06/9.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/2011/08/06/10.jpg" alt="" />
</p>
<p>
レポート作成、写真：甲斐真理、徳久達彦、堀江真治
</p>]]>
   </content>
</entry>
<entry>
   <title>フェルマーの最終定理 − ピュタゴラスに始まり、ワイルズが証明するまで</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/08/17100000.html" />
   <id>tag:f-site.org,2011://1.1787</id>
   
   <published>2011-08-17T01:00:00Z</published>
   <updated>2011-08-17T14:39:00Z</updated>
   
   <summary> フェルマーの最終定理 − ピュタゴラスに始まり、ワイルズが証明するまで サイモ...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="オススメ本" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<table><tr><td width="120">
<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4105393014/fsite-22/" target="_blank"><img alt="FlashProfessionalTechnique.jpg" src="http://ecx.images-amazon.com/images/I/51CZY1BFGPL._SL135_.jpg" width="95" height="135" /></a>
</td>
<td valign="top"><strong>フェルマーの最終定理<br />
− ピュタゴラスに始まり、ワイルズが証明するまで</strong><br />
サイモン シン(著)/青木 薫(訳)<br />
価格：2,415円(税込)<br />
発売：2000/01/30<br />
出版：新潮社<br />
ISBN：978-4105393014
</td></tr></table>]]>
      <![CDATA[<p>ふたつの整数のn乗の和が、別の整数のn乗に等しいという式。nが2なら、誰でも知っている三平方(ピタゴラス)の定理です。</p>

<blockquote><strong>【三平方の定理</strong>】<br />
x<sup>2</sup> + y<sup>2</sup> = z<sup>2</sup> </blockquote>

<p>ところが、nが3以上になると、この方程式を満たす3つの整数の組は見つかりません。整数解は存在しないというのが「<a href="http://ja.wikipedia.org/wiki/フェルマーの最終定理" target="_blank">フェルマーの最終定理</a>」です。</p>

<blockquote><strong>【フェルマーの最終定理】</strong><br />
3 以上の自然数 n について、x<sup>n</sup> + y<sup>n</sup> = z<sup>n</sup> となる 0 でない自然数 (x, y, z) の組み合わせがない。</blockquote>

<p>17世紀にフェルマー自身が「真に驚くべき証明」を見いだしたとメモを残した方程式は、その後300年ものあいだ数学者を悩ませ続けることになります。10歳の少年アンドリュー・ワイルズがこの問題と出会い、悩み続け、挫折し、そしてついに証明に成功するまでのドキュメンタリーです。</p>

<p>若き日のアンドリューとともに、読者はギリシャ時代の数学から、この難問の研究成果を概観してゆくことになります。それは、同時に数論の歴史でもあります。数式は、本書にはほとんど出てきません。抽象的になりがちな数論を、技術的な側面より、その意義づけや役割という視点から述べています。 </p>

<p>アンドリューが完全な証明に肉薄しながらも、一旦は挫折し、ついには解決にいたるクライマックスは、ドラマチックです。</p>

<hr />
<p>参考: 松岡正剛の千夜千冊「<a href="http://www.isis.ne.jp/mnn/senya/senya0435.html" target="_blank">サイモン・シン『フェルマーの最終定理』</a>」<br />
「数学にかけた人々『解けた！フェルマーの最終定理』」
<a href="http://youtu.be/9hMDquJ9UrQ" target="_blank">Part 1</a>/<a href="http://youtu.be/kNbrbpT8Fqs" target="_blank">Part 2</a>/<a href="http://youtu.be/8eqKcXBF1WE" target="_blank">Part 3</a>/<a href="http://youtu.be/a3TDjEpqjGU" target="_blank">Part 4</a><br />
*本書のもととなった<a href="http://youtu.be/sewgNw_K8Yw" target="_blank">BBC番組</a>の日本語版。</p>]]>
   </content>
</entry>
<entry>
   <title>2011.11.5 セミナー情報</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/08/07160143.html" />
   <id>tag:f-site.org,2011://1.1786</id>
   
   <published>2011-08-07T07:01:43Z</published>
   <updated>2011-11-04T07:04:36Z</updated>
   
   <summary>*&apos;&apos;「Flashまわりのでっかい夢」&apos;&apos;

*&apos;&apos;demo1「スマートフォンのUIデザインとFlash」tha ltd. 奥田 透也氏&apos;&apos;

*&apos;&apos;demo2「FP11にFlashが見る夢」Adobe Andy Hall氏 &apos;&apos;

*&apos;&apos;demo3「Flashだけにとどまらない！体験コンテンツのアレやコレ」株式会社ココノヱ　山田 純也氏&apos;&apos;</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="セミナー" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[

<h3>次回予告</h3>
<p>
<em>「Flashまわりのでっかい夢」</em>
</p>
<p>
先日、ロサンジェルスで行われたAdobe MAX 2011で、Flashの今後の展開が発表されました。あなたにはFlashの未来がどのように映りましたか？　今回のセミナーは、第一線のFlash制作者の「いまのFlashとの関わりかた」と、Flashがこれから目指す未来についてうかがいます。
</p>


<h5>demo1「スマートフォンのUIデザインとFlash」tha ltd. 奥田 透也氏</h5>
<p class="session-summary">KDDIのスマートフォン「INFOBAR A01」に搭載されている「iida UI」の開発を通じて経験した、インターフェース開発とFlashの関わり方（Flashを中心とした案件全体のコミュニケーション、Webへの展開、etc...）について、実際のFlashモックアップを交えながらご紹介します。<br />
<a href="http://tha.jp/1968" target="_blank">http://tha.jp/1968</a><br />


<h5>demo2「FP11にFlashが見る夢」Adobe Andy Hall氏</h5>
<p class="session-summary">Flash Player 11がリリースされ、Flashがぐんとゲームよりになったような印象を持ちます。てことは、従来のFlash制作者は置き去り？　いえいえ、それだけじゃないはず。そこのところをたっぷり聞いてみましょう。</p>


<h5>demo3「Flashだけにとどまらない！体験コンテンツのアレやコレ」株式会社ココノヱ　山田 純也氏</h5>
<p class="session-summary">FITC 2011でAward受賞した「撃墜王ゲーム」、「Yesモテ顔クリニック」のインスタレーションの制作の裏側をテクニカルトークを交えてご紹介いたします。<br />
さらにココノヱでの日々の研究の一端として、音声認識などの技術やデバイス
のご紹介、それらとFlashの連携Tipsもお楽しみに！<br />
<a href="http://gekitsuioh.jp/" target="_blank">http://gekitsuioh.jp/</a><br />
<a href="http://motegao.jp/" target="_blank">http://motegao.jp/</a><br />
<a href="http://9ye.jp/" target="_blank">http://9ye.jp/</a></p>]]>
      <![CDATA[

<h4>会場</h4>
<p>
日　　時：2011/11/5（土） 13:15～17:00<br />
場　　所：国立オリンピック記念青少年総合センター <a href="http://nyc.niye.go.jp/facilities/d6-1.html"  >センター棟</a> 3階 310室<br />
住　　所：東京都渋谷区代々木神園町3-1（<a href="http://f-site.org/articles/2003/09/30221445.html"  >地図</a>）<br />
募集人数：160名<br />
参加費用：1,000円（会議室使用料など）<br />
#本編終了後、新宿に移動後割り勘（4,000～5,000円程）で二次会（宴会）実施。<br />
#二次会のみの参加は受け付けていません。
</p>


<h4>お申し込み</h4>








<p>
申し込みは締め切りました。なお、残席には余裕がありますので、申し込みをされていない方でも当日その旨を申告いただければご参加いただけます。
</p>




<h4>当日の主な流れについて</h4>
<p>
12:45　受付開始<br />
13:20　demo1<br />
14:10　質疑応答<br />
14:20　休憩<br />
14:35　demo2<br />
15:25　質疑応答<br />
15:35　休憩<br />
15:50　demo3<br />
16:40　質疑応答<br />
16:50　じゃんけん大会、お知らせなど<br />
17:00　撤収
</p>








<hr />


<h3>定期セミナーについて</h3>
<p>
F-siteセミナーは「制作を楽しくする」方法の伝播を目的に行っています。継続的かつ定期的な開催のために、参加者のみなさまには下記内容のご理解とご協力をお願いしています。
</p>


<ol>
<li>会場内の誘導係はいません。あらかじめ会場を確認してからお越しください。</li>
<li>領収書は発行できません。</li>
<li>後片付けは参加する側も含めてみんなで行いましょう。</li>
</ol>


<h4>今後の予定</h4>


<ul>
<li>2012年2月4日（国立オリンピック記念青少年総合センター）</li>
<li>2012年5月19日（国立オリンピック記念青少年総合センター）</li>
<li>2012年7月28日（国立オリンピック記念青少年総合センター）</li>
</ul>


<h4>企業デモ（無料）について</h4>
<p>
F-siteセミナーでは、通常の枠と別に「企業デモ枠」を設けています（お申し込みがない回は省略）。新技術、新商品、バージョンアップ情報をはじめ、リサーチなど、Flashユーザーを対象にしたものなら、どのようにお使いいただいても構いません。デモ時間は15分、無料です。1セミナーにつき、2団体まで受け付けています。
</p>
<p>
詳しくは、<a href="http://f-site.org/FS-APL/FS-Form/form.cgi?Code=toiawase"  >お問い合わせフォーム</a>からお問い合わせください。
</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] ガベージコレクションを働かせる裏技</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/07/31220748.html" />
   <id>tag:f-site.org,2011://1.1785</id>
   
   <published>2011-07-31T13:07:48Z</published>
   <updated>2011-07-31T14:38:49Z</updated>
   
   <summary>ガベージコレクションは、メモリに余裕があるとなかなか発動されません。[ムービープ...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p><a href="http://f-site.org/articles/2010/05/09072731.html">ガベージコレクション</a>は、メモリに余裕があるとなかなか発動されません。[ムービープレビュー]などのデバッグ環境とAIRであれば<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/system/System.html#gc()" target="_blank"><em>System.gc()</em>メソッド</a>が使えます。でも、一般のネット環境ではこのメソッドは使えません。そこで、正規サポートはされてはいない裏技をひとつご紹介します。</p>]]>
      <![CDATA[<p>ドキュメント化されていないFlash Playerのふるまいとして、LocalConnection.connect()メソッドを2回呼出すとガベージコレクションが働くようです<sup>[*1]</sup>。たとえば、つぎのフレームアクション(スクリプト001)を書いて、[ムービープレビュー]でステージをマウスクリックすればガベージコレクションにより[出力]が止まります。</p>

<p><strong>スクリプト001■ガベージコレクションを働かせる</strong><br />
<pre>var nCount:uint = 0;<br />
var mySprite:Sprite = new Sprite();<br />
var myTimer:Timer = new Timer(500, 1)<br />
stage.addEventListener(MouseEvent.CLICK, xStop);<br />
mySprite.addEventListener(Event.ENTER_FRAME, test);<br />
mySprite = null;<br />
myTimer.addEventListener(TimerEvent.TIMER, xGetMemory);<br />
function test(eventObject:Event):void {<br />
	trace(nCount++, System.totalMemory);<br />
}<br />
function xStop(eventObject:MouseEvent):void {<br />
	gcHack();<br />
	myTimer.start();<br />
}<br />
function gcHack():void {<br />
	// [ムービープレビュー]なら以下でも動作する<br />
	// System.gc();<br />
	try {	// ガベージコレクションの裏技<br />
		new LocalConnection().connect("test");<br />
		new LocalConnection().connect("test");<br />
	} catch (errorObject:Error) {}<br />
}<br />
function xGetMemory(eventObject:TimerEvent):void {<br />
	trace(eventObject.type, System.totalMemory);<br />
}</pre></p>

<p>ステージをクリックすると、Stageオブジェクトの<em>InteractiveObject.click</em>イベントに加えたリスナー関数(xStop())が裏技の処理(gcHack())を呼出してガベージコレクトします。その結果、Spriteインスタンス(mySprite)の<em>DisplayObject.enterFrame</em>イベントリスナー(test())がメモリから消えて[出力]は止まります。併せて、Timerオブジェクトの<em>Timer.timer</em>イベントリスナーが0.5秒後のメモリ使用量を確かめています(図001)。</p>

<p><strong>図001■クリックでガベージコレクションが働いてメモリ使用は減る</strong><br />
<img alt="FF1107311_001.gif" src="http://f-site.org/FF1107311_001.gif" width="240" height="110" /></p>

<p>なお、一般のネット環境でも動くことを確かめるため、wonderflにサンプルをアップロードしました。初めに述べたように正規サポートの機能ではありませんので、テストや実験などの範囲で使うのがよいでしょう。</p>

<p><script type="text/javascript" src="http://wonderfl.net/blogparts/11Q8/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/11Q8" title="Garbage Collection Hack">Garbage Collection Hack - wonderfl build flash online</a></p></p>

<hr />

<p>[*1] nick bilyk「flash garbage collection」の「<a href="http://www.nbilyk.com/flash-garbage-collection#forcing" target="_blank">Forcing the garbage collector to run</a>」参照。 </p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] Flash CS5に潜む謎のクラスWorld</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/07/31031203.html" />
   <id>tag:f-site.org,2011://1.1784</id>
   
   <published>2011-07-30T18:12:03Z</published>
   <updated>2011-07-31T00:55:57Z</updated>
   
   <summary>Flash Professional CS5で、つぎのようにクラスWorldのイ...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="バグ" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>Flash Professional CS5で、つぎのようにクラスWorldのインスタンスをつくってみます。もちろん、そういう定義済みクラスもなければ、カスタムクラスを定めた訳でもありません。</p>

<blockquote>
<pre>var test:World = new World();</pre>
</blockquote>

<p>普通はそのクラスの「型が見つからない」とか「未定義である」といったエラーが起こるはずです。ところが実際には、<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/compilerErrors.html#1136" target="_blank">コンパイルエラー#1136</a>が示されます。</p>

<blockquote>引数の数が正しくありません。正しくは 2 です。</blockquote>]]>
      <![CDATA[<p>そこで、エラーを確かめながら、取りあえずそれらがなくなるように引数や関数を書き加えたら、つぎのようなフレームアクションになりました。</p>

<blockquote>
<pre>var test:World = new World(this,this);
function createWorld() {}
function getStepSize(temp) {}
function setStepSize(temp, temp2) {}
trace(test);  // 出力: [object World]  </pre>
</blockquote>

<p>[ムービープレビュー]を試すと、Worldインスタンスができ上がったことを[出力]で確かめられます。</p>

<p>しかし、Worldクラスが文書化されていないことに加えて、Flash CS4 ProfessionalやFlash Professional CS5.5ではクラスが存在せず、したがってインスタンスもつくれません。CS5で要らないクラスを消し忘れたものと推測されます。</p>

<p>たまたま<a href="http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=10100&forum=20" target="_blank">Worldという名前のクラスを定めたときに重複する可能性</a>があるので、注意しましょう。</p>

<p>* The English version of this article is "<a href="http://blog.jactionscripters.com/2011/07/30/mysterious-class-world-in-flash-cs5/" target="_blank">Mysterious class World in Flash CS5</a>" in JActionScripters.com.</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] TLFテキストを含むインスタンスがステージの表示リストから除かれるとき</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/07/15143237.html" />
   <id>tag:f-site.org,2011://1.1783</id>
   
   <published>2011-07-15T05:32:37Z</published>
   <updated>2011-07-15T07:00:37Z</updated>
   
   <summary>ステージに置いたインスタンスがタイムラインから除かれるときには、DisplayO...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>ステージに置いたインスタンスがタイムラインから除かれるときには、<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html#event:removedFromStage" target="_blank"><em>DisplayObject.removedFromStage</em>イベント</a>(定数<em>Event.REMOVED_FROM_STAGE</em>)が起こります。ところが、そのインスタンスがTLFテキストを含むと、内部的に初期化が行われるため、一筋縄ではイベントが意図どおりに扱えません。</p>]]>
      <![CDATA[<p>たとえば、[テキストツール]で[TLFテキスト](インスタンスmy_txt)をひとつつくったMovieClipインスタンスmy_mcがメインタイムラインに置かれたとします(図001)。TLFテキストが新たに備わったFlash Professional CS5の最新Flash Player 10.1で書出すと、メインタイムラインは初めStageオブジェクトの子ではなく、内部的につくられるLoaderインスタンスにロードされます。そして、TLFテキストが初期化された後、改めてStageオブジェクトの表示リストに子として加えられます。</p>

<p><strong>図001■ MovieClipシンボルの中に[TLFテキスト]を置く</strong><br /><br />
<table><tr valign="top"><br />
<td><br />
<img alt="図001■左図" src="http://www.fumiononaka.com/TechNotes/Images/FN1103001_007.gif" width="250" height="235" /><br />
</td><br />
<td><br />
<img alt="図001■右図" src="http://www.fumiononaka.com/TechNotes/Images/FN1103001_008.gif" width="314" height="195" /><br />
</td><br />
</tr></table></p>

<p>すると、メインタイムラインをLoaderオブジェクトの表示リストから除くときに、<em>DisplayObject.removedFromStage</em>イベントが送られるのです。つまり、インスタンスをステージから消すときに行うつもりの処理を、TLFテキストの初期化が終わってこれからまさにステージで表示されるべきときに実行してしまうことになります。</p>

<p>さらにたちの悪いことに、最新のCS5.5では動作が変わります。メインタイムラインは初めからStageオフジェクトの子インスタンスとして加えられたまま、もうひとつTLFテキストを初期化するインスタンスがStageオブジェクトの表示リストに加わるのです。つまり、初期化のときインスタンスに<em>DisplayObject.removedFromStage</em>イベントは起こりません。ですから、このイベントは初めの期待どおり、インスタンスがStageオブジェクトを頂点とする表示リストから外れるとき発生します。</p>

<p>問題はFlash Player 10.1でどうやってTLFテキスト初期化時の<em>DisplayObject.removedFromStage</em>イベントを振分けるかです。もちろん、Flash Playerのバージョンを調べるやり方も考えられます。しかし、メインタイムラインつまりインスタンスの<em>DisplayObject.root</em>プロパティの参照が、Stageオブジェクトの表示リストの子インスタンス(インデックス0)と同じかどうかを確かめればよいでしょう。</p>

<p>以下のスクリプト001は、TLFテキストが含まれたMovieClipシンボルのフレームアクションです。MovieClipインスタンスが<em>DisplayObject.removedFromStage</em>イベントを受取ったとき、リスナー関数(xRemovedFromStage())はStageオブジェクトの子(インデックス0)がメインタイムラインに等しいとき処理を行います。</p>

<p><strong>スクリプト001■DisplayObject.removedFromStageイベントでメインタイムラインがStageオブジェクトの子かどうかを確かめる</strong><br />
<pre>var my_txt:TLFTextField;<br />
addEventListener(Event.REMOVED_FROM_STAGE, xRemovedFromStage);<br />
function xRemovedFromStage(eventObject:Event):void {<br />
	var childAt0:DisplayObject = stage.getChildAt(0);<br />
	if (childAt0 == root) {  // メインタイムラインがStageオブジェクトの子かどうか<br />
		removeEventListener(Event.REMOVED_FROM_STAGE, xRemovedFromStage);<br />
		// 処理内容を書く<br />
		removeChild(my_txt);  // TLFインスタンスを表示リストから除く<br />
		my_txt = null;  // TLFインスタンスの参照を消す<br />
	}<br />
	trace(childAt0);<br />
}</pre></p>

<p>なお、「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1103001.html" target="_blank">予め配置したインスタンスの存在しないフレームに移動しても参照が消えない</a>」と同じ問題を避けるため、TLFテキストのインスタンス(my_txt)はMovieClipインスタンスの表示リストから除き、参照を(<em>null</em>の代入によって)消しています。</p>]]>
   </content>
</entry>
<entry>
   <title>[07/29] Xcode4によるiPhoneアプリ開発セミナー</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/07/14163537.html" />
   <id>tag:f-site.org,2011://1.1782</id>
   
   <published>2011-07-14T07:35:37Z</published>
   <updated>2011-08-07T04:12:10Z</updated>
   
   <summary> 毎日コミュニケーションズは、7月29日(金)に開催される「マイコミ スマートフ...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[

<blockquote>
毎日コミュニケーションズは、7月29日(金)に開催される「マイコミ スマートフォンアワード 2011」において、有料セミナー「Xcode4によるiPhoneアプリ開発セミナー」を行います。<br />
今年の3月、Mac OS XおよびiOS向け開発環境の最新バージョンであるXcode4が正式リリースされました。Xcode3に較べて色々と便利になった一方で、Xcode3との操作感の違いに戸惑う開発者も少なくありません。<br />
本セミナーでは、Webゲームクリエイターで、FlashやiPhoneアプリなどのオリジナルゲームのコンテンツ制作、執筆活動の傍ら関西学院大学非常勤講師も務める森巧尚氏を講師に招き、まずXcode4の特徴や操作を、Xcode3との違いも押さえつつ解説した後、実際のアプリ製作の流れから実機での確認方法までを紹介します。初めてiPhoneアプリ開発に取り組む人にも、Xcode3からXcode4への移行に戸惑う人にも役立つ内容となっています。<br /><br />
参加の申し込みは、「マイスマ！2011」の特設ページにて受付中。受講料は1回券が2,500円で、本セミナーに加えて「これだけは知っておきたいスマートフォン制作」(講師：たにぐちまこと氏)、「iPhoneアプリで稼ごう～マネタイズ編～」(講師：丸山弘詩氏他)、「Androidアプリ開発、ここがハマリどころ」セミナーを開催 」(講師：高見知英氏他)の全セミナーに参加できる1日受講券は7,000円となっています。なお、申し込みの受付は事前登録が必要となっており、当日券は残席がある場合のみ販売予定です。
<cite><a href="http://mysma.jp/seminar.html"  >マイコミ スマートフォンアワード 2011</a></cite>
</blockquote>]]>
      <![CDATA[

<h3>概要</h3>
<p>
日時：7月29日金曜日16:00～16:50<br />
場所：東京都千代田区一ツ橋1-1-1パレスサイドビル内　マイナビルームL<br />
受講料：2,500円 (要事前申込)
</p>
<p>
詳しくはイベント詳細ページをご覧ください。<br />
<a href="http://mysma.jp/seminar.html"  >http://mysma.jp/seminar.html</a>
</p>


<h3>問い合わせ・申込</h3>
<p>
<a href="http://mysma.jp/"  >http://mysma.jp/</a>
</p>]]>
   </content>
</entry>
<entry>
   <title>[08/20] Summer Camp 2011 羽田野太巳の 厳選 今すぐ使えるHTML5 API</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/07/13140706.html" />
   <id>tag:f-site.org,2011://1.1781</id>
   
   <published>2011-07-13T05:07:06Z</published>
   <updated>2011-08-30T08:53:52Z</updated>
   
   <summary> ロクナナワークショップは、2011年8月20日に今最も注目を集めている「HTM...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[

<blockquote>
ロクナナワークショップは、2011年8月20日に今最も注目を集めている「HTML5 API」をテーマにセミナーイベントを開催いたします。<br /><br />
6月には「羽田野太巳の HTML5 API 徹底解説」を開催し、大変ご好評をいただき、第2回開催のお問い合わせを多く頂いただいておりました。<br />
本セミナーイベントでは、6月の講演内容より、取り上げるHTML5 APIを更に増やし、より幅広く充実したカリキュラムで開催いたします。<br />
また、6月の開催時には定員より多くのお申し込みをいただいたため、今回はお席を増やし、受講料もお手頃な価格とさせていただきました。<br /><br />
本セミナーイベントでは、今すぐにでも使えるAPIを厳選し、それらを一通り紹介し、テクノロジーのコンセプトから具体的な使い方までを学習します。<br />
まだHTML5のAPIを使ったことがないという方でも、本イベントを通して、まずは、これらのAPIを使い始めることができることを目標にしています。<br />
主にWebコンテンツ制作者や、Webアプリケーション開発者の方々は、今後需要の高まる「HTML5 API」を今のうちに理解し、利点を最大限に活用するための準備を進めてはいかがでしょう。<br /><br />
講師には、6月同様、Google社公認のエキスパート、Microsoft社公認のプロフェッショナル（MVP）で、HTML5.JP を運営し、HTML5の関連書籍も多数執筆されている 羽田野太巳（はたのふとみ）氏をお迎えします。
<cite><a href="http://event.67.org/summercamp/20110820/"  >Summer Camp 2011 羽田野太巳の 厳選 今すぐ使えるHTML5 API</a></cite>
</blockquote>]]>
      <![CDATA[

<h3>概要</h3>
<p>
日時：2011年8月20日（土）11:00 - 18:00（開場10:45）<br />
定員：40名（会場の都合により増減あり）<br />
料金：7,800円（税込み）<br />
会場：東京・新宿「関東ITソフトウェア健保会館 Conference A」
</p>
<p>
詳しくはイベント詳細ページをご覧ください。<br />
<a href="http://event.67.org/summercamp/20110820/"  >http://event.67.org/summercamp/20110820/</a>
</p>


<h3>主催・お問い合わせ</h3>
<p>
株式会社ロクナナ・ロクナナワークショップ<br />
〒150-0001東京都渋谷区神宮前1-1-12 #203<br />
イベント運営事務局　担当：佐々木・上田<br />
E-mail：workshop@67.org<br />
Phone：03-3408-4605
</p>


<h3>ロクナナワークショップとは</h3>
<p>
ロクナナワークショップは、アドビ認定トレーニングセンターとして、Web業界の第一線で活躍中の講師陣による実践的な講座を開講しています。全ての講座は最大6名・1日6時間で完結する、PCを操作しながらの集中トレーニングです。講座のラインアップもFlash/ActionScript、HTML/CSS、JavaScript、PHP、WordPress、Webアクセシビリティなど幅広くご用意しています。
</p>]]>
   </content>
</entry>
<entry>
   <title>2011年8月セミナー受付開始</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/07/06105850.html" />
   <id>tag:f-site.org,2011://1.1780</id>
   
   <published>2011-07-06T01:58:50Z</published>
   <updated>2011-10-13T10:18:09Z</updated>
   
   <summary> 8/6（土）に行われるF-siteセミナーの参加受付を開始しました。 「チーム...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="お知らせ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>
8/6（土）に行われるF-siteセミナーの参加受付を開始しました。
</p>
<p>
「チーム力向上DAY！～みんなで作るために」と題し、共同作業の取り組み方や、Flash Professional CS5.5の新機能紹介、トークディスカッションも含め、盛りだくさんでお送りします！
</p>]]>
      <![CDATA[<p>
定員に達しましたら締め切りますので、お早めにお申込ください。<br />
<a href="http://f-site.org/articles/2011/05/15085910.html"  >セミナー詳細</a>
</p>]]>
   </content>
</entry>
<entry>
   <title>[07/26] 矢野りんのWebデザインセオリー講座</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/06/13132349.html" />
   <id>tag:f-site.org,2011://1.1779</id>
   
   <published>2011-06-13T04:23:49Z</published>
   <updated>2011-08-07T04:11:25Z</updated>
   
   <summary> この度、ロクナナワークショップは、Webデザインのビジュアルデザインに特化した...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[

<blockquote>
この度、ロクナナワークショップは、Webデザインのビジュアルデザインに特化した新講座「矢野りんのWebデザインセオリー講座」を開設いたしました。<br /><br />
講師には、Webサイトなど情報デザインを中心とした著述や講演活動で活躍されているデザイナーで、日本アンドロイドの会 女子部 部長の矢野りん（ヤノリン）氏をお迎えします。<br /><br />
ビジュアルデザインはコンテンツの「顔」ともいえるでしょう。それは、好ましさを左右するという側面以上に、コンテンツのわかりやすさや、使いやすさを大きく左右し、良いビジュアルなしでのコンテンツの成功はありません。<br /><br />
本講座は、Webデザインのビジュアルデザインに関するスキルアップを目的としています。講座の流れは、まずデザインに関するセオリーを解説し、そのセオリーにしたがって実際にデザインを起こしていくというハンズオン形式となります。全体を通してWebページのモックアップをステップバイステップ形式で作成し、最終的に成果物の講評を行います。<br /><br />
また本講座は、PCの画面のみにとどまらず、需要の高まるスマートフォン（マルチスクリーン）を意識した画面設計についても学習します。
<cite><a href="http://67.org/ws/workshop/detail/090design.html"  >矢野りんのWebデザインセオリー講座</a></cite>
</blockquote>]]>
      <![CDATA[

<h3>概要</h3>
<p>
初回日程：2011年7月26日（木）<br />
開講時間：11：00 - 18：00<br />
料金：29,800円（税込み）<br />
会場：東京・原宿「ロクナナワークショップ」<br />
形態：ハンズオントレーニング
</p>
<p>
詳しくは講座詳細ページをご覧ください。<br />
<a href="http://67.org/ws/workshop/detail/090design.html"  >http://67.org/ws/workshop/detail/090design.html</a>
</p>


<h3> お問い合わせ</h3>
<p>
株式会社ロクナナ・ロクナナワークショップ<br />
〒150-0001東京都渋谷区神宮前1-1-12 #203<br />
事務局　担当：佐々木・上田<br />
E-mail：workshop@67.org<br />
Phone：03-3408-4605
</p>


<h3>ロクナナワークショップとは</h3>
<p>
ロクナナワークショップ（アドビ認定トレーニングセンター）は、Web 業界の第一線で活躍中の講師陣による実践的な講座を開講しています。全ての講座は最大6名・1日6時間で完結する、PCを操作しながらの集中トレーニングです。講座のラインアップもIllustrator/Photoshop、HTML/CSS、JavaScript、Dreamweaver、WordPress、PHP、フィジカルコンピューティングなど幅広くご用意しています。
</p>]]>
   </content>
</entry>
<entry>
   <title>[07/14] 西畑一馬のCSS3でつくるスマートフォンサイト講座</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/06/13131743.html" />
   <id>tag:f-site.org,2011://1.1778</id>
   
   <published>2011-06-13T04:17:43Z</published>
   <updated>2011-07-25T22:59:02Z</updated>
   
   <summary> ロクナナワークショップは、2011年7月より、Web制作を中心とした著述や講演...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[

<blockquote>
ロクナナワークショップは、2011年7月より、Web制作を中心とした著述や講演活動で活躍されているWebクリエイターで、to-R代表の西畑一馬（ニシハタカズマ）氏を講師にお迎えし「西畑一馬のCSS3でつくるスマートフォンサイト講座」を開講することになりました。<br /><br />
現在、iPhoneやAndroidなどのスマートフォンのシェアは、ものすごい勢いで増加しています。そのため、これからのWeb制作ではスマートフォン対応が必須のスキルになりつつあります。<br /><br />
本講座では、HTMLとCSSの基礎知識がある方を対象に、CSS3をつかったWebサイトのスマートフォン対応について学習していきます。<br />
スマートフォン対応はPC向けのサイト制作とは異なり、CSS3などの新しい技術を利用することが可能です。CSS3を利用することで効率よくスマートフォンサイトを作成できるようになるでしょう。<br /><br />
また、制作環境の構築やviewportなどスマートフォン独自の概念、各デバイスの仕様や癖、バグを学ぶことでより効率のよいスマートフォン対応が可能になります。<br />
本講座を通して最新のWeb制作を身につけてください。
<cite><a href="http://67.org/ws/workshop/detail/091html.html"  >西畑一馬のCSS3でつくるスマートフォンサイト講座</a></cite>
</blockquote>]]>
      <![CDATA[

<h3>概要</h3>
<p>
初回日程：2011年7月14日（木）<br />
開講時間：11：00 - 18：00<br />
料金：29,800円（税込み）<br />
会場：東京・原宿「ロクナナワークショップ」<br />
形態：ハンズオントレーニング
</p>
<p>
詳しくは講座詳細ページをご覧ください。<br />
<a href="http://67.org/ws/workshop/detail/091html.html"  >http://67.org/ws/workshop/detail/091html.html</a>
</p>


<h3> お問い合わせ</h3>
<p>
株式会社ロクナナ・ロクナナワークショップ<br />
〒150-0001東京都渋谷区神宮前1-1-12 #203<br />
事務局　担当：佐々木・上田<br />
E-mail：workshop@67.org<br />
Phone：03-3408-4605
</p>


<h3>ロクナナワークショップとは</h3>
<p>
ロクナナワークショップ（アドビ認定トレーニングセンター）は、Web 業界の第一線で活躍中の講師陣による実践的な講座を開講しています。全ての講座は最大6名・1日6時間で完結する、PCを操作しながらの集中トレーニングです。講座のラインアップもIllustrator/Photoshop、HTML/CSS、JavaScript、Dreamweaver、WordPress、PHP、フィジカルコンピューティングなど幅広くご用意しています。
</p>]]>
   </content>
</entry>
<entry>
   <title>[07/02] 千貫りこのWeb制作基本講座</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/05/24154106.html" />
   <id>tag:f-site.org,2011://1.1777</id>
   
   <published>2011-05-24T06:41:06Z</published>
   <updated>2011-07-13T05:06:13Z</updated>
   
   <summary> ロクナナワークショップは、2011年7月より、Web制作を中心とした著述や講演...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[

<blockquote>
ロクナナワークショップは、2011年7月より、Web制作を中心とした著述や講演活動で活躍されている、フリーランスWebクリエイターの千貫りこ氏による新講座「千貫りこのWeb制作基本講座」を開講することになりました。<br /><br />
本講座は、Web制作業界でプロとして働くうえで、最低限知っておかなければならない基本的な知識やスキルの習得を目的としています。<br /><br />
ひとくちに「Webサイト制作」といっても、サイトの規模や制作者の人数などにより、やり方はさまざまです。<br />
本講座では、数10ページ以内の比較的小規模なサイトを取り上げ、ひとりまたは少人数で制作することを前提に実習を進めます。<br />
小規模サイトを担当する方はもちろん、中・大規模サイトを担当の方にも、小規模サイト制作の流れを学習することで、分担作業の効率化などが身につきます。<br /><br />
これから、プロとしてWeb制作業界を目指す方、Web制作会社の新人の方、今まで何となくWeb制作を行ってきた方で基本をしっかり学びたい方にはおすすめの講座です。
<cite><a href="http://67.org/ws/workshop/detail/089design.html"  >千貫りこのWeb制作基本講座</a></cite>
</blockquote>]]>
      <![CDATA[

<h3>概要</h3>
<p>
初回日程：2011年7月2日（土）<br />
開講時間：11：00 - 18：00<br />
料金：29,800円（税込み）<br />
会場：東京・原宿「ロクナナワークショップ」<br />
形態：ハンズオントレーニング
</p>
<p>
詳しくは講座詳細ページをご覧ください。<br />
<a href="http://67.org/ws/workshop/detail/089design.html"  >http://67.org/ws/workshop/detail/089design.html</a>
</p>


<h3> お問い合わせ</h3>
<p>
株式会社ロクナナ・ロクナナワークショップ<br />
〒150-0001東京都渋谷区神宮前1-1-12 #203<br />
事務局　担当：佐々木・上田<br />
E-mail：workshop@67.org<br />
Phone：03-3408-4605
</p>


<h3>ロクナナワークショップとは</h3>
<p>
ロクナナワークショップ（アドビ認定トレーニングセンター）は、Web 業界の第一線で活躍中の講師陣による実践的な講座を開講しています。<br />
全ての講座は最大6名・1日6時間で完結する、PCを操作しながらの集中トレーニングです。<br />
講座のラインアップもIllustrator/Photoshop、HTML/CSS、JavaScript、Dreamweaver、WordPress、PHP、フィジカルコンピューティングなど幅広くご用意しています。
</p>]]>
   </content>
</entry>
<entry>
   <title>[06/24] 小山田晃浩のHTML5マークアップ講座</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/05/24152654.html" />
   <id>tag:f-site.org,2011://1.1776</id>
   
   <published>2011-05-24T06:26:54Z</published>
   <updated>2011-07-13T05:05:55Z</updated>
   
   <summary> デザインの学校 ロクナナワークショップは、新講座「小山田晃浩のHTML5マーク...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[

<blockquote>
デザインの学校 ロクナナワークショップは、新講座「小山田晃浩のHTML5マークアップ講座」を開設いたしました。<br /><br />
講師は、株式会社ピクセルグリッドのフロントエンドエンジニアで、HTML5やCSS3をはじめとした書籍を多数執筆され、「Microsoft MVP for Internet Explorer」にも認定されている小山田晃浩氏が担当。<br /><br />
本講座では、XHTMLの基礎知識がある方を対象に、HTML5の利点と特徴を整理しながら学びぶとともに、実際にHTML5を用いた基本的なWebページの構築スキルの習得を目的としています。また、旧IEへの対策なども併せて学びます。<br /><br />
HTML5はただ単に「新しいから」という理由で話題になっているわけではありません。HTML5には、これまでのXHTMLになかった新しい文書構造、新しい埋め込み要素、新しいフォームなど、さまざまな新機能が盛り込まれており、さらに多数の周辺技術への発展も考えられているなどの利点があります。<br /><br />
また、HTML5の対応にはGoogle、Apple、Microsoftを始めとするブラウザの開発各社も積極的に取り組んでおり、 HTML5は仕様（W3C、WHATWG）と利用する環境（ブラウザー）の両方が整いつつあるのです。それに合わせてHTML5を「書く側」の制作者も HTML5を理解し、利点を最大限に活用する必要があります。
<cite><a href="http://67.org/ws/workshop/detail/087html.html"  >小山田晃浩のHTML5マークアップ講座</a></cite>
</blockquote>]]>
      <![CDATA[

<h3>概要</h3>
<p>
初回日程：2011年6月24日（金）<br />
開講時間：11：00 - 18：00<br />
料金：29,800円（税込み）<br />
会場：東京・原宿「ロクナナワークショップ」<br />
形態：ハンズオントレーニング
</p>
<p>
詳しくは講座詳細ページをご覧ください。<br />
<a href="http://67.org/ws/workshop/detail/087html.html"  >http://67.org/ws/workshop/detail/087html.html</a>
</p>


<h3>お問い合わせ</h3>
<p>
株式会社ロクナナ・ロクナナワークショップ<br />
〒150-0001東京都渋谷区神宮前1-1-12 #203<br />
事務局　担当：佐々木・上田<br />
E-mail：workshop@67.org<br />
Phone：03-3408-4605
</p>


<h3>ロクナナワークショップとは</h3>
<p>
ロクナナワークショップ（アドビ認定トレーニングセンター）は、Web 業界の第一線で活躍中の講師陣による実践的な講座を開講しています。<br />
全ての講座は最大6名・1日6時間で完結する、PCを操作しながらの集中トレーニングです。<br />
講座のラインアップもIllustrator/Photoshop、HTML/CSS、JavaScript、Dreamweaver、WordPress、PHP、フィジカルコンピューティングなど幅広くご用意しています。
</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] ふたつの数値の最大値・最小値を得るにはMathクラスより条件演算子?:の方が速い</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/05/20104841.html" />
   <id>tag:f-site.org,2011://1.1775</id>
   
   <published>2011-05-20T01:48:41Z</published>
   <updated>2011-05-20T02:14:33Z</updated>
   
   <summary>ふたつの数値のうちの最大値または最小値を求めるには、Math.max()とMat...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>ふたつの数値のうちの最大値または最小値を求めるには、<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/Math.html#max()" target="_blank"><em>Math.max()</em></a>と<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/Math.html#min()" target="_blank"><em>Math.min()</em></a>メソッドが使われます。けれど、計算の速さが求められる場合には、<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/operators.html#conditional" target="_blank">条件演算子<em>?:</em></a>を用いて単純に大小比較した方がお得です。</p>]]>
      <![CDATA[<p><em>Math.max()</em>および<em>Math.min()</em>メソッドの演算を条件演算子<em>?:</em>で書替えるには、ふたつの数値の大きさをただ比べるだけです(表001)。演算子<em>?:</em>のごく基本的な使い方でしょう(なお、「<a href="http://f-site.org/articles/2011/02/09113238.html" target="_blank">条件演算子?:はいつ使うとよいか</a>」参照)。</p>

<p><strong>表001■ふたつの数値のうちの最大値・最小値を求める</strong><br /><br />
<table border="1" cellspacing="0" bordercolor="#9999FF"><br />
        <tr><br />
          <td bgcolor="#CCCCFF"><strong><br />
Mathクラスのメソッド<br />
</strong></td><br />
          <td bgcolor="#CCCCFF"><strong><br />
条件演算子?:による書替え<br />
</strong></td><br />
        </tr><br />
      <tr><br />
        <td bgcolor="#EEEEFF"><strong><br />
Math.max(a, b)<br />
</strong></td><br />
        <td><br />
(a &gt; b) ? a: b<br />
</td><br />
      </tr><br />
      <tr><br />
        <td bgcolor="#EEEEFF"><strong><br />
Math.min(a, b)<br />
</strong></td><br />
        <td><br />
(a &lt; b) ? a: b<br />
</td><br />
      </tr><br />
</table></p>

<p>条件演算子に書替えた方が速いのは、大きくふたつ理由があると考えられます。第1は、<em>Math.max()</em>や<em>Math.min()</em>メソッドには、いくつでも引数が渡せることです。つまり、引数の数を確かめ、すべての大小を調べることが求められます。そのため、数値はふたつと決めて、それらの大小を比べる<em>?:</em>演算子の処理の方が速くなるのです。</p>

<p>任意の数の引数から最大値を返す関数は、たとえばつぎのスクリプト001のように定められます(不定数の引数定義については、「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN0703001.html" target="_blank">...(rest)パラメータ定義キーワード</a>」参照)。しかし、この関数の処理は、引数を不定にしてしまったため、<em>Math.max()</em>メソッドと比べて決して速くありません(後掲テスト001参照)。</p>

<p><strong>スクリプト001■任意の数の引数から最大値を取出す関数</strong><br />
<pre>function xMax(...values):Number {<br />
	var nLength:uint = values.length;<br />
	var nMax:Number = values[0];<br />
	for (var i:uint = 1; i < nLength; i++) {<br />
		var myValue:Number = values[i];<br />
		if (myValue > nMax) {<br />
			nMax = myValue;<br />
		}<br />
	}<br />
	return nMax;<br />
}</pre></p>

<p>条件演算子を使った方が速い理由の第2は、ステートメントに直接書かれており、関数として定められていないことです。このような書き方を「インライン」といいます。Adobeの「Flash Platformのパフォーマンスの最適化」には、「<a href="http://help.adobe.com/ja_JP/as3/mobile/WS4bebcd66a74275c3a0f5f19124318fc87b-7ffc.html" target="_blank">その他の最適化</a>」の項でつぎのように説明しています。</p>

<blockquote>
関数呼び出しは負荷を増加させる可能があります。コードをインライン化して、関数呼び出しの回数を削減するようにします。コードのインライン化は、純粋なパフォーマンスの最適化に適した方法です。ただし、インラインコードではコードの再利用が困難で、SWFファイルのサイズが大きくなる可能性があるので注意してください。
</blockquote>

<p>たとえ引数をふたつに決めて演算子<em>?:</em>で比べたとしても、つぎのスクリプト002のように関数として定めればインラインよりは遅くなります(後掲テスト001参照)。</p>

<p><strong>スクリプト002■ふたつのの引数から最大値を取出す関数</strong><br />
<pre>function xMax(n0:Number, n1:Number):Number {<br />
	var nMax:Number = (n0 > n1) ? n0 : n1;<br />
	return nMax;<br />
}</pre></p>

<p>ご参考のために以下のテスト001で、<em>Math.max()</em>メソッドと条件演算子を使った最大値の取出しについて、引数不定とふたつにかぎった場合やインラインとの速さを比べてみました。なお、引数不定のときは、4つの数で試しています。</p>

<p><strong>テスト001■Math.max()メソッドと条件演算子?:で最大値の取出しを比べる</strong><br /><br />
<script type="text/javascript" src="http://wonderfl.net/blogparts/2y4I/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/2y4I" title="Getting the max value with Math.abs() vs custom methods">Getting the max value with Math.abs() vs custom methods - wonderfl build flash online</a></p></p>]]>
   </content>
</entry>
<entry>
   <title>2011.5.14 「こころに響くFlashの作り方」</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/05/17213120.html" />
   <id>tag:f-site.org,2011://1.1773</id>
   
   <published>2011-05-17T12:31:20Z</published>
   <updated>2011-05-21T03:40:04Z</updated>
   
   <summary> demo1「Flashならではのエモーショナルな表現をつくる」ソニックジャム ...</summary>
   <author>
      <name>五十嵐 武志</name>
      
   </author>
         <category term="レポート" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>
<img src="http://f-site.org/articles/2011/05/16/1.jpg" alt="" />
</p>
<p>
demo1「Flashならではのエモーショナルな表現をつくる」ソニックジャム 神山 剛氏, 池田 亮氏<br />
demo2「プロモーションサイト制作事例：LISMO! for Android auの場合」北田 荘平氏<br />
demo3「AR三兄弟がテレビに出る理由。」AR三兄弟 川田 十夢氏（長男）<br />
demo4「『キミとボク』公開記念！Flashから映画化への道のり」やまがら しげと氏
</p>
<p>
当日には、125人のご参加をいただきました。ありがとうございました！
</p>
<p>
demo1のソニックジャム神山さん、池田さんから、当日使用したデモファイルをダウンロードできるようにしていただきました。ソニックジャムさんの広報ブログからどうぞ。<br />
<a href="http://koho.sonicjam.co.jp/info/1009/"  >http://koho.sonicjam.co.jp/info/1009/</a>
</p>
<p>
セミナーへ参加した方のコメント、トラックバックはこちらの記事にお願いします。
</p>]]>
      <![CDATA[<p>
<img src="http://f-site.org/articles/2011/05/16/2.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/articles/2011/05/16/3.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/articles/2011/05/16/4.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/articles/2011/05/16/5.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/articles/2011/05/16/6.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/articles/2011/05/16/7.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/articles/2011/05/16/8.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/articles/2011/05/16/9.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/articles/2011/05/16/10.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/articles/2011/05/16/12.jpg" alt="" />
</p>
<p>
レポート作成、写真：A.e.Suck、SIHO、五十嵐武志、小野田智
</p>]]>
   </content>
</entry>
<entry>
   <title>2011.8.6 セミナー情報</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/05/15085910.html" />
   <id>tag:f-site.org,2011://1.1771</id>
   
   <published>2011-05-14T23:59:10Z</published>
   <updated>2011-08-05T09:10:08Z</updated>
   
   <summary>*&apos;&apos;「チーム力向上DAY！～みんなで作るために」&apos;&apos;

*&apos;&apos;demo1「PANOPTES流！コラボレーション術」PANOPTES 北畠 蘭知亜氏、小島 準矢氏&apos;&apos;

*&apos;&apos;demo2「音楽とFlash～Web制作におけるミュージシャンの役割」dajistudio 吉田 健二氏 &apos;&apos;

*&apos;&apos;demo3「Flash Professional CS5.5新機能紹介」Adobe 太田 禎一氏&apos;&apos;

*&apos;&apos;demo4「真夏のFlashトークディスカッション」野中 文雄氏、A.e.Suck氏、奥田 透也氏、ほか&apos;&apos;</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="セミナー" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[

<h3>次回予告</h3>
<p>
<em>「チーム力向上DAY！～みんなで作るために」</em>
</p>
<p>
アニメーターやデベロッパーなど、普段からFlashに取り組んでいる人たちは、音楽／映像／写真などのスペシャリストとどのように共同作業をしているのでしょうか？　Flash制作者側、Flash以外の制作者側、それぞれの視点で、よりよいものを作り出すために取り組んでいることとは、どのようなことでしょうか？　Flash Professional CS5.5の新機能紹介や、トークディスカッションも含め、盛りだくさんでお送りします！
</p>


<h5>demo1「PANOPTES流！コラボレーション術」PANOPTES 北畠 蘭知亜氏、小島 準矢氏</h5>
<p class="session-summary">デザイナーズユニットとして話題のWebサイトを多数手がけているPANOPTESから代表兼デザイナーの北畠さん、デベロッパーの小島さんにお越しいただき、映像や写真、音楽チームとの共同作業の進め方についてご紹介いただきます。<br />
人選、アサインの方法から、Flash外で制作した素材をどのように管理し、組み込んでいくか、まで実例を挙げながら大いに語ります！<br />
<a href="http://www.panoptes.jp/" target="_blank">http://www.panoptes.jp/</a></p>


<h5>demo2「音楽とFlash～Web制作におけるミュージシャンの役割」dajistudio 吉田 健二氏</h5>
<p class="session-summary">ミュージシャンとして数々のWebサイトに楽曲を提供されているdajistudio 吉田さんをお招きし、普段取り組まれているWeb／Flash制作者との仕事について、進行方法、曲のイメージを擦り合わせるコツ、注意していることなど、具体的にご説明いただきます。<br />
<a href="http://www.dajistudio.com/" target="_blank">http://www.dajistudio.com/</a></p>


<h5>demo3「Flash Professional CS5.5新機能紹介」Adobe 太田 禎一氏</h5>
<p class="session-summary">Adobe Creative Suite CS5.5が5月に発売されてから早数ヶ月。もうFlash Professional CS5.5は使われていますか？　もう使ってる！方も、そうでない方も、この機会に新機能をおさらいしましょう。今後のFlashプラットフォームについてのビジョンもご紹介いただきます。</p>


<h5>demo4「真夏のFlashトークディスカッション」野中 文雄氏、A.e.Suck氏、奥田 透也氏、ほか</h5>
<p class="session-summary">CS5.5の新機能はもちろん、既存の機能も含めて、「Flashは、こうすればもっと良くなる」「ココはさらに強化してほしい」など、ポジティブな視点でFlashについて語りあいます。会場からの意見も大歓迎。集まった意見は、いちFlashユーザーコミュニティからの声としてまとめてAdobeに提出する予定です。</p>]]>
      <![CDATA[

<h4>会場</h4>
<p>
日　　時：2011/8/6（土） 13:15～17:00<br />
場　　所：国立オリンピック記念青少年総合センター <a href="http://nyc.niye.go.jp/facilities/d6-1.html"  >センター棟</a> 3階 311室<br />
住　　所：東京都渋谷区代々木神園町3-1（<a href="http://f-site.org/articles/2003/09/30221445.html"  >地図</a>）<br />
募集人数：160名<br />
参加費用：1,000円（会議室使用料など）<br />
#本編終了後、新宿に移動後割り勘（4,000～5,000円程）で二次会（宴会）実施。<br />
#二次会のみの参加は受け付けていません。
</p>


<h4>お申し込み</h4>








<p>
申し込みは締め切りました。なお、残席には余裕がありますので、申し込みをされていない方でも当日その旨を申告いただければご参加いただけます。
</p>




<h4>当日の主な流れについて</h4>
<p>
12:45　受付開始<br />
13:20　demo1<br />
13:50　質疑応答<br />
14:00　休憩<br />
14:10　demo2<br />
14:40　質疑応答<br />
14:50　休憩<br />
15:00　demo3<br />
15:30　質疑応答<br />
15:40　demo4<br />
16:30　質疑応答<br />
16:40　じゃんけん大会、お知らせなど<br />
17:00　撤収
</p>








<hr />


<h3>定期セミナーについて</h3>
<p>
F-siteセミナーは「制作を楽しくする」方法の伝播を目的に行っています。継続的かつ定期的な開催のために、参加者のみなさまには下記内容のご理解とご協力をお願いしています。
</p>


<ol>
<li>会場内の誘導係はいません。あらかじめ会場を確認してからお越しください。</li>
<li>領収書は発行できません。</li>
<li>後片付けは参加する側も含めてみんなで行いましょう。</li>
</ol>


<h4>今後の予定</h4>


<ul>
<li>2011年11月5日　内容未定</li>
</ul>


<h4>企業デモ（無料）について</h4>
<p>
F-siteセミナーでは、通常の枠と別に「企業デモ枠」を設けています（お申し込みがない回は省略）。新技術、新商品、バージョンアップ情報をはじめ、リサーチなど、Flashユーザーを対象にしたものなら、どのようにお使いいただいても構いません。デモ時間は15分、無料です。1セミナーにつき、2団体まで受け付けています。
</p>
<p>
詳しくは、<a href="http://f-site.org/FS-APL/FS-Form/form.cgi?Code=toiawase"  >お問い合わせフォーム</a>からお問い合わせください。
</p>]]>
   </content>
</entry>
<entry>
   <title>[6/11]Summer Camp 2011 羽田野太巳の HTML5 API 徹底解説</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/05/11115038.html" />
   <id>tag:f-site.org,2011://1.1774</id>
   
   <published>2011-05-11T02:50:38Z</published>
   <updated>2011-06-13T04:23:28Z</updated>
   
   <summary>Webデザインの学校 ロクナナワークショップは、2011年6月11日 東京・新宿...</summary>
   <author>
      <name>SIHO</name>
      
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<blockquote>Webデザインの学校 ロクナナワークショップは、2011年6月11日 東京・新宿の会場で、今最も注目を集めている「HTML5 API」をテーマに、主にWebコンテンツ制作者や、Webアプリケーション開発者の方々を対象にセミナーイベントを開催します。

<p>講師には、Google社公認のエキスパートで、HTML5.JPを運営し、HTML5の関連書籍も多数執筆されている羽田野太巳（はたのふとみ）氏が登壇。<br />
HTML5、そしてHTML5に関連して注目を浴びているAPIは数多くあります。<br />
本セミナーでは、すでにブラウザーの実装が進み、今からでも使えるAPIを厳選し、特にWebサイトで利用可能なビジュアル系のAPIを、1日6時間かけて集中的に習得していきます。</p>

<p>HTML5の新APIは、JavaScriptの知識だけでは理解できません。それぞれのAPIの背景にあるコンピューター・テクノロジーの知識も必要となります。<br />
本セミナーでは、コーディングの話だけではなく、そのバックラウンドに横たわるコンピューター・テクノロジーの内容にも触れながら、APIの本質を理解していきます。</blockquote><br />
</p>]]>
      <![CDATA[<p>●イベントサイト<br />
　<a href="http://event.67.org/summercamp/20110611/">http://event.67.org/summercamp/20110611/</a></p>

<p>●概要<br />
　日時：2011年6月11日（土）11:00 - 18:00（開場10:45）<br />
　定員：30名（会場の都合により増減あり）<br />
　料金：9,800円（税込み）</p>

<p>　会場：東京・新宿「関東ITソフトウェア健保会館 Conference A」</p>

<p>●主催・お問い合わせ<br />
　株式会社ロクナナ・ロクナナワークショップ<br />
　〒150-0001東京都渋谷区神宮前1-1-12 #203<br />
　イベント運営事務局　担当：佐々木・上田<br />
　E-mail：workshop@67.org<br />
　Phone：03-3408-4605</p>

<p>●ロクナナワークショップとは<br />
ロクナナワークショップは、アドビ認定トレーニングセンターとして、Web業界の第一線で活躍中の講師陣による実践的な講座を開講しています。<br />
全ての講座は最大6名・1日6時間で完結する、PCを操作しながらの集中トレーニングです。<br />
講座のラインアップもFlash/ActionScrip、HTML/CSS、JavaScript、PHP、WordPress、Webアクセシビリティなど幅広くご用意しています。</p>]]>
   </content>
</entry>
<entry>
   <title>2011年5月セミナー受付開始</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/04/25104916.html" />
   <id>tag:f-site.org,2011://1.1770</id>
   
   <published>2011-04-25T01:49:16Z</published>
   <updated>2011-07-06T02:01:49Z</updated>
   
   <summary> 5/14（土）に行われるF-siteセミナーの参加受付を開始しました。 「ここ...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="お知らせ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>
5/14（土）に行われるF-siteセミナーの参加受付を開始しました。
</p>
<p>
「こころに響くFlashの作り方」と題し、話題の講師陣にお集まりいただき、触れた人の「こころに響くFlash」制作の鍵となる考え方やテクニックなどをご紹介いただきます。なお、今回は1つのdemoにつき30分として、4つのdemoをお送りします。
</p>]]>
      <![CDATA[<p>
定員に達しましたら締め切りますので、お早めにお申込ください。<br />
<a href="http://f-site.org/articles/2011/02/01085100.html"  >セミナー詳細</a>
</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] 距離はPointやVector3DクラスのメソッドよりMath.sqrt()と三平方の定理で求める方が速い</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/04/22015117.html" />
   <id>tag:f-site.org,2011://1.1769</id>
   
   <published>2011-04-21T16:51:17Z</published>
   <updated>2011-04-21T17:01:19Z</updated>
   
   <summary>PointやVector3Dクラスには、座標と座標の間の距離を求める同じ名前の静...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>PointやVector3Dクラスには、座標と座標の間の距離を求める同じ名前の静的メソッド<em>distance()</em>があります。しかし、速さを稼ぐにはこれらのメソッドでなく、<em>Math.sqrt()</em>メソッドを用いて三平方の定理で導く方がお得です。</p>]]>
      <![CDATA[<p><a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/geom/Point.html#distance()" target="_blank"><em>Point.distance()</em></a>と<a href="http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/geom/Vector3D.html#distance()" target="_blank"><em>Vector3D.distance()</em></a>は、ともに座標と座標の間の距離を求める静的メソッドです。引数には座標が納められたPointまたはVector3Dインスタンスをふたつ渡し、Number型の距離が返されます。</p>

<blockquote>
<p>
Point.distance(Pointインスタンス0, Pointインスタンス1)<br />
Vector3D.distance(Vector3Dインスタンス0, Vector3Dインスタンス1)
</p>
</blockquote>

<p>決して、これらのメソッドを使っていけないという訳ではありません。ただ、座標は大量に扱うことがめずらしくなく、計算の速さを求めざるを得ない場合があります。そのようなとき、2点間の距離を求めるのに、<em>Math.sqrt()</em>メソッドで三平方の定理により導くのが有効だということです。</p>

<p>ふたつの座標の間の距離を、<em>Math.sqrt()</em>メソッドと三平方の定理で求めてみましょう。クラスの静的メソッドと同じ仕様で関数を定めます。以下のスクリプト001は<em>Point.distance()</em>メソッドと同じく引数にふたつのPointインスタンスを、スクリプト002は<em>Vector3D.distance()</em>と同じふたつのVector3Dインスタンスを受取って、ふたつの間の距離をNumber型の数値で返します。なお、座標値の2乗は<em>Math.pow()</em>メソッドでなく、速さを稼ぐため変数に入れた数値を単純に2回掛合わせています。</p>

<p><br />
<strong>スクリプト001■ふたつのPointオブジェクトの間の距離をMath.sqrt()メソッドで求める</strong><br />
<pre>function distance2D(beginPoint:Point, endPoint:Point):Number {<br />
	var nX:Number = endPoint.x - beginPoint.x;<br />
	var nY:Number = endPoint.y - beginPoint.y;<br />
	var distance:Number = <em>Math.sqrt</em>(nX * nX + nY * nY);<br />
	return distance;<br />
}</pre></p>

<p><br /></p>

<p><strong>スクリプト002■ふたつのVector3Dオブジェクトの間の距離をMath.sqrt()メソッドで求める</strong><br />
<pre>function distance3D(beginVector3D:Vector3D, endVector3D:Vector3D):Number {<br />
	var nX:Number = endVector3D.x - beginVector3D.x;<br />
	var nY:Number = endVector3D.y - beginVector3D.y;<br />
	var nZ:Number = endVector3D.z - beginVector3D.z;<br />
	var distance:Number = <strong>Math.sqrt</strong>(nX * nX + nY * nY + nZ * nZ);<br />
	return distance;<br />
}</pre></p>

<p>ご参考のために、PointやVector3Dクラスの静的メソッドと<em>Math.sqrt()</em>で三平方の定理により求める距離計算の速さを比べてみました。テスト001は<em>Point.distance()</em>と<em>Math.sqrt()</em>(三平方の定理)、テスト002がVector3D.distance()とMath.sqrt()(三平方の定理)の比較です。</p>

<p><strong>テスト001■Point.distance()とMath.sqrt()(三平方の定理)で2点間の距離を求める比較</strong><br /><br />
<script type="text/javascript" src="http://wonderfl.net/blogparts/rUa2/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/rUa2" title="Getting distance with Point.distance() and Math.sqrt() methods">Getting distance with Point.distance() and Math.sqrt() methods - wonderfl build flash online</a></p></p>

<p><br /></p>

<p><strong>テスト002■Vector3D.distance()とMath.sqrt()(三平方の定理)で2点間の距離を求める比較</strong><br /><br />
<script type="text/javascript" src="http://wonderfl.net/blogparts/1paK/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/1paK" title="Getting distance with Vector3D.distance() and Math.sqrt() methods">Getting distance with Vector3D.distance() and Math.sqrt() methods - wonderfl build flash online</a></p></p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] Text Layout Framework(TLF)でハマらないために</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/04/18210338.html" />
   <id>tag:f-site.org,2011://1.1768</id>
   
   <published>2011-04-18T12:03:38Z</published>
   <updated>2011-08-06T21:01:39Z</updated>
   
   <summary>Flash Professional CS5から備わったText Layout ...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="バグ" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>Flash Professional CS5から備わったText Layout Framework(TLF)は、テキストにInDesignのような細かな設定が加えられます。他方、Text Layout Frameworkのライブラリがデフォルトではランタイム共有ライブラリから読込まれるため、インスタンスは独自の生成過程を経ます。タイムラインに[TLFテキスト]を置いただけで、思わぬ結果になることもありますので注意が必要です。</p>]]>
      <![CDATA[<p>本稿では細かな説明は省き、フォーラムやblog記事などの紹介にとどめます。詳しくは、それらのトピックや記事をお読みください。また、Text Layout Frameworkの基礎については、つぎのgihyo.jp連載「ActionScript 3.0で始めるオブジェクト指向スクリプティング」の解説をご参照ください。</p>

<ul>
<li>第39回「<a href="http://gihyo.jp/dev/serial/01/as3/0039" target="_blank">TLFTextFieldクラスを使う</a>」</li>
<li>第40回「<a href="http://gihyo.jp/dev/serial/01/as3/0040" target="_blank">Text Layout Frameworkでテキストコンテンツを表示する</a>」</li>
<li>第41回「<a href="http://gihyo.jp/dev/serial/01/as3/0041" target="_blank">Text Layout Frameworkへの外部XMLデータの読込みとユーザーインタラクション</a>」</li>
</ul>

<p>[1]FLASH-japan:<br />
「<a href="http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&amp;topic_id=9806&amp;forum=8" target="_blank">nullのオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません</a>」<br />
「<a href="http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&amp;topic_id=9940&amp;forum=20" target="_blank">TLFテキストボックスを配置すると、クラスからstage変数が取得できない</a>」<br />
クラス定義でflashx.textLayoutパッケージのクラスを使ったとき、コンストラクタメソッドから<em>DisplayObject.stage</em>プロパティでStageオブジェクトにアクセスできません。→「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1005002.html" target="_blank">flashx.textLayoutパッケージのクラスを使うとコンストラクタからStageにアクセスできない</a>」</p>

<p>[2]FLASH-japan:「<a href="http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&amp;topic_id=9798&amp;forum=20" target="_blank">TLFテキストのフォーマット変更について</a>」<br />
予めタイムラインに置いたTLFテキスト(TLFTextField)インスタンスに、TextLayoutFormatオブジェクトでフォーマットを適用しようとしても、[プロパティ]インスペクタの設定が勝ります→「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1012002.html" target="_blank">予め配置したTLFテキストのインスタンスにTextLayoutFormatが適用できない</a>」</p>

<p>[3]FLASH-japan:「<a href="http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&amp;topic_id=9956&amp;forum=20" target="_blank">読み込んだ外部SWFファイルの操作のことで質問があります</a>」<br />
Loaderクラスで[TLFテキスト]が含まれた外部SWFファイルを読込むと、SWFファイルのメインタイムラインが<em>Loader.content</em>プロパティで参照できません。→「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1104003.html" target="_blank">TLFテキストのある外部SWFを読込むとその中のオブジェクトにアクセスできない</a>」</p>

<p>[4]「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1103001.html" target="_blank">予め配置したインスタンスの存在しないフレームに移動しても参照が消えない</a>」<br />
MovieClipシンボルの中に[TLFテキスト]があると、MovieClipインスタンスのないフレームに移っても、インスタンスはメモリから消えません。</p>

<p>[5]RIAxDNP「<a href="http://www.riaxdnp.jp/?p=963" target="_blank">【TLF】ハマったポイントと回避方法</a>」<br />
TLF(Text Layout Framework)について、ハマったポイントと解決方法を紹介したblog記事です。</p>

<p>[5]「<a href="http://f-site.org/articles/2011/07/15143237.html" target="_blank">TLFテキストを含むインスタンスがステージの表示リストから除かれるとき</a>」(2011/07/15追加)<br />
ステージに置いたインスタンスがタイムラインから除かれるときには、<em>DisplayObject.removedFromStage</em>イベント(定数<em>Event.REMOVED_FROM_STAGE</em>)が起こります。ところが、そのインスタンスがTLFテキストを含むと、内部的に初期化が行われるため、一筋縄ではイベントが意図どおりに扱えません。 </p>

<p>[6]「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1108001.html" target="_blank">TLFテキストが配置されたメインタイムラインの初期化</a>」(2011/08/07追加)<br />
[TLFテキスト]で使われるActionScriptライブラリは、デフォルトではランタイム共有ライブラリとして読込まれます。そのため、[TLFテキスト]を用いたSWFファイル本体は容量が小さく抑えられるものの、ライブラリのロードに少し時間がかかったり、初期化される間にメインタイムラインが密かに表示リスト間をさまよったりします。しかも、そのふるまいが、Flash Player 10や10.1(Flash Professional CS5)と10.2(同CS5.5)とでは異なることに、注意しなければなりません。</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] ifと静的メソッドとコメント ー [自動フォーマット] vol.4</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/03/26035458.html" />
   <id>tag:f-site.org,2011://1.1767</id>
   
   <published>2011-03-25T18:54:58Z</published>
   <updated>2011-03-25T19:21:16Z</updated>
   
   <summary>久しぶりの[自動フォーマット]ネタです(図001)。Flash Professi...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="バグ" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>久しぶりの[自動フォーマット]ネタです(図001)。Flash Professional CS5で確かめています。</p>

<p><strong>図001■ifステートメント内の静的メソッド呼出しにコメントを加える</strong><br /><br />
<img alt="FF1103261_001.gif" src="http://f-site.org/FF1103261_001.gif" width="260" height="135" /></p>]]>
      <![CDATA[<p>すると、<em>if</em>ステートメントブロックの閉じ括弧<em>}</em>を、ひとつ余分に加えてくれます(図002)。</p>

<p><strong>図002■ifステートメントステートメントブロックの閉じ括弧}が余分に加わる</strong><br /><br />
<img alt="FF1103261_002.gif" src="http://f-site.org/FF1103261_002.gif" width="260" height="170" /></p>

<p>もちろん、括弧の対応が合わなくなります。もう一度[自動フォーマット]を行えば、シンタックスエラーを告げる警告が表れます(図003)。このパターンは、<a href="http://f-site.org/articles/2007/11/30192915.html" target="_blank">以前にもありました</a>。ほとんど因縁をつけられているようなものです。</p>

<p><strong>図003■警告のダイアログボックスがシンタックスエラーを告げる</strong><br /><br />
<img alt="FF1103261_003.gif" src="http://f-site.org/FF1103261_003.gif" width="560" height="180" /></p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] 配列のインデックスを式で計算したときはuint型で渡す</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/02/19164156.html" />
   <id>tag:f-site.org,2011://1.1766</id>
   
   <published>2011-02-19T07:41:56Z</published>
   <updated>2011-02-19T07:43:45Z</updated>
   
   <summary>配列やVectorインスタンスのエレメントを扱うとき、インデックス番号を式で与え...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>配列やVectorインスタンスのエレメントを扱うとき、インデックス番号を式で与えることがあります。その場合、配列アクセス演算子<em>[]</em>に式を直接書込むのでなく、uint型に変換(<a href="http://help.adobe.com/ja_JP/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f87.html" target="_blank">キャスト</a>)するか、式の値はuint型の変数に入れたうえでその変数を渡すようにしましょう。その方が、書く手間は少し増えても、処理が速まります。</p>]]>
      <![CDATA[<p>[1] 配列アクセス演算子<em>[]</em>にインデックスとして式を直接書込んだとき、その式の値のデータ型は決まっていません。この場合、エレメントの扱いが遅くなるようです。</p>

<blockquote>
<pre>var my_array:Array = [0, 1, 2];
var i:uint = 0;
var element:int = my_array[i + 1];  // 配列アクセス演算子に式を直接記述</pre>
</blockquote>

<p>[2] <a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/package.html#uint()" target="_blank"><em>uint()</em>関数</a>は、引数の数値をuint型に変換(キャスト)します。式を<em>uint()</em>関数の引数に渡したうえで、その値を配列アクセス演算子<em>[]</em>に指定すればデータ型が定まります。</p>

<blockquote>
<pre>var element:int = my_array[uint(i + 1)];  // 式はuint()関数でキャストする</pre>
</blockquote>

<p>[3] uint型の変数を宣言して、式の値はその変数に入れたうえで、配列アクセス演算子<em>[]</em>にはその変数を渡すことも考えられます。</p>

<blockquote>
<pre>var n:uint = i + 1;  // 式の値をuint型の変数に入れる
var element:int = my_array[n];</pre>
</blockquote>

<p>3つのやり方を、配列とVectorインスタンスについて、それぞれ比べてみました。式が極めて単純ですし、環境によっては差が出ないこともあるでしょう。</p>

<p><script type="text/javascript" src="http://wonderfl.net/blogparts/1TNO/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/1TNO" title="Setting a computed number to an element of Array">Setting a computed number to an element of Array - wonderfl build flash online</a></p></p>

<p>なお、式の値を<a href="http://f-site.org/articles/2010/03/05235355.html" target="_blank"><em>as</em>演算子</a>で評価した場合は、かえって処理が遅くなりました。</p>]]>
   </content>
</entry>
<entry>
   <title>Flash プロの現場の仕事術 CS5/CS4/CS3対応</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/02/19032554.html" />
   <id>tag:f-site.org,2011://1.1765</id>
   
   <published>2011-02-18T18:25:54Z</published>
   <updated>2011-02-18T19:45:07Z</updated>
   
   <summary> Flash プロの現場の仕事術 CS5/CS4/CS3対応 下桐 希/高畑 未...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="F-site関連" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="オススメ本" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<table><tr><td width="120">
<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4839936757/fsite-22/" target="_blank"><img alt="FlashProfessionalTechnique.jpg" src="http://f-site.org/FlashProfessionalTechnique.jpg" width="155" height="200" /></a>
</td>
<td valign="top"><strong>Flash プロの現場の仕事術 CS5/CS4/CS3対応</strong><br />
下桐 希/高畑 未央/梅原 宗士/高橋 定大/坂上 高之/小山 健次郎/池田 雄一/野中 文雄/瀬賀 直樹(著)<br />
価格：2,940円(税込)<br />
発売：2011/2/26<br />
出版：毎日コミュニケーションズ<br />
ISBN：978-4-8399-3675-4 <br />
</td></tr></table>]]>
      <![CDATA[<blockquote><p>様々なジャンルの最前線で活躍する執筆陣が、実際に開発の現場で経験してきた課題やトピックを取り上げ、それを解決する貴重なノウハウが紹介されています。</p>

<p>基本テクニックからアニメーション処理、ActionScript、Flash Liteまで、「コンテンツのクオリティをアップするためのテクニック」「制作の効率化を図るためのノウハウ」「グループワークにおけるノウハウ」など、Flashをより深く使いこなし、プロとして活躍していくためのテクニックを凝縮。</p></blockquote>

<p><a href="http://www.helloproject.com/morningmusume/" target="_blank">モーニング娘。</a>に匹敵する9名の著者が集まり、それぞれ得意分野の基本とコツを解説した300ページを超える小ネタ集です。いわゆる「入門書」ではありません。Flashコンテンツを制作するときに抑えておくべきポイントやつまずきやすい点、知って得するコツなど、現場の知恵が語られています。</p>

<p>ネタによって、必要な知識や技術のレベルには幅があります。入門書を読み終えた初心者がさらに知識の肉づけをしたり、経験をもった中級者が基礎の確認や苦手分野の克服に役立てるなど、目的に応じて活用されるとよいでしょう。</p>

<p><a href='http://www.fumiononaka.com/Books/FlashProfessionalTechnique.html' target='_blank'>&gt;&gt;さらに詳しく</a></p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] コーディング規約のチェックツールFlexPMD</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/02/17010000.html" />
   <id>tag:f-site.org,2011://1.1764</id>
   
   <published>2011-02-16T16:00:00Z</published>
   <updated>2011-02-17T10:33:44Z</updated>
   
   <summary>コーディング規約のチェックツールFlexPMDのメッセージを日本語訳しました。自...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="サロン" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>コーディング規約のチェックツールFlexPMDのメッセージを日本語訳しました。自分の書いたスクリプトがAdobe標準にどれだけ合っているか、確かめてみてはいかがでしょう。データを納めたXMLは、水玉製作所「<a href="http://www.mztm.jp/2011/02/10/flexpmd/" target="_blank">FlexPMD日本語訳</a>」で確認およびダウンロードできます。FlashDevelopでの設定方法も説明されています。</p>]]>
      <![CDATA[<blockquote>FlexPMDは、Adobe製のコーディング規約違反を見つけるためのツールで、FlashBuilderやFlashDevelopと連携して使えます。Flexの名前を冠してはいますが、Flashの範囲のAS3.0チェッカーとしても有用です。<br />
独自ルールにとらわれない標準的なコードを書くために便利なツールではあるのですが、エラーメッセージが英語のみなので親しみにくい状況がありました。そこで、<a  href="http://www.fumiononaka.com/" target="_blank">野中文雄さん</a>に日本語訳をお願いしました。</blockquote>

<p><img alt="FlexPMD" src="http://www.mztm.jp/wp/wp-content/uploads/2011/02/pmd.png" width="530" height="417" /></p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] キーボードのキー操作をVectorオブジェクトで扱う</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/02/14002458.html" />
   <id>tag:f-site.org,2011://1.1763</id>
   
   <published>2011-02-13T15:24:58Z</published>
   <updated>2011-02-13T22:11:43Z</updated>
   
   <summary>「キーボードのキー操作を扱うふたつの手法」では、タイムラインに配置したMovie...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>「<a href="http://f-site.org/articles/2010/12/22042728.html" target="_blank">キーボードのキー操作を扱うふたつの手法</a>」では、タイムラインに配置したMovieClipインスタンス(my_mc)を、キーボードの矢印キーで上下左右に動かしてみました(再掲図001)。この同じお題をVectorクラスで整えてみましょう。</p>

<p><strong>図001■ タイムラインに配置したMovieClipインスタンスを矢印キーで上下左右に動かす</strong>(再掲)<br />
<img alt="AS3_OptimizingPerformance_01_02_008.png" src="http://f-site.org/AS3_OptimizingPerformance_01_02_008.png" width="270" height="235" /></p>]]>
      <![CDATA[<h3>01 キーコードをインデックスとしてVectorインスタンスに操作の情報を与える</h3>
<p>矢印キーのキーコードは37〜40です(gihyo.jp「ActionScript 3.0で始めるオブジェクト指向スクリプティング」第13回「<a href="http://gihyo.jp/dev/serial/01/as3/0013?page=2" target="_blank">キーボードによる操作</a>」p.2の表2「Keyboardクラスの矢印キーの定数」参照)。しかし、<a href="http://fumiononaka.com/TechNotes/Flash/FN0902001.html" target="_blank">Vectorインスタンス</a>のエレメントは、0から始まる連番の整数でなければなりません。つまり、新たなデフォルトのVectorインスタンスには、配列と違って、いきなりインデックス37にエレメントが加えられないのです。</p>

<p>けれど、長さを定めたVectorインスタンスはつくれます。そして、キーボードのキーにはかぎりがあります。したがって、十分な長さのVectorインスタンスをつくれば、矢印キーのキーコード番号にエレメントが納められます。以下のスクリプト001は、前出「キーボードのキー操作を扱うふたつの手法」のスクリプト002の配列をVectorインスタンスに置換えました。実質的に書替えたのは1行目のみで、あとは変数名を形式的に変えただけです。</p>

<p><strong>スクリプト001■Vectorオブジェクトのキーコードに設定した操作情報でインスタンスを動かす</strong><br />
<pre>var operations:Vector.&lt;Array&gt; = new Vector.&lt;Array&gt;(300, true);<br />
operations[Keyboard.LEFT] = ["x", -1];<br />
operations[Keyboard.RIGHT] = ["x", 1];<br />
operations[Keyboard.UP] = ["y", -1];<br />
operations[Keyboard.DOWN] = ["y", 1];<br />
stage.addEventListener(KeyboardEvent.KEY_DOWN, useVector);<br />
function useVector(eventObject:KeyboardEvent):void {<br />
	var operation_array:Array = operations[eventObject.keyCode];<br />
	if (operation_array) {<br />
		var property_str:String = operation_array[0];<br />
		var pixels:Number = operation_array[1];<br />
		my_mc[property_str] += pixels;<br />
	}<br />
}</pre></p>

<p>このように配列をVectorインスタンスに変えただけで、処理は速くなります。前出「キーボードのキー操作を扱うふたつの手法」でご紹介した条件判定を使うスクリプト001と比べても、速さは見劣りしません。</p>

<p><br />
<h3>02 クラスに定めたメソッドの参照によりインスタンスを操作する</h3><br />
<p>前掲スクリプト001からさらに速さを求めるなら、動かすインスタンスのプロパティを配列アクセス<em>[]</em>で参照していることが見直されるべきでしょう。プロパティ名の文字列に配列アクセス演算子<em>[]</em>を用いたのでは、強い参照にならないからです(Adobeデベロッパーセンター「ActionScript 3.0におけるパフォーマンス向上のヒント」01「<a href="http://www.adobe.com/jp/devnet/flash/articles/ac3_performance.html#01" target="_blank">データ型を指定する</a>」参照)。</p></p>

<p>そこで、インスタンスを動かすためのクラス(Operation)を定義します(スクリプト002)。コンストラクタメソッドには動かすインスタンスの参照を引数に与え、ふたつのメソッド(Operation.moveX()またはOperation.moveY())で水平もしくは垂直に動かします。</p>

<p><strong>スクリプト002■インスタンスを動かすクラスの定義</strong><br />
<pre>package {<br />
	import flash.display.MovieClip;<br />
	public class Operation {<br />
		private var target:MovieClip;<br />
		public function Operation(myTarget:MovieClip) {<br />
			target = myTarget;<br />
		}<br />
		public function moveX(nPixels:Number):void {<br />
			target.x += nPixels;<br />
		}<br />
		public function moveY(nPixels:Number):void {<br />
			target.y += nPixels;<br />
		}<br />
	}<br />
}</pre></p>

<p>フレームアクションは、以下のようにカスタムクラス(Operation)のインスタンスをつくり、そのメソッドの参照と引数に渡す値を入れ子の配列にしてVectorオブジェクト(operations)のエレメントに加えます(スクリプト003)。キーイベントのリスナー関数(useVector())は、Vectorオブジェクトからエレメントの入れ子配列を取出し、そのインデックス0のメソッドにインデックス1の引数を渡して呼出します。</p>

<p><strong>スクリプト003■Vectorオブジェクトのキーコードに設定したクラスのメソッドでインスタンスを動かす</strong><br />
<pre>var operations:Vector.&lt;Array&gt; = new Vector.&lt;Array&gt;(300, true);<br />
var myOperation:Operation = new Operation(my_mc);<br />
operations[Keyboard.LEFT] = [myOperation.moveX, -1];<br />
operations[Keyboard.RIGHT] = [myOperation.moveX, 1];<br />
operations[Keyboard.UP] = [myOperation.moveY, -1];<br />
operations[Keyboard.DOWN] = [myOperation.moveY, 1];<br />
stage.addEventListener(KeyboardEvent.KEY_DOWN, useVector);<br />
function useVector(eventObject:KeyboardEvent):void {<br />
	var operation_array:Array = operations[eventObject.keyCode];<br />
	if (operation_array) {<br />
		var xMove:Function = operation_array[0];<br />
		var pixels:Number = operation_array[1];<br />
		xMove(pixels);<br />
	}<br />
}</pre></p>

<p>前掲スクリプト001が配列アクセス<em>[]</em>で文字列のプロパティを操作するのに比べて、このスクリプト003はメソッドの参照(Function型)に引数を渡して呼出すため、扱いは速くなります。また、メソッドであれば、より込入った処理を定義することもできるでしょう。</p>

<p>ご参考までに、Vectorオブジェクトのエレメントにメソッドの参照を納めた場合と、前出「キーボードのキー操作を扱うふたつの手法」のスクリプト001のように条件判定で切り分ける場合とを比べてみました。</p>

<p><script type="text/javascript" src="http://wonderfl.net/blogparts/1lCe/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/1lCe" title="Evaluating key codes with switch statement vs a Vector 2">Evaluating key codes with switch statement vs a Vector 2 - wonderfl build flash online</a></p></p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] Vectorインスタンスには長さを定めた方がよい</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/02/13161336.html" />
   <id>tag:f-site.org,2011://1.1762</id>
   
   <published>2011-02-13T07:13:36Z</published>
   <updated>2011-02-13T12:21:45Z</updated>
   
   <summary>Adobeのドキュメント「VectorクラスとArrayクラス」は、Vector...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>Adobeのドキュメント「<a href="http://help.adobe.com/ja_JP/as3/mobile/WS4bebcd66a74275c3a0f5f19124318fc87b-7fff.html" target="_blank">VectorクラスとArrayクラス</a>」は、Vectorインスタンスには予め長さ(<em>Vector.length</em>プロパティ)を定めた方がパフォーマンスはよいと説明します。ただ、日本語の意味がわかりにくいように思われます。</p>

<blockquote>Vectorのサイズが時間よりも先に指定されない場合、Vectorの容量が不足すると、サイズが増えます。Vectorのサイズが増えるたびに、メモリの新しいブロックが割り当てられます。Vectorの最新の内容がメモリの新しいブロックにコピーされます。データを余分に割り当てて複製することにより、パフォーマンスに影響があります。</blockquote>]]>
      <![CDATA[<p><a href="http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c3a0f5f19124318fc87b-7fff.html" target="_blank">英語の原文</a>はつぎのとおりです。Vector(インスタンス)の"size"というのは、<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/Vector.html#Vector()" target="_blank">コンストラクタメソッド</a>の第1引数もしくは<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/Vector.html#length" target="_blank"><em>Vector.length</em>プロパティ</a>で定まる整数値を指しますので、「長さ」と訳すのが文脈に即します。また、"ahead of time"は、「前もって」とか「予め」という意味でしょう。</p>

<blockquote>If the size of the vector is not specified <a href="http://ejje.weblio.jp/content/ahead+of+time" target="_blank">ahead of time</a>, the size increases when the vector runs out of space. Each time the size of the vector increases, a new block of memory is allocated. The current content of the vector is copied into the new block of memory. This extra allocation and copying of data hurts performance.</blockquote>

<p>筆者は以下のように邦訳しました。比べてみると、日本語ドキュメントも必ずしも間違った訳し方をしている訳ではありません。しかし、訳者が説明の中身をおそらく十分に理解してはいないのではないかと感じられます。</p>

<blockquote>Vectorの長さが前もって定められていないと、長さが足りなくなったときに増やされます。Vectorの長さが増えるたびに、新たなメモリ領域が割当てられます。そのときのVectorの中身は、その新たなメモリ領域にコピーされます。追加の割当てとデータのコピーは、パフォーマンスを損なうことになります。</blockquote>

<p>ドキュメントの日本語訳だけではつまりません。実際に、Vectorインスタンスの長さを定めた場合と定めない場合で、速さを比べてみます。</p>

<p><script type="text/javascript" src="http://wonderfl.net/blogparts/oUtd/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/oUtd" title="Comparing speed of Vector with/out parameters">Comparing speed of Vector with/out parameters - wonderfl build flash online</a></p></p>

<p>コンストラクタの第2引数または<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/Vector.html#fixed" target="_blank"><em>Vector.fixed</em>プロパティ</a>で指定する長さの固定については、明らかな速さの違いが認められないようです。しかし、データに強い制限が加わるほど、一般的には内部的な最適化の余地は増えます。将来の改善を期待したいところです。なお、「<a href="http://f-site.org/articles/2010/04/07214228.html" target="_blank">Vectorクラス対Arrayクラスの処理速度比較</a>」を併せてご参照ください。</p>]]>
   </content>
</entry>
<entry>
   <title>Flash Player 10.2正式公開</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/02/09223018.html" />
   <id>tag:f-site.org,2011://1.1761</id>
   
   <published>2011-02-09T13:30:18Z</published>
   <updated>2011-02-09T13:41:26Z</updated>
   
   <summary>AdobeのサイトにFlash Player 10.2 が正式に公開されました。...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="業界ニュース" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>Adobeのサイトに<a href="http://get.adobe.com/jp/flashplayer/" target="_blank">Flash Player 10.2 が正式に公開</a>されました。</p>]]>
      <![CDATA[<p>Flashアプリケーションをもつ開発者用のFlash Playerは、今のところ<a href="http://www.adobe.com/support/flashplayer/downloads.html#fp10" target="_blank">米国サイト</a>からダウンロードします。おもな新しい機能としては、つぎの5つが挙げられています。</p>

<ol>
<li>新たなStage Videoの機能が追加</li>
<li>ネイティブのカスタムマウスカーソルをサポート</li>
<li>サブピクセルのテキストレンダリングを強化</li>
<li>マルチモニター環境でフルスクリーンモードに対応</li>
<li>Internet Explorer 9のハードウェアアクセラレーションレンダリングが可能に</li>
</ol>

<p>新たなFlash Playerについて日本語で紹介しているblogを以下に掲げますので、ご参照ください。</p>

<ul>
<li>akihiro kamijo「<a href="http://cuaoar.jp/2011/02/flash-player-10215226.html" target="_blank">Flash Player 10.2.152.26 公開</a>」</li>
<li>ClockMaker Blog「<a href="http://clockmaker.jp/blog/2011/02/flashplayer-10-2/" target="_blank">Flash Player 10.2 が正式リリース</a>」</li>
<li>_level0.KAYAC「<a href="http://level0.kayac.com/2011/02/flash_player_102.php" target="_blank">Flash Player 10.2 が出たようです!</a>」</li>
</ul>

<p>なお、2の「ネイティブカスタムカーソル」に関わるクラスとメソッドを、リファレンスとして解説しました。</p>

<ul>
<li>「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1102002.html" target="_blank">MouseCursorDataクラス</a>」</li>
<li>「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1102003.html" target="_blank">Mouse.registerCursor()/Mouse.unregisterCursor()メソッド</a>」</li>
</ul>]]>
   </content>
</entry>
<entry>
   <title>[AS3] 条件演算子?:はいつ使うとよいか</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/02/09113238.html" />
   <id>tag:f-site.org,2011://1.1760</id>
   
   <published>2011-02-09T02:32:38Z</published>
   <updated>2011-02-11T08:21:20Z</updated>
   
   <summary>条件演算子?:の処理は、ifステートメントで書くこともできます。それぞれどのよう...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>条件演算子<em>?:</em>の処理は、<em>if</em>ステートメントで書くこともできます。それぞれどのように使い分けたらよいでしょうか。本稿では、処理の速さを比べてみます。</p>

<p>*なお、この記事の英語版は<a href="http://blog.jactionscripters.com/2011/02/09/when-to-use-the-conditional-operator/" target="_blank">JActionScripters</a>に載せています。<br />
The English version of this article is posted to <a href="http://blog.jactionscripters.com/2011/02/09/when-to-use-the-conditional-operator/" target="_blank">JActionScripters</a>.</p>]]>
      <![CDATA[<p><a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/operators.html#conditional" target="_blank">条件演算子<em>?:</em></a>は、ふたつの式(<a href="http://www.fumiononaka.com/TechNotes/Flash/FN0507001.html#note001" target="_blank">オペランド</a>)から条件に合った値を返します。したがって、値を選択して代入できます。<em>if</em>ステートメントと比べて処理の仕方が限定されている分、内部的に最適化されやすいと考えられます<sup>[*1]</sup>。</p>

<p><strong>[条件演算子の例]</strong><br />
<pre>myVariable = (condition) ? valueA : valueB;</pre></p>

<p><strong>[ifステートメントの例]</strong><br />
<pre>if (condition) {  <br />
    myVariable = valueA;  <br />
} else {  <br />
    myVariable = valueB;  <br />
}</pre></p>

<p>以下にwonderflのテスト用スクリプトを掲げました。実際の処理の速さは、オペーレーティングシステム(OS)やブラウザなどの環境によって差が出るようです。</p>

<p><script type="text/javascript" src="http://wonderfl.net/blogparts/noWZ/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/noWZ" title="Comparing if statement with ?: operator">Comparing if statement with ?: operator - wonderfl build flash online</a></p></p>

<p>ところが、条件演算子<em>?:</em>から返された値を、加算後代入演算子<em>+=</em>で代入しようとすると、明らかに処理が遅くなります<sup>[*2]</sup>。</p>

<pre>myVariable += (condition) ? valueA : valueB;</pre>

<p>このようなとき、加算する式をオペランドに加え、代入演算子<em>=</em>に置換えることで速められます。</p>

<pre>myVariable = (condition) ? myVariable + valueA : myVariable + valueB;</pre>

<p>しかし、<em>if</em>ステートメントを用いた方が、勝るようです。この場合は、加算後代入演算子<em>+=</em>を使っても問題ありません。</p>

<pre>if (condition) {  
    myVariable += valueA;  
} else {  
    myVariable += valueB;  
}</pre>

<p><script type="text/javascript" src="http://wonderfl.net/blogparts/yXKm/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/yXKm" title="Comparing if statement with ?: operator on addition">Comparing if statement with ?: operator on addition - wonderfl build flash online</a></p></p>

<hr />
<p>[*1] JavaScriptについて考察したblog記事Pa works very hard「<a href="http://blog.pa-n.com/2007/12/if.html" target="_blank">if文と三項演算子</a>」が参考になるでしょう。</p>

<p>[*2] blog記事ゆの from scratch「<a href="http://d.hatena.ne.jp/yunocchi/20080803/1217768371" target="_blank">三項演算子が遅い？</a>」は、バイトコードの違いを分析しています。</p>

<p>[改訂2011/02/11] 若干の加筆補正と参考ドキュメントのリンクを加えました。</p>]]>
   </content>
</entry>
<entry>
   <title>2011.1.29 「迎春！スマートフォン＆タブレット端末向けアプリ開発ことはじめ」</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/02/02162528.html" />
   <id>tag:f-site.org,2011://1.1759</id>
   
   <published>2011-02-02T07:25:28Z</published>
   <updated>2011-02-02T07:26:02Z</updated>
   
   <summary> demo1「Interface Builderで作るiPhoneアプリ超入門」...</summary>
   <author>
      <name>小野田 智</name>
      
   </author>
         <category term="レポート" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>
<a href="http://f-site.org/articles/2011/01/31/1.jpg" title=""><img src="http://f-site.org/articles/2011/01/31/1.jpg" alt="" /></a>
</p>
<p>
demo1「Interface Builderで作るiPhoneアプリ超入門」森 巧尚氏（@ymori_tw）　<a href="http://f-site.org/articles/2011/01/31/mori1.pdf"  >解説資料</a>、<a href="http://f-site.org/articles/2011/01/31/mori2.pdf"  >実機で試す手順</a><br />
demo2「Flashのスキルを基にしたiPhone/iPadアプリ制作のコツ」深津 貴之氏（@fladdict）<br />
demo3「AIR for Android入門」池田 泰延氏（@clockmaker）<br />
</p>
<p>
当日には、150人のご参加をいただきました。ありがとうございました！
</p>
<p>
セミナーへ参加した方のコメント、トラックバックはこちらの記事にお願いします。
</p>]]>
      <![CDATA[<p>
<a href="http://f-site.org/articles/2011/01/31/2.jpg" title=""><img src="http://f-site.org/articles/2011/01/31/2.jpg" alt="" /></a>
</p>
<p>
<a href="http://f-site.org/articles/2011/01/31/3.jpg" title=""><img src="http://f-site.org/articles/2011/01/31/3.jpg" alt="" /></a>
</p>
<p>
<a href="http://f-site.org/articles/2011/01/31/4.jpg" title=""><img src="http://f-site.org/articles/2011/01/31/4.jpg" alt="" /></a>
</p>
<p>
<a href="http://f-site.org/articles/2011/01/31/5.jpg" title=""><img src="http://f-site.org/articles/2011/01/31/5.jpg" alt="" /></a>
</p>
<p>
レポート作成、写真：小野田智<br />
講師イラスト：A.e.Suck
</p>]]>
   </content>
</entry>
<entry>
   <title>2011.5.14 セミナー情報</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/02/01085100.html" />
   <id>tag:f-site.org,2011://1.1758</id>
   
   <published>2011-01-31T23:51:00Z</published>
   <updated>2011-05-13T03:04:06Z</updated>
   
   <summary>*&apos;&apos;「こころに響くFlashの作り方」&apos;&apos;

*&apos;&apos;demo1「Flashならではのエモーショナルな表現をつくる」ソニックジャム 神山 剛氏, 池田 亮氏&apos;&apos;

*&apos;&apos;demo2「プロモーションサイト制作事例：LISMO! for Android auの場合」北田 荘平氏 &apos;&apos;

*&apos;&apos;demo3「AR三兄弟がテレビに出る理由。」AR三兄弟 川田 十夢氏（長男）&apos;&apos;

*&apos;&apos;demo4「『キミとボク』公開記念！Flashから映画化への道のり」やまがら しげと氏&apos;&apos;</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="セミナー" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[

<h3>次回予告</h3>
<p>
<em>「こころに響くFlashの作り方」</em>
</p>
<p>
東日本大震災により亡くなられた方々に慎んでお悔やみを申し上げますとともに、被災された皆様、そのご家族の方々に対しまして、心よりお見舞いを申し上げます。
</p>
<p>
次回のF-siteセミナーは、話題の講師陣にお集まりいただき、触れた人の「こころに響くFlash」制作の鍵となる考え方やテクニックなどをご紹介いただきます。なお、今回は1つのdemoにつき30分として、4つのdemoをお送りします。
</p>
<p>
<em>4/28 15:00追記</em> demo1にソニックジャム 神山剛氏、池田亮氏のdemoを追加しました。<br />
<em>4/25 20:00追記</em> demo3にAR三兄弟 川田十夢氏のdemoを追加しました。<br />
<em>4/25 10:55公開</em> 受付開始しました。
</p>


<h5>demo1「Flashならではのエモーショナルな表現をつくる」ソニックジャム 神山 剛氏, 池田 亮氏</h5>
<p class="session-summary">実際の制作に携わっている方から、数々の事例を元にエモーショナルな演出技法の考え方、具体的な制作方法についてご紹介いただきます。実例ベースでの表現技法の小ネタ、Tipsが多数登場予定！</p> 


<h5>demo2「プロモーションサイト制作事例：LISMO! for Android auの場合」北田 荘平氏</h5>
<p class="session-summary">スマートフォン用LISMO!プロモーションサイトとして制作された『LISMO! for Android au』では、リスモくんが歌詞の上を縦横無尽に走り回ります。tha在籍中に、デザイン／プログラミングを担当された北田さんをお迎えし、成果物に行き着くまでのスタディやこだわりを交えつつ、制作の裏側をご紹介いただきます。<br />
<a href="http://tha.jp/1800" target="_blank">http://tha.jp/1800</a><br />
<a href="http://soohei.net/" target="_blank">http://soohei.net/</a></p> 


<h5>demo3「AR三兄弟がテレビに出る理由。」AR三兄弟 川田 十夢氏（長男）</h5>
<p class="session-summary">FlashでAR作品を作り続けるうちに、NHKで冠番組（『AR三兄弟の野望』）を放送するまでになったAR三兄弟。テレビをはじめとして、雑誌や新聞や書籍など、旧来のメディアをマッシュアップ素材としながら開発をし続け、うっかり露出を増やしている。この浮かれた展開に、果たして意味はあるのか？それとも本当に「うっかり」しているだけなのか。その秘密を、同業者であるFlashクリエイターのみなさんだけにそっと耳打ちします。おそらく、全編ひそひそ話でお届けするので、耳をおっきく拡張して、ふるってご参加ください。<br />
<a href="http://twitter.com/#!/cmrr_xxx" target="_blank">http://twitter.com/#!/cmrr_xxx</a><br />
<a href="http://alternativedesign.jp/" target="_blank">http://alternativedesign.jp/</a></p> 


<h5>demo4「『キミとボク』公開記念！Flashから映画化への道のり」やまがら しげと氏</h5>
<p class="session-summary">セミナー当日に公開を迎える映画『キミとボク』。Flashアニメーションとして公開された原作から実写映画化に至るまでのプロセスをご紹介いただきつつ、劇中のFlash部分の役割、原作と映画版の違いなどを語っていただきます。オリジナルFLAデータのチラ見せもあるかも!?<br />
<a href="http://kimiboku-movie.com/" target="_blank">http://kimiboku-movie.com/</a><br />
<a href="http://universal-radio.jp/" target="_blank">http://universal-radio.jp/</a></p> ]]>
      <![CDATA[

<h4>会場</h4>
<p>
日　　時：2011/5/14（土） 13:15～17:00<br />
場　　所：国立オリンピック記念青少年総合センター <a href="http://nyc.niye.go.jp/facilities/d6-1.html"  >センター棟</a> 3階 311室<br />
住　　所：東京都渋谷区代々木神園町3-1（<a href="http://f-site.org/articles/2003/09/30221445.html"  >地図</a>）<br />
募集人数：160名<br />
参加費用：1,000円（会議室使用料など）<br />
#本編終了後、新宿に移動後割り勘（4,000～5,000円程）で二次会（宴会）実施。<br />
#二次会のみの参加は受け付けていません。
</p>


<h4>お申し込み</h4>
<p>
申し込みは締め切りました。
</p>












<h4>当日の主な流れについて</h4>
<p>
12:45　受付開始<br />
13:20　demo1<br />
13:50　質疑応答<br />
14:00　休憩<br />
14:10　demo2<br />
14:40　質疑応答<br />
14:50　休憩<br />
15:00　demo3<br />
15:30　質疑応答<br />
15:40　休憩<br />
15:50　demo4<br />
16:20　質疑応答<br />
16:30　じゃんけん大会、お知らせなど<br />
17:00　撤収
</p>








<hr />


<h3>定期セミナーについて</h3>
<p>
F-siteセミナーは「制作を楽しくする」方法の伝播を目的に行っています。継続的かつ定期的な開催のために、参加者のみなさまには下記内容のご理解とご協力をお願いしています。
</p>


<ol>
<li>会場内の誘導係はいません。あらかじめ会場を確認してからお越しください。</li>
<li>領収書は発行できません。</li>
<li>後片付けは参加する側も含めてみんなで行いましょう。</li>
</ol>


<h4>今後の予定</h4>


<ul>
<li>2011年 8月 6日　内容未定</li>
<li>2011年11月 5日　内容未定</li>
</ul>


<h4>企業デモ（無料）について</h4>
<p>
F-siteセミナーでは、通常の枠と別に「企業デモ枠」を設けています（お申し込みがない回は省略）。新技術、新商品、バージョンアップ情報をはじめ、リサーチなど、Flashユーザーを対象にしたものなら、どのようにお使いいただいても構いません。デモ時間は15分、無料です。1セミナーにつき、2団体まで受け付けています。
</p>
<p>
詳しくは、<a href="http://f-site.org/FS-APL/FS-Form/form.cgi?Code=toiawase"  >お問い合わせフォーム</a>からお問い合わせください。
</p>]]>
   </content>
</entry>
<entry>
   <title>ActionScript 3.0の解説書2冊が電子書籍になりました</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/01/27184434.html" />
   <id>tag:f-site.org,2011://1.1756</id>
   
   <published>2011-01-27T09:44:34Z</published>
   <updated>2011-01-27T13:27:43Z</updated>
   
   <summary> すでに「オススメ本」でご紹介したActionScript 3.0の解説書2冊が...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="サロン" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<table>
<tr><td width="50" valign="top">
<img src="http://f-site.org/ActionScript30s.gif" alt="ActionScript30s.gif" width="47" height="60" border="1" />
</td>
<td rowspan="3" valign="top">
<p>すでに「オススメ本」でご紹介したActionScript 3.0の解説書2冊が電子書籍として発売されました。製本版よりもお買い得な価格です。</p>

<blockquote><ol>
<li><strong>ActionScript 3.0プロフェッショナルガイド</strong></li>
<li><strong>ActionScript 3.0による三次元表現ガイドブック</strong></li>
</ol></blockquote>

<p></td></tr><br />
<tr><td>&nbsp;</br></tr><br />
<tr valign="top"><td><br />
<img alt="ActionScript30for3D_s.gif" src="http://f-site.org/ActionScript30for3D_s.gif" width="47" height="60" /><br />
</td><br />
</tr><br />
</table></p>]]>
      <![CDATA[<p><strong>ActionScript 3.0プロフェッショナルガイド</strong><br />
野中 文雄(著)<br />
価格：¥3,000(製本版¥4,179・税込)<br />
発売：2008/10/18<br />
出版：毎日コミュニケーションズ</p>

<p>&gt;&gt; <a href="http://f-site.org/articles/2008/10/03082215.html" target="_blank">オススメ本紹介記事を読む</a><br />
&gt;&gt; <a href="http://www.shinanobook.com/genre/book/620" target="_blank">shinanobook.comで購入</a></p>

<p><strong>ActionScript 3.0による三次元表現ガイドブック</strong><br />
野中 文雄(著)<br />
価格：¥2,500(製本版¥3,129・税込)<br />
発売：2010/6/8<br />
出版：毎日コミュニケーションズ</p>

<p>&gt;&gt; <a href="http://f-site.org/articles/2010/06/19220115.html" target="_blank">オススメ本紹介記事を読む</a><br />
&gt;&gt; <a href="http://www.shinanobook.com/genre/book/589" target="_blank">shinanobook.comで購入</a></p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] 配列を初期化するには</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/01/26034724.html" />
   <id>tag:f-site.org,2011://1.1755</id>
   
   <published>2011-01-25T18:47:24Z</published>
   <updated>2011-01-27T05:11:28Z</updated>
   
   <summary>配列つまりArrayインスタンスをつくるには、つぎのふたつの書き方があります。ど...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>配列つまりArrayインスタンスをつくるには、つぎのふたつの書き方があります。どちらがよいのでしょうか。</p>

<pre>var constructed_array:Array = new Array();
var literal_array:Array = [];</pre>

<p>どちらにしたところで、大きな違いはありません。けれど、気分によって変えるのはやめましょう。統一はしないと、見にくいです。だとすると、やはりどちらがお得なのかは気にかかります。</p>]]>
      <![CDATA[<h3>コンストラクタとリテラル</h3>
<p>ActionScript 3.0では、<em>new</em>演算子に続けて呼出すクラスと同名のメソッドでインスタンスをつくるのがお決まりです。このメソッドを「コンストラクタ」と呼びます。他方で、数値や文字列は値を直接書いてしまうのが普通でしょう<sup>[*1]</sup>。プログラムに直接書かれた値は、「<a href="http://help.adobe.com/ja_JP/as3/learn/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f9b.html#WS5b3ccc516d4fbf351e63e3d118a9b90204-7f72" target="_blank">リテラル</a>」と呼ばれます。</p>

<p>Arrayインスタンスを配列アクセス演算子<em>[]</em>で書くのは、リテラルによるインスタンスのつくり方です。つまり、Arrayクラスのインスタンスは、コンストラクタメソッドとリテラルのどちらでも生成できます。できあがるインスタンスに、違いはありません。</p>

<h3>Flex SDKコード記述に関する規則とベストプラクティス</h3>
<p>Adobeは「<a href="http://opensource.adobe.com/wiki/display/flexsdk/Coding+Conventions-ja" target="_blank">Flex SDKコード記述に関する規則とベストプラクティス</a>」という文書を公開しています<sup>[*2]</sup>。題名には「Flex」と書かれているものの、ActionScript 3.0のスクリプティングについての基本原則と捉えてよいでしょう。その「<a href="http://opensource.adobe.com/wiki/display/flexsdk/Coding+Conventions-ja#CodingConventions-ja-%7B%7BArray%7D%7Dリテラル" target="_blank">Arrayリテラル</a>」の項は、インスタンスをリテラルでつくることとしています。</p>

<blockquote>
<p>new Array()ではなく、配列リテラルを使用するようにします。</p>

<p>正しい記述例:<br />
<pre>[]</pre><br />
誤った記述例<sup>[*3]</sup>:<br />
<pre>new Array()</pre><br />
</blockquote></p>

<p>ただし、長さを定めた空の配列は、<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/Array.html#Array2()" target="_blank"><em>Array()</em>コンストラクタ</a>でつくってよいとされます。確かに、長さ100の配列をリテラルで書くのは無茶でしょう。</p>

<blockquote>Arrayコンストラクタは、new Array(3)といったように、要素数を規定して配列を生成する時にだけ使用するようにします。この配列は[ undefined, undefined, undefined ]を意味するものであり、[ 3 ]ではありません。</blockquote>

<p><br />
<h3>どちらが速いか</h3><br />
<p>配列のインスタンスをつくる速さで比べると、<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/Array.html#Array()" target="_blank"><em>Array()</em>コンストラクタ</a>の呼出しよりリテラルで書く方が勝るようです<sup>[*4]</sup>。その理由としては、Arrayクラスが内部的にふたつのコンストラクタをもつためではないかと考えられます。</p></p>

<p>原則として、Array()コンストラクタの引数は、エレメントとしてインスタンスに納められます。ところが、前項でも触れたように整数をひとつだけ渡すと、その長さでエレメントが<em>undefined</em>のインスタンスがつくられます(表001)。このように引数の数やデータ型によって処理の異なる同じ名前のメソッドを定義することは「<a href="http://ja.wikipedia.org/wiki/多重定義" target="_blank">オーバーロード(多重定義)</a>」と呼ばれます。</p>

<p><strong>表001■コンストラクタの引数によってつくられる配列の違い</strong><br /><br />
<table border="1" cellspacing="0" bordercolor="#9999FF"><br />
        <tr><br />
          <td bgcolor="#CCCCFF"><br />
            <div align="center"><strong>コンストラクタ呼出し</strong></div></td><br />
          <td bgcolor="#CCCCFF"><div align="center"><strong>引数の意味</strong></div></td><br />
          <td bgcolor="#CCCCFF"><div align="center"><strong>つくられる配列</strong></div></td><br />
        </tr><br />
      <tr><br />
        <td bgcolor="#EEEEFF"><strong><br />
new Array()<br />
</strong></td><br />
        <td><br />
エレメント<br />
</td><br />
        <td><br />
[]<br />
</td><br />
      </tr><br />
      <tr><br />
        <td bgcolor="#EEEEFF"><strong><br />
new Array(3)<br />
</strong></td><br />
        <td><br />
長さ<br />
</td><br />
        <td><br />
[undefined, undefined, undefined]<br />
</td><br />
      </tr><br />
      <tr><br />
        <td bgcolor="#EEEEFF"><strong><br />
new Array(0, 1, 2)<br />
</strong></td><br />
        <td><br />
エレメント<br />
</td><br />
        <td><br />
[0, 1, 2]<br />
</td><br />
      </tr><br />
      <tr><br />
        <td bgcolor="#EEEEFF"><strong><br />
new Array("a")<br />
</strong></td><br />
        <td><br />
エレメント<br />
</td><br />
        <td><br />
["a"]<br />
</td><br />
      </tr><br />
</table></p>

<p>それに対して、リテラルで書く場合、配列アクセス演算子<em>[]</em>の中にはエレメントしか入れられません。コンストラクタと違って、エレメントか長さかという判定が要らない分、速く扱えそうです。Adobe推奨で扱いが速く、記述も簡単ですので、配列のつくり方はリテラルに軍配が上がるのではないでしょうか。</p>

<p><br />
<h3>エレメントを納めたArrayリテラルの書き方</h3><br />
<p>エレメントを納めたArrayインスタンスも、配列アクセス演算子[]つまりリテラルでつくれます。前掲「Flex SDKコード記述に関する規則とベストプラクティス」は、その書き方まで細かく指示しています<sup>[*5]</sup>。括弧の内側、つまり<a href="http://opensource.adobe.com/wiki/display/flexsdk/Coding+Conventions-ja#CodingConventions-ja-Arrayリテラル" target="_blank">配列アクセス演算子<em>[]</em>とエレメントとの間に半角スペースを置く</a>ようにというのです。</p></p>

<blockquote>正しい記述例:
<pre>[ 1, 2, 3 ]</pre>
誤った記述例:
<pre>[1, 2, 3]</pre></blockquote>

<p>大事なのは、統一することです。それさえできれば、あとは趣味の問題といって構わないでしょう。ただ、括弧の内側に半角スペースを入れるのなら、配列にインデックスを指定してアクセスするときや、さらに関数の定義・呼出しなどで使う丸括弧<em>()</em>についても、同じスタイルにすべきです。ところが、文書の推奨は次表002のように、エレメントを納めたArrayリテラルだけスタイルが異なっています。</p>

<p><strong>表002■宣言・アクセスについてAdobeが推奨する記述</strong><br /><br />
<table border="1" cellspacing="0" bordercolor="#9999FF"><br />
        <tr><br />
          <td bgcolor="#CCCCFF"><br />
            <div align="center"><strong>宣言・アクセス</strong></div></td><br />
          <td bgcolor="#CCCCFF"><div align="center"><strong>よい</strong></div></td><br />
          <td bgcolor="#CCCCFF"><div align="center"><strong>悪い</strong></div></td><br />
        </tr><br />
      <tr><br />
        <td rowspan="2" bgcolor="#EEEEFF"><strong>Arrayリテラル</strong></td><br />
        <td><br />
[ 1, 2, 3 ]</td><br />
        <td><br />
[1, 2, 3]</td><br />
      </tr><br />
      <tr><br />
        <td><br />
        []</td><br />
        <td><br />
[ ]</td><br />
      </tr><br />
      <tr><br />
        <td bgcolor="#EEEEFF"><strong>配列アクセス</strong></td><br />
        <td><br />
a[0]</td><br />
        <td><br />
a[ 0 ]</td><br />
      </tr><br />
      <tr><br />
        <td bgcolor="#EEEEFF"><strong>関数定義・呼出し</strong></td><br />
        <td><br />
f(a, b)</td><br />
        <td><br />
f( a, b )</td><br />
      </tr><br />
      <tr><br />
        <td bgcolor="#EEEEFF"><strong>ifステートメント</strong></td><br />
        <td><br />
if (a &lt; b)</td><br />
        <td><br />
if ( a &lt; b )</td><br />
      </tr><br />
      <tr><br />
        <td bgcolor="#EEEEFF"><strong>switchステートメント</strong></td><br />
        <td><br />
switch (n)</td><br />
        <td><br />
switch ( n )</td><br />
      </tr><br />
      <tr><br />
        <td bgcolor="#EEEEFF"><strong>forステートメント</strong></td><br />
        <td><br />
for (var i:int = 0; i &lt; n; i++)</td><br />
        <td><br />
for ( var i:int = 0; i &lt; n; i++ )</td><br />
      </tr><br />
</table></p>

<p><br />
<hr /><br />
<p>[*1] 数値や文字列も、コンストラクタでつくることはできます。たとえば、文字列はその値を引数にして、「new String("文字列")」という呼出しで生成されます。けれど、あえてコンストラクタを使う意味は乏しく、リテラルの方が端的です。[ヘルプ]の<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/String.html#String()" target="_blank"><em>String()</em>コンストラクタ</a>の項にも、つぎのような注意が添えられています。</p></p>

<blockquote>ストリングリテラルの方がStringオブジェクトよりもオーバーヘッドが少なく、一般的により簡単に使用できます。Stringオブジェクトを使用する特別な理由がある場合以外は、Stringクラスよりもストリングリテラルを使用することをお勧めします。</blockquote>

<p>[*2] 日本語版の文書は、内容が完結していません。詳しくは、英語版の「<a href="http://opensource.adobe.com/wiki/display/flexsdk/Coding+Conventions" target="_blank">Flex SDK coding conventions and best practices</a>」を参照されるとよいでしょう。</p>

<p>[*3] 誤っている訳ではありません。原文の「<a href="http://opensource.adobe.com/wiki/display/flexsdk/Coding+Conventions#CodingConventions-%7B%7BArray%7D%7Dliterals" target="_blank">Array literals</a>」もつぎのように書いているだけですので、「好ましくない」というくらいの解釈が適切でしょう。</p>

<blockquote>Do this:
<pre>[]</pre>
Not this:
<pre>new Array()</pre></blockquote>

<p>[*4] wonderflのサンプルで速さを比べてみました(なお、「length」というのは、長さを0にしてインスタンスを再利用する手法)。</p>

<p><script type="text/javascript" src="http://wonderfl.net/blogparts/leRa/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/leRa" title="Initializing Arrays">Initializing Arrays - wonderfl build flash online</a></p></p>

<p>[*5] 少し古い記事ではありますが、InfoQ「<a href="http://www.infoq.com/jp/news/2008/05/flex-coding-convention;jsessionid=6A9D98D9FA7BA37A95D5C0A640AD96D8" target="_blank">物議をかもしたAdobe Flexのコーディング規約文書</a>」が参考になります。</p>]]>
   </content>
</entry>
<entry>
   <title>2011年1月セミナー受付締め切り</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/01/25192655.html" />
   <id>tag:f-site.org,2011://1.1754</id>
   
   <published>2011-01-25T10:26:55Z</published>
   <updated>2011-04-25T01:59:37Z</updated>
   
   <summary> 定員に達したため、1/29（土）に行われるF-siteセミナーの参加受付を締め...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="お知らせ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>
定員に達したため、1/29（土）に行われるF-siteセミナーの参加受付を締め切りました。
</p>
<p>
なお、申し込まれた方で都合により参加できなくなったときには、参加受付時に送られたメールに従って欠席の旨をご連絡ください。 
</p>]]>
      
   </content>
</entry>
<entry>
   <title>[AS3] 3次元回転の軸をベクトルの外積で求める</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/01/22013835.html" />
   <id>tag:f-site.org,2011://1.1753</id>
   
   <published>2011-01-21T16:38:35Z</published>
   <updated>2011-01-21T23:17:44Z</updated>
   
   <summary>3次元空間のオブジェクトをマウスポインタの位置に応じて回すときの考え方です(図0...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>3次元空間のオブジェクトをマウスポインタの位置に応じて回すときの考え方です(図001)。Matrix3Dクラスで座標変換する場合、水平方向と垂直方向それぞれについて回転を加える方法がひとつあります。今回はもうひとつのやり方として、水平・垂直合わせてベクトルの外積により回転軸を求めてみます。</p>

<p><strong>図001■四方に置いた面を上下左右に回す</strong><br /><br />
<img alt="Gihyo100901-001.gif" src="http://f-site.org/Gihyo100901-001.gif" width="270" height="235" /></p>]]>
      <![CDATA[<p>矩形の画像で四方を囲み、上下左右に回す例は、gihyo.jp連載「ActionScript 3.0で始めるオブジェクト指向スクリプティング」第38回「<a href="http://gihyo.jp/dev/serial/01/as3/0038" target="_blank">z座標値に応じて重ね順を変える</a>」で解説しました。<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/flash/geom/Matrix3D.html#appendRotation()" target="_blank"><em>Matrix3D.appendRotation()</em>メソッド</a>を用いて、水平と垂直それぞれの回転を加える前者の考え方にしたがっています。このサンプル(<a href="http://gihyo.jp/dev/serial/01/as3/0038?page=3" target="_blank">スクリプト2</a>)に手を加えて、ベクトルの外積から求めた軸で回してみましょう。</p>

<p>手直しするのは、マウスポインタの位置に応じてMatrix3Dオブジェクトに回転を加え、インスタンスのプロパティ<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/flash/display/DisplayObject.html#transform" target="_blank"><em>DisplayObject.transform</em></a>に<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/flash/geom/Transform.html#matrix3D" target="_blank"><em>Transform.matrix3D</em></a>として設定しているつぎのリスナー関数(スクリプト001)です。なお、このリスナー関数を含めたフレームアクション全体については、前掲解説をお読みください。</p>

<p><strong>スクリプト001■マウスポインタの位置に応じて回転を加えるリスナー関数</strong><br /><br />
<pre>function xRotate(eventObject:Event):void {<br />
	var nRotationY:Number = (mouseX - nX) * nDeceleration;<br />
	var nRotationX:Number = (mouseY - nY) * nDeceleration;<br />
	myMatrix3D.appendTranslation(-nX, -nY, 0);<br />
	myMatrix3D.appendRotation(nRotationY, Vector3D.Y_AXIS);  // x座標に応じてy軸(zx平面に垂直な軸)で回す<br />
	myMatrix3D.appendRotation(nRotationX, Vector3D.X_AXIS);  // y座標に応じてx軸(yz平面に垂直な軸)で回す<br />
	myMatrix3D.appendTranslation(nX, nY, 0);<br />
	xSetOrder();<br />
}</pre></p>

<p><em>Matrix3D.appendRotation()</em>メソッドで回転を加えているのは2行のステートメントです。まず、マウスポインタのx座標の位置に応じてy軸で回します。つぎに、マウスポインタのy座標の位置に応じてx軸で回しています。いい換えると、前者はzx平面に垂直な軸で回し、後者はyz平面に垂直な軸で回すということです。</p>

<p>さらに、マウスポインタの座標を、原点とその座標を結ぶベクトルつまり「位置ベクトル」と捉えてみましょう。すると、どちらも位置ベクトルとz軸から成る平面に垂直な軸で回しているといえます。そうであれば、水平と垂直を分けなくても、マウスポインタの(x, y)座標の位置ベクトルとz軸から成る平面に垂直な軸で回せば同じ結果になるのではないかと予想できます。</p>

<p>z軸もベクトルです。そして、ふたつのベクトルから成る平面に垂直なベクトルは、ふたつのベクトルの外積として導かれます。よって、z軸とマウスポインタの(x, y)座標のふたつのベクトルから外積を求め、それを<em>Matrix3D.appendRotation()</em>メソッドの回転軸(第2引数)として渡すことにします。この考え方で書替えたのがつぎのスクリプト002です(図002)。</p>

<p><strong>スクリプト002■マウスポインタの位置から軸を求めて回転するリスナー関数</strong><br /><br />
<pre>function xRotate(eventObject:Event):void {<br />
	var nMouseX:Number = mouseX - nX;<br />
	var nMouseY:Number = mouseY - nY;<br />
	var mouseVector3D:Vector3D = new Vector3D(nMouseX, -nMouseY, 0);<br />
	// z軸とマウス座標の位置ベクトルとの外積を求める<br />
	var axisVector3D:Vector3D = Vector3D.Z_AXIS.crossProduct(mouseVector3D);<br />
	axisVector3D.normalize();<br />
	myMatrix3D.appendTranslation(-nX, -nY, 0);<br />
	// z軸とマウス座標の位置ベクトルが成す平面に垂直な軸で回す<br />
	myMatrix3D.appendRotation(mouseVector3D.length * nDeceleration, axisVector3D);<br />
	myMatrix3D.appendTranslation(nX, nY, 0);<br />
	xSetOrder();<br />
}</pre></p>

<p><strong>図002■ベクトルの外積から求めた軸で回転するように書替えたリスナー関数</strong><br /><br />
<img alt="FF1101221_001.gif" src="http://f-site.org/FF1101221_001.gif" width="665" height="260" /></p>

<p>ベクトルの外積は、<a href="http://www.fumiononaka.com/TechNotes/Flash/FN0904001.html" target="_blank"><em> Vector3D.crossProduct()</em>メソッド</a>で求められます。ふたつのVector3Dオブジェクトのひとつを参照し、もうひとつは引数に渡します。その順序によって、外積として得られるVector3Dオブジェクトの向きが逆になりますので、ご注意ください。</p>

<p>また、<em>Matrix3D.appendRotation()</em>メソッドの第2引数に渡す回転軸のVector3Dオブジェクトは、長さが1の「単位ベクトル」にします。単位ベクトルに変換するメソッドは、<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/flash/geom/Vector3D.html#normalize()" target="_blank"><em>Vector3D.normalize()</em></a>です。なお、回転する角度は、マウス座標の位置ベクトルの長さ(<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/flash/geom/Vector3D.html#length" target="_blank"><em>Vector3D.length</em></a>プロパティ)に比例させました。</p>

<p>これで、<em>Matrix3D.appendRotation()</em>メソッドの呼出しは1度で済みます(前掲スクリプト002)。[ムービープレビュー]を確かめると、もとのスクリプト001と基本的に同じ動きになっているでしょう(前掲図001)。</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] 直線で閉じた図形を描く</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/01/20012451.html" />
   <id>tag:f-site.org,2011://1.1752</id>
   
   <published>2011-01-19T16:24:51Z</published>
   <updated>2011-01-19T22:34:58Z</updated>
   
   <summary>Graphicsクラスの描画メソッドを使うと、Spriteなどのインスタンスに直...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>Graphicsクラスの描画メソッドを使うと、Spriteなどのインスタンスに直線が引けます。そこで、頂点座標にしたがって多角形などの閉じた図形が描ける関数を定義してみましょう(図001)。さほど難しいスクリプトではありません。けれど、あえてややこしく書いてしまうことも少なくないようです。そうならないためのちょっとしたコツをご紹介します。</p>

<p><strong>図001■閉じた図形を描く</strong><br /><br />
<img alt="FF1101201_001.gif" src="http://f-site.org/FF1101201_001.gif" width="270" height="235" /></p>]]>
      <![CDATA[<p>MovieClipやSpriteインスタンスに描画するためには、まずそのターゲットとなるGraphicsオブジェクトを<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/flash/display/Sprite.html#graphics" target="_blank"><em>Sprite.graphics</em>プロパティ</a>から取出します。つぎに、参照したGraphicsオブジェクトに対して、Graphicsクラスの描画メソッドを用いて線描します。</p>

<p>線の始まりは<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/flash/display/Graphics.html#moveTo()" target="_blank"><em>Graphics.moveTo()</em></a>、終わりは<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/flash/display/Graphics.html#lineTo()" target="_blank"><em>Graphics.lineTo()</em></a>メソッドで定めます。線の引き終わりは、つぎの引き始めの位置になりますので、連続した線を描くときは<em>Graphics.moveTo()</em>メソッドは、初めに1度呼出せば足ります。線の太さやカラーなどのスタイルは、<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/flash/display/Graphics.html#lineStyle()" target="_blank"><em>Graphics.lineStyle()</em></a>メソッドで設定します。</p>

<p>閉じた図形を描く関数drawLines()は、つぎのような仕様にしましょう。図形の頂点座標はPointインスタンスとし、配列に納めて第1引数に渡します。第2引数は、描画対象のSpriteインスタンスです。</p>

<blockquote>function drawLines(_points:Array, targetSprite:Sprite):void</blockquote>

<p>配列の最初の座標から線を引き始め、最後の座標まで線描したうえで、初めの座標に戻って図形を閉じます。この手順をそのままスクリプトにしようとすると、ついつぎのフレームアクションのような関数になりがちです。</p>

<p><strong>スクリプト001■線描の手順をそのままスクリプトにした例</strong><br /><br />
<pre>// フレームアクション<br />
var canvas:Sprite = new Sprite();<br />
var points:Array = [];<br />
points.push(new Point(0, 0));<br />
points.push(new Point(100, 0));<br />
points.push(new Point(100, 100));<br />
points.push(new Point(0, 100));<br />
addChild(canvas);<br />
canvas.x = 10;<br />
canvas.y = 10;<br />
drawLines(points, canvas);<br />
// 閉じた多角形を描く関数定義<br />
function drawLines(_points:Array, targetSprite:Sprite):void {<br />
	var nLength:uint = _points.length;<br />
	var myGraphics:Graphics = targetSprite.graphics;<br />
	myGraphics.lineStyle(2, 0x0000FF);<br />
	for (var i:uint = 0; i <= nLength; i++) {<br />
		var _point:Point = _points[i % nLength];  // i = nLengthのとき0に戻す<br />
		if (i == 0) {  // 開始座標のとき<br />
			myGraphics.moveTo(_point.x, _point.y);<br />
		} else {<br />
			myGraphics.lineTo(_point.x, _point.y);<br />
		}<br />
	}<br />
}</pre></p>

<p>[ムービープレビュー]を確かめると、前掲図001のような正方形が描かれます。とくに不具合はありません。しかし、関数(drawLines())の処理に無駄が多いといえます。閉じた図形なのですから、第1引数の配列(_point)の最初の座標から描き始める必要はないのです。そこに気づくと、関数はもっとすっきり定義できます。</p>

<p><strong>スクリプト002■描線を最後の座標から始めるように修正した関数</strong><br /><br />
<pre>// 閉じた多角形を描く関数定義<br />
function drawLines(_points:Array, targetSprite:Sprite):void {<br />
	var nLength:uint = _points.length;<br />
	var _point:Point = _points[nLength - 1];  // 配列の最後の座標<br />
	var myGraphics:Graphics = targetSprite.graphics;<br />
	myGraphics.lineStyle(2, 0x0000FF);<br />
	myGraphics.moveTo(_point.x, _point.y);  // 最後の座標から描画開始<br />
	for (var i:uint = 0; i < nLength; i++) {<br />
		_point = _points[i];<br />
		myGraphics.lineTo(_point.x, _point.y);<br />
	}<br />
}</pre></p>

<p>第1引数の配列の最後の座標を、描画の開始位置に変えました。すると、<em>for</em>ループ内は配列の初めの座標から終わりまで、ただ順に線描するだけです。初めの座標に戻らなくて済み、<em>if</em>条件もなくなりました。</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] ふたつの配列を連結する</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/01/12235027.html" />
   <id>tag:f-site.org,2011://1.1751</id>
   
   <published>2011-01-12T14:50:27Z</published>
   <updated>2011-01-12T19:50:04Z</updated>
   
   <summary>ふたつの配列を連結するには、Array.concat()メソッドを用います。とこ...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>ふたつの配列を連結するには、<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/Array.html#concat()" target="_blank">Array.concat()</a>メソッドを用います。ところが、Grant Skinner氏がtwitterで<a href="http://twitter.com/#!/gskinner/status/24695778207338496" target="_blank">面白い手法</a>を紹介していました。JavaScriptについて書かれたものの、ActionScript 3.0でも使えます。</p>]]>
      <![CDATA[<p>それはひとつの配列(arr1)に対して<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/Function.html#apply()" target="_blank"><em>Function.apply()</em>メソッド</a>により<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/Array.html#push()" target="_blank"><em>Array.push()</em>メソッド</a>を適用し、もうひとつの配列(arr2)は第2引数として渡してしまうというものです。すると、初めの配列に対して<em>Array.push()</em>メソッドが呼出され、ふたつ目の配列エレメントがその引数に渡されます。したがって、ふたつの配列が連結されるのです。</p>

<pre>arr1.push.apply(arr1, arr2);</pre>

<p>Skinner氏は<a href="http://twitter.com/#!/gskinner/status/24705793982988288" target="_blank">この手法の利点</a>を、<em>Array.concat()</em>メソッドと異なり、新たな配列がつくられないことだと述べています。つまり、<em>Array.concat()</em>メソッドは連結された新たな配列を戻すのに対して、<em>Array.push()</em>メソッドなら参照した配列に直接エレメントを加えるので、その負荷が避けられるということです。</p>

<p>早速、ふたつのやり方で処理の速さがどう変わるか試してみました。まず、エレメント数300の配列ふたつの連結を10,000回繰返してみました(スクリプト001)。すると、結果にばらつきがあり、明らかな違いを認めることはできませんでした。</p>

<p><strong>スクリプト001■300エレメントの配列ふたつを連結</strong><br /><br />
<script type="text/javascript" src="http://wonderfl.net/blogparts/wGXS/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/wGXS" title="Comparison Array.concat() with the trick using Function.apply() and Array.push()">Comparison Array.concat() with the trick using Function.apply() and Array.push() - wonderfl build flash online</a></p></p>

<p>そこで、ふたつの配列のエレメント数を大きく違えてみることにしました(繰返し回数は1,000回に調整)。まず、連結される配列のエレメント数を10,000にし、それにエレメント数100の配列を連結します(スクリプト002)。すると、<em>Function.apply()</em>で<em>Array.push()</em>メソッドを適用する方が明らかに速くなりました。ところが、このエレメント数を逆転すると、<em>Array.concat()</em>メソッドの方が速くなります(スクリプト003)。</p>

<p><strong>スクリプト002■10,000エレメントの配列に100エレメントの配列を連結</strong><br />
<script type="text/javascript" src="http://wonderfl.net/blogparts/sdP4/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/sdP4" title="forked from: Comparison Array.concat() with the trick using Function.apply() and Array.push()">forked from: Comparison Array.concat() with the trick using Function.apply() and Array.push() - wonderfl build flash online</a></p></p>

<p><br /></p>

<p><strong>スクリプト002■100エレメントの配列に10,000エレメントの配列を連結</strong><br />
<script type="text/javascript" src="http://wonderfl.net/blogparts/12Jz/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/12Jz" title="forked from: Comparison Array.concat() with the trick using Function.apply() and Array.push()">forked from: Comparison Array.concat() with the trick using Function.apply() and Array.push() - wonderfl build flash online</a></p></p>

<p>この結果から推測されるのは、<em>Function.apply()</em>メソッドによるArrayインスタンスの参照は速いものの、メソッド<em>Array.push()</em>がエレメントを追加するのは<em>Array.concat()</em>の連結の処理より遅いということでしょう。</p>

<p>[追記2011/01/13] 同じ内容を英文記事にしたJActionScripters「<a href="http://blog.jactionscripters.com/2011/01/12/merging-two-arrays/" target="_blank">Merging two arrays</a>」に、Skinner氏からのコメントが寄せられました。<em>Array.push()</em>メソッドでエレメントを加える処理量と、配列が新規につくられる負荷のどちらが大きいかによって違いが生じるということでした。</p>]]>
   </content>
</entry>
<entry>
   <title>2011年1月セミナー受付開始</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/01/12131601.html" />
   <id>tag:f-site.org,2011://1.1750</id>
   
   <published>2011-01-12T04:16:01Z</published>
   <updated>2011-01-25T10:29:19Z</updated>
   
   <summary> 1/29（土）に行われるF-siteセミナーの参加受付を開始しました。 「迎春...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="お知らせ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>
1/29（土）に行われるF-siteセミナーの参加受付を開始しました。
</p>
<p>
「迎春！スマートフォン＆タブレット端末向けアプリ開発ことはじめ」と題し、押し寄せるスマートフォン＆タブレット端末向けアプリケーション開発の大波をFlashユーザーがいかに乗りこなすか？に焦点をあてたセミナーをお届けします。
</p>]]>
      <![CDATA[<p>
定員に達しましたら締め切りますので、お早めにお申込ください。<br />
<a href="http://f-site.org/articles/2011/01/12121856.html"  >セミナー詳細</a>
</p>]]>
   </content>
</entry>
<entry>
   <title>2011.1.29 セミナー情報</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2011/01/12121856.html" />
   <id>tag:f-site.org,2011://1.1749</id>
   
   <published>2011-01-12T03:18:56Z</published>
   <updated>2012-05-03T01:05:06Z</updated>
   
   <summary>*&apos;&apos;「迎春！スマートフォン＆タブレット端末向けアプリ開発ことはじめ」&apos;&apos;

*&apos;&apos;demo1「Interface Builderで作るiPhoneアプリ超入門」森 巧尚氏&apos;&apos;

*&apos;&apos;demo2「Flashのスキルを基にしたiPhone/iPadアプリ制作のコツ」深津 貴之氏 &apos;&apos;

*&apos;&apos;demo3「AIR for Android入門」池田 泰延氏&apos;&apos;</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="セミナー" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[

<h3>次回予告</h3>
<p>
<em>「迎春！スマートフォン＆タブレット端末向けアプリ開発ことはじめ」</em>
</p>
<p>
続々と市場投入されているAndroid搭載端末。そして、iPad次期モデルと続くであろう今年、コンテンツ業界でもモバイル端末のシェア獲得合戦の動向には注意が必要です。そこで今回のF-siteは、押し寄せるアプリケーション開発の大波をFlashユーザーがいかに乗りこなすか？に焦点をあてたセミナーをお届けします。
</p>


<h5>demo1「Interface Builderで作るiPhoneアプリ超入門」森 巧尚氏（<a href="http://twitter.com/#!/ymori_tw"  >@ymori_tw</a>）</h5>
<p class="session-summary">iPhoneアプリを作成するときは、まずXcodeでプロジェクトを作ります。プロジェクトには、プログラムを記述するクラスファイルと、インターフェイスを（Flashで言うところの）コンポーネント的な部品で構築する「Interface Builder」用のファイルが作られます。<br />
Interface Builderでは、高度なプログラムの必要は無く、部品を画面上に置いたり、設定画面で項目を選択したりすることで設定していきます。ここでは、あまり語られることの無かったInterface Builderを使ってのアプリ制作の流れについて時間の許す限りご説明します。</p> 


<h5>demo2「Flashのスキルを基にしたiPhone/iPadアプリ制作のコツ」深津 貴之氏（<a href="http://twitter.com/#!/fladdict"  >@fladdict</a>）</h5>
<p class="session-summary">『TiltShift Generator』、『QuadCamera』、『ToyCamera』など数々の名作iPhoneアプリを生み出してきたfladdictこと深津貴之さんに、Flashで培ったスキルをどうやってiPhone/iPadアプリ制作に活かすのかを語っていただきます。</p> 


<h5>demo3「AIR for Android入門」池田 泰延氏（<a href="http://twitter.com/#!/clockmaker"  >@clockmaker</a>）</h5>
<p class="session-summary">Android 2.2以降が搭載された端末では、AIRランタイムをインストールすることでAdobe AIRアプリを動作することができます。実際にAndroidで動作するAIRアプリを作るにはどうすればよいのか？　開発の際に注意すべきことは？　気になる疑問を解決し、AIR for Androidへのはじめの一歩を踏み出しましょう。</p> 


<h5>即売会のお知らせ</h5>
<p class="session-summary">今回のセミナー前日、1月28日にdemo1の森 巧尚さんが書かれた『<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4839935149/fsite-22/">よくわかるiPhoneアプリ開発の教科書</a>』が発売になります。これを記念して、出版社の毎日コミュニケーションズさんのご協力により、セミナー当日の会場にて即売会を行います。</p>
<p class="session-summary">しかもなんと！　通常2,940円（税込）のところを、2,500円（税込）にて販売されます。<strong>30冊限定</strong>ですので、売り切れの際はご容赦ください。なお、領収書の発行はできませんので、ご理解ください。
</p> ]]>
      <![CDATA[

<h4>会場</h4>
<p>
日　　時：2011/1/29（土） 13:15～17:00<br />
場　　所：国立オリンピック記念青少年総合センター <a href="http://nyc.niye.go.jp/facilities/d6-1.html"  >センター棟</a> 3階 310室<br />
住　　所：東京都渋谷区代々木神園町3-1（<a href="http://f-site.org/articles/2003/09/30221445.html"  >地図</a>）<br />
募集人数：160名<br />
参加費用：1,000円（会議室使用料など）<br />
#本編終了後、新宿に移動後割り勘（4,000～5,000円程）で二次会（宴会）実施。<br />
#二次会のみの参加は受け付けていません。
</p>


<h4>お申し込み</h4>
<p>
満員御礼！　参加多数のため、申し込みは締め切りました。
</p>








<h4>当日の主な流れについて</h4>
<p>
12:45　受付開始<br />
13:20　demo1<br />
14:10　質疑応答<br />
14:20　休憩<br />
14:35　demo2<br />
15:25　質疑応答<br />
15:35　休憩<br />
15:50　demo3<br />
16:40　質疑応答<br />
16:50　じゃんけん大会、お知らせなど<br />
17:00　撤収
</p>








<hr />


<h3>定期セミナーについて</h3>
<p>
F-siteセミナーは「制作を楽しくする」方法の伝播を目的に行っています。継続的かつ定期的な開催のために、参加者のみなさまには下記内容のご理解とご協力をお願いしています。
</p>


<ol>
<li>会場内の誘導係はいません。あらかじめ会場を確認してからお越しください。</li>
<li>領収書は発行しません。</li>
<li>後片付けは参加する側も含めてみんなで行いましょう。</li>
</ol>


<h4>今後の予定</h4>


<ul>
<li>2012年 5月19日</li>
<li>2012年 7月28日</li>
<li>2012年 11月3日</li>
<li>2013年 3月2日</li>
</ul>


<h4>企業デモ（無料）について</h4>
<p>
F-siteセミナーでは、通常の枠と別に「企業デモ枠」を設けています（お申し込みがない回は省略）。新技術、新商品、バージョンアップ情報をはじめ、リサーチなど、Flashユーザーを対象にしたものなら、どのようにお使いいただいても構いません。デモ時間は15分、無料です。1セミナーにつき、2団体まで受け付けています。
</p>
<p>
詳しくは、<a href="http://f-site.org/FS-APL/FS-Form/form.cgi?Code=toiawase"  >お問い合わせフォーム</a>からお問い合わせください。
</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] キーボードのキー操作を扱うふたつの手法</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/12/22042728.html" />
   <id>tag:f-site.org,2010://1.1747</id>
   
   <published>2010-12-21T19:27:28Z</published>
   <updated>2011-02-14T03:30:44Z</updated>
   
   <summary>キーの押し下げ操作は、InteractiveObject.keyDownイベント...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>キーの押し下げ操作は、<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/flash/display/InteractiveObject.html#event:keyDown" target="_blank"><em>InteractiveObject.keyDown</em>イベント</a>(定数<em>KeyboardEvent.KEY_DOWN</em>)で扱います。リスナー関数が引数に受取るイベントオブジェクト(<em>KeyboardEvent.keyCode</em>プロパティ)から押したキーのコードがわかりますので、その整数値に応じて処理を振分けます。</p>

<p>定石といえるのは、キーコードの整数値を条件判断で切り分けることです。もっとも、キーコードはすべて値がユニークですので、配列との相性がよいです。処理したいキーコードのインデックスに、必要な情報を納めると、条件判定が要らなくなります。</p>]]>
      <![CDATA[<h3>01 キーコードを条件判定で振分ける</h3>
<p>このたびのお題として、タイムラインに配置したMovieClipインスタンス(my_mc)を、キーボードの矢印キーで上下左右に動かしてみます(図001)。まず定石は、リスナー関数の引数からキーコードを調べて、<em>switch</em>ステートメントでキーコードに応じた処理を書くことでしょう。</p>

<p><strong>図001■ タイムラインに配置したMovieClipインスタンスを矢印キーで上下左右に動かす</strong><br />
<img alt="AS3_OptimizingPerformance_01_02_008.png" src="http://f-site.org/AS3_OptimizingPerformance_01_02_008.png" width="270" height="235" /></p>

<p>以下のフレームアクション(スクリプト001)は、タイムラインに置いたインスタンス(my_mc)をキーボードの矢印キーで上下左右に1ピクセルずつ動かします(スクリプトの処理について詳しくは、gihyo.jp「ActionScript 3.0で始めるオブジェクト指向スクリプティング」第14回「<a href="http://gihyo.jp/dev/serial/01/as3/0014" target="_blank">キー操作とif以外の条件判定</a>」をお読みください)。</p>

<p><strong>スクリプト001■キーコードを条件判定して処理する</strong><br />
<pre>stage.addEventListener(KeyboardEvent.KEY_DOWN, use_switch);<br />
function use_switch(eventObject:KeyboardEvent):void {<br />
	switch (eventObject.keyCode) {<br />
		case (Keyboard.LEFT) :<br />
			my_mc.x -=  1;<br />
			break;<br />
		case (Keyboard.RIGHT) :<br />
			my_mc.x +=  1;<br />
			break;<br />
		case (Keyboard.UP) :<br />
			my_mc.y -=  1;<br />
			break;<br />
		case (Keyboard.DOWN) :<br />
			my_mc.y +=  1;<br />
			break;<br />
	}<br />
}</pre></p>

<h3>02 キーコードをインデックスとして配列に処理を与える</h3>
<p>キーコードはすべて値がユニークですので、配列との相性がよいです。処理したいキーコードのインデックスに、必要な情報を納めると、条件判定が要らなくなります。今回のお題で必要な情報は、操作するプロパティと設定する値です。そこで、このふたつを子の配列に入れて、親配列のキーコードのイ
ンデックスに納めます。</p>

<p>この考え方で矢印キーによる処理を行うのが、以下のフレームアクション(スクリプト002)です。配列の上下左右の矢印キーのキーコードとなるインデックスに、操作したいプロパティ(<em>DisplayObject.x</em>と<em>DisplayObject.y</em>)の文字列と設定値を入れ子の配列にして、親配列(operations_array)のエレメントに納めています。後は、リスナー関数でキーコードを調べて、親配列(operations_array)から操作情報のエレメントを取出し、配列アクセスでインスタンス(my_mc)のプロパティに値を設定します。</p>

<p><strong>スクリプト002■キーコードをインデックスにした配列エレメントで操作する</strong><br />
<pre>var operations_array:Array = [];<br />
operations_array[Keyboard.LEFT] = ["x",-1];<br />
operations_array[Keyboard.RIGHT] = ["x",1];<br />
operations_array[Keyboard.UP] = ["y",-1];<br />
operations_array[Keyboard.DOWN] = ["y",1];<br />
stage.addEventListener(KeyboardEvent.KEY_DOWN, useArray);<br />
function useArray(eventObject:KeyboardEvent):void {<br />
	var operation_array:Array = operations_array[eventObject.keyCode];<br />
	if (operation_array) {<br />
		var property_str:String = operation_array[0];<br />
		var pixels:Number = operation_array[1];<br />
		my_mc[property_str] +=  pixels;<br />
	}<br />
}</pre></p>

<p>キーコードが上下左右の矢印キーでなければ、親配列にエレメントがありません。前掲スクリプト002の<em>if</em>条件で、その判定を行っています(スクリプトの処理について詳しくは、gihyo.jp「ActionScript 3.0で始めるオブジェクト指向スクリプティング」第15回「<a href="http://gihyo.jp/dev/serial/01/as3/0015" target="_blank">配列を使ったキーコードとプロパティの扱い</a>」をお読みください)。</p>

<p>スクリプト002は、操作の情報を配列にまとめていますので扱いやすく、仕組みさえ変わらなければ操作対象のキーとプロパティを増やすのも簡単です。定石どおりキーコードをswitchステーメントで振分ける前掲スクリプト001は、スクリプト002と比べて処理が最適化されます。</p>

<p>wonderflに上げたサンプルでは、ふたつのスクリプトで速度は2倍近くの開きがあるようです。もっとも、キー操作を1秒間に何百回も処理することは、あまり考えられません。すると、最適化で劣ることはわかったうえで、扱いやすさから配列による処理を選ぶこともあり得るでしょう。</p>

<p><script type="text/javascript" src="http://wonderfl.net/blogparts/a5EJ/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/a5EJ" title="Evaluating key codes with switch statement vs an array">Evaluating key codes with switch statement vs an array - wonderfl build flash online</a></p></p>

<p>[追記2011/02/14] 続編として「<a href="http://f-site.org/articles/2011/02/14002458.html" target="_blank">キーボードのキー操作をVectorオブジェクトで扱う</a>」を書きました。併せてご参照ください。</p>]]>
   </content>
</entry>
<entry>
   <title>[01/19]高山一登のPHP入門講座</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/12/19171602.html" />
   <id>tag:f-site.org,2010://1.1717</id>
   
   <published>2010-12-19T08:16:02Z</published>
   <updated>2011-01-30T23:41:23Z</updated>
   
   <summary>本講座では、今までプログラミング言語をほとんど触ったことがない方を対象に、PHP...</summary>
   <author>
      <name>SIHO</name>
      
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<blockquote>本講座では、今までプログラミング言語をほとんど触ったことがない方を対象に、PHPを使って変数や配列、関数といったプログラミングの基礎を実践的に学んでいくだけでなく、プログラムが動作しなくなってしまった時のデバッグのコツや、サーバーやデータベースといったシステム開発の基本的な知識についても学習します。<br><br>

<p>最近はデザイナーやコーダーの方でも、プログラミングに触れる機会や要望が高まってきています。プログラムやデータベースがどのように動作しているかを理解することで、動的サイトのデザインやコーディングのコツを掴んで頂けるような講座にしたいと思います。</blockquote></p>]]>
      <![CDATA[<p>●講座概要<br />
-------------------------------<br />
ロクナナワークショップ<br />
高山一登のPHP入門講座<br />
-------------------------------</p>

<p><a href="http://67.org/ws/workshop/detail/079php.html">http://67.org/ws/workshop/detail/079php.html</a></p>

<p>●概要<br />
日程：<br />
2011年1月19日（水）11:00～18:00<br />
料金：29,800円（税込み）<br />
会場：東京・原宿「ロクナナワークショップ」<br />
形態：ハンズオントレーニング</p>

<p>●主催・お問い合わせ<br />
株式会社ロクナナ・ロクナナワークショップ<br />
〒150-0001東京都渋谷区神宮前1-1-12 #203<br />
事務局　担当：佐々木・上田<br />
E-mail：workshop@67.org<br />
Phone：03-3408-4605</p>

<p>●ロクナナワークショップとは<br />
ロクナナワークショップは、アドビ認定トレーニングセンターとして、Web 業界の第一線で活躍中の講師陣による実践的な講座を開講しています。全ての講座は最大6名・1日6時間で完結する、PCを操作しながらの集中トレーニングです。講座のラインアップもFlash/ActionScript を中心に、Dreamweaver、Movable Type、Web アクセシビリティ、XHTML/CSS、JavaScript、Gainerなど幅広くご用意しています。</p>]]>
   </content>
</entry>
<entry>
   <title>[01/18]古堅真彦のAIR for Android アプリ開発入門講座</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/12/18182817.html" />
   <id>tag:f-site.org,2010://1.1745</id>
   
   <published>2010-12-18T09:28:17Z</published>
   <updated>2011-01-30T23:41:18Z</updated>
   
   <summary>Adobeからリリースされた「AIR for Android」を使うとFlash...</summary>
   <author>
      <name>SIHO</name>
      
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<blockquote>Adobeからリリースされた「AIR for Android」を使うとFlash Professional CS5でActionScript 3.0をつかって、Androidアプリケーションを作成することが可能になります。</br></br>

<p>Android OS 搭載のデバイスが続々と登場している今、ActionScriptディベロッパーによるAndroid向けコンテンツ開発はいよいよこれからが本番です。</br></br></p>

<p>本講座では、実際にFlash ActionScript 3.0をつかってWebコンテンツを開発している方を対象に、AIR for AndroidをつかってAndroidのネイティブアプリを開発する方法を学習していきます。カメラ、傾きセンサー、GPS、マルチタッチなど Android端末特有の機能をActionScriptで実装する方法についても実習します。</blockquote></p>]]>
      <![CDATA[<p>初回日程：2011年1月18日（火）<br />
開講時間：11：00 - 18：00<br />
定員：6名<br />
料金：29,800円（税込み）<br />
会場：東京・原宿「ロクナナワークショップ」<br />
形態：ハンズオントレーニング</p>

<p>詳しくは講座詳細ページをご覧ください。<br />
<a href="http://67.org/ws/workshop/detail/082android.html">http://67.org/ws/workshop/detail/082android.html</a></p>

<p>●お問い合わせ<br />
株式会社ロクナナ・ロクナナワークショップ<br />
〒150-0001東京都渋谷区神宮前1-1-12 #203<br />
事務局　担当：佐々木・上田<br />
E-mail：workshop@67.org<br />
Phone：03-3408-4605</p>

<p><br />
●ロクナナワークショップとは<br />
ロクナナワークショップ（アドビ認定トレーニングセンター）は、Web 業界の第一線で活躍中の講師陣による実践的な講座を開講しています。<br />
全ての講座は最大6名・1日6時間で完結する、PCを操作しながらの集中トレーニングです。<br />
講座のラインアップもFlash/ActionScrip、Dreamweaver、WordPress、Webアクセシビリティ、XHTML/CSS、JavaScript、PHP、Gainerなど幅広くご用意しています。</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] 全角(2バイト)と半角(1バイト)を区別したバイト数の計算</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/12/16165618.html" />
   <id>tag:f-site.org,2010://1.1746</id>
   
   <published>2010-12-16T07:56:18Z</published>
   <updated>2012-03-08T09:22:12Z</updated>
   
   <summary>2バイトの全角と1バイトの半角とを区別した文字のバイト数が、どのようにしたら求め...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>2バイトの全角と1バイトの半角とを区別した文字のバイト数が、どのようにしたら求められるか考えてみましょう。</p>]]>
      <![CDATA[<h3>01 escapeMultiByte()関数を使う</h3>
<p>まず、<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/flash/utils/package.html#escapeMultiByte()" target="_blank"><em>escapeMultiByte()</em>関数</a>でエスケープした文字列を調べることが考えられます。全角は9バイトでアルファベットは1バイトです。ただし、半角でも3バイトの記号などがあることに注意しなければなりません(下表001)。</p>

<blockquote>trace(getBytesTotal_escapeMultiByte("くぁwせdrftgyふじこlp")); &nbsp; // 出力: 21</blockquote>

<p><strong>スクリプト001■escapeMultiByte()関数でバイト数を調べる</strong><br />
<pre>function getBytesTotal_escapeMultiByte(_str:String):uint {<br />
	var nCount:uint = 0;<br />
	var nLength:int = _str.length;<br />
	for (var i:uint = 0; i &lt; nLength; i++) {<br />
		nCount += (escapeMultiByte(_str.charAt(i)).length > 3) ? 2 : 1;<br />
	}<br />
	return nCount;<br />
}</pre></p>

<p>さらに、半角カナはエスケープしても全角と区別は困難です(表001)。予め半角カナが含まれないことさえ確かなら、この方法でも差し支えないでしょう。</p>

<p><strong>表001■文字列のエスケープ例とバイト数</strong><br /><br />
<table border="1" cellspacing="0" bordercolor="#9999FF"><br />
<tr bgcolor="#CCCCFF"><br />
    <td align="center" bgcolor="#CCCCFF"><strong><br />
      文字列例</strong></td><br />
    <td align="center"><br />
<strong>エスケープ</strong><br />
</td><br />
    <td align="center"><br />
<strong>バイト数</strong><br />
</td><br />
  </tr><br />
  <tr><br />
    <td align="center" bgcolor="#CCCCFF"><br />
<strong>あ</strong><br />
</td><br />
    <td align="center"><br />
%E3%81%82<br />
</td><br />
    <td align="center"><br />
9<br />
</td><br />
  </tr><br />
  <tr><br />
    <td align="center" bgcolor="#CCCCFF"><br />
<strong>a</strong><br />
</td><br />
    <td align="center"><br />
a<br />
</td><br />
    <td align="center"><br />
1<br />
</td><br />
  </tr><br />
 <tr><br />
    <td align="center" bgcolor="#CCCCFF"><br />
<strong>%</strong><br />
</td><br />
    <td align="center"><br />
%25<br />
</td><br />
    <td align="center"><br />
3<br />
</td><br />
  </tr><br />
<tr><br />
    <td align="center" bgcolor="#CCCCFF"><br />
<strong>ｱ</strong><br />
</td><br />
    <td align="center"><br />
%EF%BD%B1<br />
</td><br />
    <td align="center"><br />
9<br />
</td><br />
  </tr><br />
</table></p>

<h3>02 ByteArrayクラスを使う</h3>
<p>Colin Moock氏は「<a href="http://www.moock.org/blog/archives/000288.html" target="_blank">GET NUMBER OF BYTES IN A UTF-8 STRING</a>」と題するblog記事で、ByteArrayオブジェクトにより文字列のバイト数が得られることを紹介されました。さらに、<a href="http://www.flash-jp.com/modules/newbb/viewtopic.php?topic_id=8571&forum=8&post_id=42099#forumpost42099" target="_blank">永井勝則氏がFLASH-japanへの投稿</a>で、そのスクリプトに手を加えられています。ByteArray.lengthプロパティでバイト数を求めるやり方です(スクリプト002)。半角カナは1バイトと数えられます。</p>

<blockquote>trace(getBytesTotal_ByteArray("くぁwせdrftgyふじこlp")); &nbsp; // 出力: 21</blockquote>

<p><strong>スクリプト002■ByteArrayクラスでバイト数を調べる</strong><br />
<pre>function getBytesTotal_ByteArray(_str:String):uint {<br />
	var byteArray:ByteArray = new ByteArray();<br />
	byteArray.writeMultiByte(_str, "shift-jis");<br />
	return byteArray.length;<br />
}</pre></p>

<h3>03 文字コードにより仕分けて数え上げる</h3>
<p>実は、ステートメント数は増えるものの、ひと文字ずつコードを調べて数え上げる方が、処理としては速くなります(スクリプト003)。必要なら、文字コードをさらに細かく仕分けることもできます<sup>[*1]</sup>。</p>

<blockquote>trace(getBytesTotal_code("くぁwせdrftgyふじこlp")); &nbsp; // 出力: 21</blockquote>

<p><strong>スクリプト003■文字コードを調べて数える</strong><br />
<pre>function getBytesTotal_code(_str:String):uint {<br />
	var nCount:uint = 0;<br />
	var nLength:int = _str.length;<br />
	for (var i:uint = 0; i &lt; nLength; i++) {<br />
		var char_str:String = _str.charAt(i);<br />
		var nCode:Number = char_str.charCodeAt(0);<br />
		var bSingle:Boolean = (nCode &lt; 0x7F) || (0xFF61 &lt; nCode && nCode &lt; 0xFF9F);<br />
		nCount +=  bSingle ? 1 : 2;<br />
	}<br />
	return nCount;<br />
}</pre></p>

<p>参考までに、wonderflのテスト用スクリプトで、3つの手法を比べてみました。</p>

<p><script type="text/javascript" src="http://wonderfl.net/blogparts/4jjs/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/4jjs" title="Counting total bytes of characters to be distinguished between single and multi bytes">Counting total bytes of characters to be distinguished between single and multi bytes - wonderfl build flash online</a></p></p>

<hr />
<p>[*1] yoshiweb.NET「<a href="http://yoshiweb.net/blog/index.php?itemid=51&catid=7" target="_blank">ActionScriptで文字判定</a>」参照。</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] ハッピーマンデーを求める</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/12/14131039.html" />
   <id>tag:f-site.org,2010://1.1744</id>
   
   <published>2010-12-14T04:10:39Z</published>
   <updated>2010-12-15T08:58:53Z</updated>
   
   <summary>ハッピーマンデーのように、ある月の何番目の曜日と指定して、日付を求めてみます。お...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>ハッピーマンデーのように、ある月の何番目の曜日と指定して、日付を求めてみます。おまけに、最後の何曜日と後ろから数えられるようにもしましょう。</p>]]>
      <![CDATA[<p>つぎのような関数xGetNthDay()を定義します。戻り値は指定した曜日のDateオブジェクトです。月はDateクラスと異なり1月を1から始めます。他方、序数(何番目)は第1を0とし、最後は-1から負の数で指定します。</p>

<blockquote>xGetNthDay(年:uint, 月:uint, 序数:int = 0, 曜日:int = 0):Date</blockquote>

<p>スクリプトの考え方は、つぎのとおりです。月内に該当する日付がないとき(たとえば第6月曜日)は、<em>null</em>を返すことにします。</p>

<ol>
<li>月初の曜日を調べる</li>
<li>その月の求めたい曜日の最初(第1)の日付を知る</li>
<li>除数にしたがって7の倍数を加える</li>
<li>その日が月の中にあるかどうかを確かめたうえで返す</li>
</ol>

<p>関数xGetNthDay()は、以下のスクリプト001のように定義しました。上記の1〜3は、剰余演算子<em>%</em>を使って1行で導いています。ちょっとしたパズルの感覚で、確かめていただくとよいでしょう<sup>[*1]</sup>。なお、Dateクラスのコンストラクタメソッドに日として0を渡すと、前月末の日付が得られます。</p>

<p><strong>スクリプト001■年月と除数および曜日を渡して日付が返される関数</strong><br />
<pre>function xGetNthDay(nYear:uint, nMonth:uint, nOrdinal:int = 0, nDay:int = 0):Date {<br />
	var _date:Date;<br />
	var nThisMonth:uint;<br />
	if (nOrdinal &gt; -1) {  // 月初から数えるとき<br />
		_date = new Date(nYear, nMonth - 1, 1);<br />
		nThisMonth = _date.month;<br />
		nDay = (nDay - _date.day + 7) % 7 + nOrdinal * 7;<br />
	} else {  // 月末から遡るとき<br />
		_date = new Date(nYear, nMonth, 0);<br />
		nThisMonth = _date.month;<br />
		nDay = (nDay - _date.day - 7) % 7 + (nOrdinal + 1) * 7;<br />
	}<br />
	_date.date +=  nDay;<br />
	if (_date.month != nThisMonth) {<br />
		_date = null;<br />
	}<br />
	return _date;<br />
}</pre></p>

<p>2011年1月の第1月曜日と2010年12月の最後の日曜日は、つぎのように求められます。</p>

<pre>trace(xGetNthDay(2011, 1, 0, 1));
// 出力: Mon Jan 3 00:00:00 GMT+0900 2011
trace(xGetNthDay(2010, 12, -1));
// Sun Dec 26 00:00:00 GMT+0900 2010</pre>

<p>ついでに、2011年のハッピーマンデーも掲げておきましょう。</p>

<pre>// [1]成人の日: 1月の第2月曜日 2011年1月10日
trace(xGetNthDay(2011, 1, 1, 1));
// 出力: Mon Jan 10 00:00:00 GMT+0900 2011
// [2]海の日: 7月の第3月曜日 2011年7月18日
trace(xGetNthDay(2011, 7, 2, 1));
// 出力: Mon Jul 18 00:00:00 GMT+0900 2011
// [3]敬老の日: 9月の第3月曜日 2011年9月19日
trace(xGetNthDay(2011, 9, 2, 1));
// 出力: Mon Sep 19 00:00:00 GMT+0900 2011
// [4]体育の日: 10月の第2月曜日 2011年10月10日
trace(xGetNthDay(2011, 10, 1, 1));
// 出力: Mon Oct 10 00:00:00 GMT+0900 2011</pre>

<p>[2010年12月15日追記] bkzenさんがwonderflに、この関数を用いた「何年何月何週目の何曜日が何日かを求める」というカレンダーつきのサンプルをつくられました。参考に掲載させていただきます。</p>

<p><script type="text/javascript" src="http://wonderfl.net/blogparts/sXxC/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/sXxC" title="何年何月何週目の何曜日が何日かを求める">何年何月何週目の何曜日が何日かを求める - wonderfl build flash online</a></p></p>

<hr />
<p>[*1] 上記の「スクリプトの考え方」にしたがうと、式はつぎのように組立てられています。ただし、求めているのは厳密には「日付」でなく、月初から数えた「日数」になります(つまり、1日が0)。</p>

<ol>
<li>月初の曜日: _date.day</li>
<li>その月の求めたい曜日の最初(第1)の日付: (nDay - _date.day + 7) % 7</li>
<li>除数にしたがって7の倍数を加える: (nDay - _date.day + 7) % 7 + nOrdinal * 7</li>
</ol>]]>
   </content>
</entry>
<entry>
   <title>[AS3] 文字列の検索・置換は正規表現よりStringクラスのメソッドを使う方が速い</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/12/10162019.html" />
   <id>tag:f-site.org,2010://1.1743</id>
   
   <published>2010-12-10T07:20:19Z</published>
   <updated>2011-09-07T13:57:47Z</updated>
   
   <summary>文字列の検索・置換は、String.replace()メソッドに正規表現(Reg...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>文字列の検索・置換は、<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/String.html#replace()" target="_blank"><em>String.replace()</em>メソッド</a>に正規表現(RegExpクラス)を使うと簡単です(スクリプト001)。なお、正規表現による文字列の検索・置換については、「<a href="http://gihyo.jp/dev/serial/01/as3/0028" target="_blank">正規表現で文字列を扱う</a>」をお読みください。</p>

<p><strong>スクリプト001■String.replace()メソッドと正規表現で文字列を検索・置換</strong><br />
<pre>var test_str:String = "すもももももももももももいろいろ";<br />
var result_str:String = test_str.replace(/もも/g, "みみ");<br />
trace(result_str);  // 出力: すみみみみみみみみみみもいろいろ</pre></p>

<p>もっとも、処理の速さは、Stringクラスのメソッドを組合わせて書いたスクリプトの方が勝るようです。</p>]]>
      <![CDATA[<p>具体的には、メソッド<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/String.html#indexOf()" target="_blank"><em>String.indexOf()</em></a>で検索文字列を探し、<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/String.html#substring()" target="_blank"><em>String.substring()</em></a>または<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/String.html#substr()" target="_blank"><em>String.substr()</em></a>により置換文字列と連結します。流れとしては、つぎの3つの処理を検索文字列がなくなるまで繰返します。これを関数(xReplace())として定義したのが以下のスクリプト002です。</p>

<ol>
<li>最初の検索文字列の位置を求める</li>
<li>その位置までの文字列を結果に加え、置換文字列を連結する</li>
<li>検索開始位置を残った文字列の先頭に移す</li>
</ol>

<pre>var test_str:String = "すもももももももももももいろいろ";
trace(xReplace(test_str, "もも", "みみ"));</pre>

<p><strong>スクリプト002■メソッドString.indexOf()とString.substring()で文字列を検索・置換</strong><br />
<pre>function xReplace(source_str:String, find_str:String, replace_str:String):String {<br />
	var numChar:uint = find_str.length;<br />
	var end:int;<br />
	var result_str:String = "";<br />
	for (var i:uint = 0; -1 < (end = source_str.indexOf(find_str, i)); i = end + numChar) {<br />
		result_str +=  source_str.substring(i, end) + replace_str;<br />
	}<br />
	result_str +=  source_str.substring(i);<br />
	return result_str;<br />
}</pre></p>

<p>スクリプト001と002の速さの違いをwonderflのテスト用スクリプトで比べてみました。スクリプト002の方が行数も繰返しも多いのに、正規表現を使うよりかなり速いようです。</p>

<p><script type="text/javascript" src="http://wonderfl.net/blogparts/7CcH/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/7CcH" title="Replacing string by using RegExp or String class only">Replacing string by using RegExp or String class only - wonderfl build flash online</a></p></p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] データ型の変換はキャストよりas演算子が速い</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/12/09135257.html" />
   <id>tag:f-site.org,2010://1.1742</id>
   
   <published>2010-12-09T04:52:57Z</published>
   <updated>2010-12-09T05:19:39Z</updated>
   
   <summary>オブジェクトを異なるデータ型に変換したいとき、一般には「クラス(変換するオブジェ...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>オブジェクトを異なるデータ型に変換したいとき、一般には「クラス(変換するオブジェクト)」のかたちで<a href="http://help.adobe.com/ja_JP/as3/learn/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f9c.html#WS5b3ccc516d4fbf351e63e3d118a9b90204-7f87" target="_blank">キャスト</a>します。けれど、<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/operators.html#as" target="_blank"><em>as</em>演算子</a>を使う方が処理は速いようです。</p>]]>
      <![CDATA[<p>たとえば、<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/flash/events/Event.html#target" target="_blank"><em>Event.target</em>プロパティ</a>は、Objectで型指定されています。参照しているのが実際にはMovieClipだったとして、MovieClipクラスのプロパティやメソッドを使いたい場合にはキャストします。</p>

<pre>var _mc:MovieClip = MovieClip(eventObject.target);</pre>

<p>データ型の変換は、<em>as</em>演算子を使ってもできます。そして、処理はこちらのほうが速いようです(wonderfl「Type casting comparison」参照)。</p>

<pre>var _mc:MovieClip = eventObject.target as MovieClip;</pre>

<p><script type="text/javascript" src="http://wonderfl.net/blogparts/lYQD/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/lYQD" title="Type casting comparison">Type casting comparison - wonderfl build flash online</a></p></p>

<p>なお、このwonderflのテストでは、参考のため一旦型指定のない(<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/specialTypes.html#*" target="_blank"><em>*</em></a>)変数を介して代入する方法も試しています。</p>

<p>キャストと<em>as</em>演算子の処理の違いについては、「<a href="http://f-site.org/articles/2010/03/05235355.html" target="_blank">演算子asとis</a>」をお読みください。また、Array型にデータを変換するときの注意について、「<a href="http://f-site.org/articles/2007/04/28131556.html" target="_blank">配列(Array)にキャストする</a>」をご参照ください。</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] XORマジック</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/12/08220639.html" />
   <id>tag:f-site.org,2010://1.1741</id>
   
   <published>2010-12-08T13:06:39Z</published>
   <updated>2010-12-09T03:34:14Z</updated>
   
   <summary>スクリプト001■ビットごとの排他的論理和演算子^で変数の整数を入替える var...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p><strong>スクリプト001■ビットごとの排他的論理和演算子^で変数の整数を入替える</strong><br /><br />
<pre>var a:int = 12345;<br />
var b:int = 67890;<br />
trace(a, b);  // 出力: 12345 67890<br />
a = a ^ b;<br />
b = a ^ b;<br />
a = a ^ b;<br />
trace(a, b);  // 出力: 67890 12345</pre></p>]]>
      <![CDATA[<p><a href="http://ja.wikipedia.org/wiki/排他的論理和#.E3.83.93.E3.83.83.E3.83.88.E3.81.94.E3.81.A8.E3.81.AE.E6.8E.92.E4.BB.96.E7.9A.84.E8.AB.96.E7.90.86.E5.92.8C" target="_blank">ビットごとの排他的論理和</a>(bitwise exclusive or)<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/operators.html#bitwise_XOR" target="_blank">演算子<em>^</em></a>で、ふたつの変数の整数を他の変数は使わずに入替えることができます。</p>

<p>演算子<em>^</em></a>はふたつの計算対象(オペランド)の整数を2進数で扱い、各桁のどちらか一方のみが1のとき1、そうでないときは0にします。「ビットごと」というのは、繰り上がりや繰り下がりがなく、それぞれの桁だけで演算するということです。すると、ひと桁(1ビット)の数aとbの値は0か1で、総当たりの組合わせは4とおり、a^bの計算結果は次表001のようになります。</p>

<p><strong>表001■ビットごとの排他的論理和演算子^の計算結果</strong><br /><br />
<table border="1" cellspacing="0" bordercolor="#9999FF"></p>

<p><tr bgcolor="#CCCCFF"><br />
    <td bgcolor="#CCCCFF"><strong><br />
      a\b</strong></td><br />
    <td width="20" align="center"><br />
<strong>0</strong><br />
</td><br />
    <td width="20" align="center"><br />
<strong>1</strong><br />
</td><br />
    </tr><br />
  <tr><br />
    <td bgcolor="#CCCCFF"><br />
<strong>0</strong><br />
</td><br />
    <td width="20" align="center"><br />
0<br />
</td><br />
    <td width="20" align="center"><br />
1<br />
</td><br />
    </tr><br />
  <tr><br />
    <td bgcolor="#CCCCFF"><br />
<strong>1</strong><br />
</td><br />
    <td width="20" align="center"><br />
1<br />
</td><br />
    <td width="20" align="center"><br />
0<br />
</td><br />
    </tr></p>

</table>

<p>では、改めて前掲のスクリプト001について、ビットひとつの計算結果を4とおり確かめてみましょう。次表002に掲げたように、変数aとbの値がいずれも入替わります。2進数に換えた整数のすべての桁(ビット)でこの計算が行われますので、結果としてふたつの変数の整数が入替わることになるのです。</p>

<p><strong>表002■ビットごとの4通りの計算結果</strong><br /><br />
<table border="1" cellspacing="0" bordercolor="#9999FF"><br />
<tr><br />
    <td bgcolor="#CCCCFF"><strong><br />
var a:int = <br />
</strong></td><br />
    <td width="20" align="center" bgcolor="#CCCCFF"><strong><br />
0<br />
</strong></td><br />
    <td width="20" align="center" bgcolor="#CCCCFF"><strong><br />
0<br />
</strong></td><br />
    <td width="20" align="center" bgcolor="#CCCCFF"><strong><br />
1<br />
</strong></td><br />
    <td width="20" align="center" bgcolor="#CCCCFF"><strong><br />
1<br />
</strong></td><br />
  </tr><br />
<tr><br />
    <td bgcolor="#CCCCFF"><strong><br />
var b:int = <br />
</strong></td><br />
    <td width="20" align="center" bgcolor="#CCCCFF"><strong><br />
0<br />
</strong></td><br />
    <td width="20" align="center" bgcolor="#CCCCFF"><strong><br />
1<br />
</strong></td><br />
    <td width="20" align="center" bgcolor="#CCCCFF"><strong><br />
0<br />
</strong></td><br />
    <td width="20" align="center" bgcolor="#CCCCFF"><strong><br />
1<br />
</strong></td><br />
  </tr><br />
  <tr><br />
    <td bgcolor="#EEEEFF"><br />
<strong><br />
a = a ^ b = <br />
</strong><br />
</td><br />
    <td width="20" align="center"><br />
0<br />
</td><br />
    <td width="20" align="center"><br />
1<br />
</td><br />
    <td width="20" align="center"><br />
1<br />
</td><br />
    <td width="20" align="center"><br />
0<br />
</td><br />
  </tr><br />
  <tr><br />
    <td bgcolor="#EEEEFF"><br />
<strong><br />
b = a ^ b = <br />
</strong><br />
</td><br />
    <td width="20" align="center"><strong><br />
0<br />
    </strong></td><br />
    <td width="20" align="center"><strong><br />
0<br />
    </strong></td><br />
    <td width="20" align="center"><strong><br />
1<br />
    </strong></td><br />
    <td width="20" align="center"><strong><br />
1<br />
    </strong></td><br />
  </tr><br />
  <tr><br />
    <td bgcolor="#EEEEFF"><br />
<strong><br />
a = a ^ b = <br />
</strong><br />
</td><br />
    <td width="20" align="center"><strong><br />
0<br />
    </strong></td><br />
    <td width="20" align="center"><strong><br />
1<br />
    </strong></td><br />
    <td width="20" align="center"><strong><br />
0<br />
    </strong></td><br />
    <td width="20" align="center"><strong><br />
1<br />
    </strong></td><br />
  </tr></p>

</table>]]>
   </content>
</entry>
<entry>
   <title>[AS3] パフォーマンス向上のヒント</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/12/05190305.html" />
   <id>tag:f-site.org,2010://1.1740</id>
   
   <published>2010-12-05T10:03:05Z</published>
   <updated>2010-12-05T11:42:48Z</updated>
   
   <summary>12月4日土曜日に開かれたFITC Tokyo 2010で、Mike Chamb...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>12月4日土曜日に開かれたFITC Tokyo 2010で、Mike Chambers氏は「<a href="http://www.fitc.ca/events/presentations/presentation.cfm?event=112&presentation_id=1393" target="_blank">Flashで作成する高性能モバイルコンテンツ</a>」と題するプレゼンテーションをされました。その中で使われたスライドは、多くがすでに公開されている<a href="http://www.mikechambers.com/blog/files/presentations/fitc_amsterdam_2010/flash_iphone_fitc_2010.pdf" target="_blank">FITC Amsterdam 2010のPDF</a>と共通するようです。</p>

<p>そこで、とくにFlashコンテンツのパフォーマンス向上に関わる部分を、筆者の興味にしたがって若干の加筆・補正も含みつつ抜出してみました。なお、ActionScript 3.0におけるパフォーマンス向上の基本については「<a href="http://www.adobe.com/jp/devnet/flash/articles/ac3_performance.html" target="_blank">ActionScript 3.0におけるパフォーマンス向上のヒント</a>」をご参照ください。</p>]]>
      <![CDATA[<p>*ページ番号は、Mike Chambers氏のPDFによる。</p>

<ol>
<li>レンダリング(p.31、34)</li>
<ul>
<li>ハードウェア合成のレンダリングはDisplayObjectに使われる</li>
<li>ソフトウェアレンダリングは画面全体をソフトウェアで描く</li>
<li>GPU合成</li>
<ul>
<li>各エレメントはソフトウェアでレンダリング</li>
<li>全体をハードウェアで合成する</li>
</ul>
</ul>

<p><li>GPU合成を使うには(p.36、38)</li><br />
<ul><br />
<li><a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/flash/display/DisplayObject.html?allClasses=1#cacheAsBitmap" target="_blank">cacheAsBitmap</a>をtrueに設定</li><br />
<ul><br />
	<li>変換行列による平行移動</li><br />
	<li>x/yプロパティの変更</li><br />
	<li>トゥイーン</li><br />
</ul><br />
<li><a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/flash/display/DisplayObject.html?allClasses=1#cacheAsBitmapMatrix" target="_blank">cacheAsBitmapMatrix</a>にMatrixオブジェクトを設定 (モバイルAIR専用)</li><br />
<ul><br />
	<li>行列による座標変換</li><br />
	<li>回転</li><br />
	<li>伸縮</li><br />
</ul><br />
<li>2.5Dの操作を行う</li><br />
<ul><br />
	<li>例) zプロパティの設定</li><br />
</ul><br />
</ul></p>

<p><li>GPUを使おう(p.42)</li><br />
<ul><br />
<li>ハードウェアアクセラレーションは基本的にすべてに有効</li><br />
<ul><br />
	<li>ただし、頻繁に再描画されるものを除く</li><br />
</ul><br />
<li>再描画を最小限にするためにDisplayObjectを分ける</li><br />
<li>子インスタンスが動いたり変わったりするMovieClipはキャッシュしない</li><br />
<li>表示リストは浅くする(DisplayObjectの入れ子を少なく)</li><br />
</ul></p>

<p><li>再描画の要因を避ける(p.43)</li><br />
<ul><br />
<li>キャッシュされていないDisplayObjectの上を動かす</li><br />
<li>表示内容を書替える</li><br />
<ul><br />
	<li>Drawing APIの使用</li><br />
	<li>子インスタンスの移動・変更</li><br />
</ul><br />
<li>ColorTransformクラスを適用する</li><br />
<li>表示リストから除く</li><br />
</ul></p>

<p><li>インスタンスをつくるのは最小限に(p.44)</li><br />
<ul><br />
<li>オブジェクトインスタンスは使い回す</li><br />
<li>メモリ割当は負荷が高い</li><br />
<li>ガベージコレクションを減らす</li><br />
<li>CPUと初期化の負荷を減らす</li><br />
</ul></p>

<p><li>オブジェクトプール(p.50)</li><br />
<ul><br />
<li>オブジェクトインスタンスを使い回す</li><br />
<li>初期化とガベージコレクションの繰返しを避ける</li><br />
<li>DisplayObjectのプールはとくにGPU合成で役立つ(p.51)</li><br />
<ul><br />
	<li>キャッシュされたDisplayObjectを使い回す</li><br />
	<li>ステージに置いたまま(隠すときはステージ外)</li><br />
	<li>パフォーマンスは大きく高まる</li><br />
</ul><br />
参考: Object Pool「<a href="http://d.hatena.ne.jp/asakichy/20090406/1238985837" target="_blank">Strategic Choice</a>」<br />
</ul></p>

<p><li>時間間隔の管理(p.53)</li><br />
<ul><br />
<li>一般にENTER_FRAMEの方がTimerより効率がよい</li><br />
<li>リスナーはひとつにして他を呼出す</li><br />
</ul></p>

<p><li>イベントの配信(p.54)</li><br />
<ul><br />
<li>負荷が高くなりがち</li><br />
<li>そのためのメモリ割当がいくつか必要になる</li><br />
<li>CPU負荷の高い場面ではコールバックを使ってみる</li><br />
<li>Eventインスタンスの使い回しも考える</li><br />
</ul></p>

<p><li>イベントの伝播(p.56)</li><br />
<ul><br />
<li>表示リストのインスタンスについて負荷が高くなりがち</li><br />
<li><a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/flash/events/Event.html#stopPropagation()" target="_blank">Event.stopPropagation()</a>で止める</li><br />
<li><a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/flash/events/Event.html#stopImmediatePropagation()" target="_blank">Event.stopImmediatePropagation()</a>で止める</li><br />
</ul></p>

<p><li>マウス/タッチイベント(p.58)</li><br />
<ul><br />
<li>不要なときは無効にする</li><br />
<ul><br />
	<li><a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/flash/display/InteractiveObject.html#mouseEnabled" target="_blank">mouseEnabled</a>をfalseに設定</li><br />
	<li><a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/flash/display/DisplayObjectContainer.html#mouseChildren" target="_blank">mouseChildren</a>をfalseに設定</li><br />
<li>MouseEvent.MOUSE_MOVEを使わない</li><br />
<ul><br />
	<li>時間間隔を定めてポインタの位置を調べる</li><br />
	<li>Event.ENTER_FRAMEイベントの利用</li><br />
</ul><br />
</ul><br />
</ol></p>]]>
   </content>
</entry>
<entry>
   <title>自動でリンケージを設定するFlashコマンド</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/12/01140000.html" />
   <id>tag:f-site.org,2010://1.1739</id>
   
   <published>2010-12-01T05:00:00Z</published>
   <updated>2010-12-01T08:14:46Z</updated>
   
   <summary> ライブラリ内の選択したアイテムに、自動でリンケージを設定するFlashコマンド...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="サロン" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>
ライブラリ内の選択したアイテムに、自動でリンケージを設定するFlashコマンドを公開します。
</p>]]>
      <![CDATA[<p>
<img src="http://f-site.org/articles/2010/11/20101130_2.png" alt="自動でリンケージを設定するFlashコマンド" />
</p>


<h3>概要</h3>
<p>
このコマンドを実行すると、ライブラリで選択中のアイテムに対して自動的にリンケージ設定が行われます。具体的には、アイテム名がそのままクラス名に設定され、「ActionScript用に書き出し」「1フレーム目に書き出し」にチェックが入った状態になります。
</p>
<p>
ビットマップのようにアイテム名の末尾に「.png」「.jpg」など拡張子らしきものがある場合は、それを無視したクラス名が付くようになっています。例えば「Title.png」に対してこのコマンドを実行すると、「Title」というクラス名が付けられます。
</p>
<p>
また、フォルダの中に入っているアイテムは、フォルダ名がパッケージ名に変換されます。例えば「buttonsフォルダ内のPhotoButton1.png」に対してこのコマンドを実行すると、「buttons.PhotoButton1」というパッケージ＆クラス名が付けられます。
</p>
<p>
個人的には、<a href="http://f-site.org/articles/2010/11/30152536.html"  >ライブラリのアイテムをフォルダに振り分けるFlashコマンド</a>や、<a href="http://level0.kayac.com/2010/10/psd2fla_jsx.php"  >PSDExporter</a>と連携させて使っています。
</p>


<h3>ダウンロード</h3>


<ul>
<li><a href="http://f-site.org/articles/2010/11/automatic-linkage-settings.mxp"  >automatic-linkage-settings.mxp</a></li>
</ul>
<p>
ダウンロード後、MXPファイルを実行してください（要Extension Manager）。
</p>


<h3>動作環境</h3>
<p>
Windows 7、Flash Professional CS5で動作を確認しています。Mac OS X、Flash CS4 Professionalなどでは確認していませんが、おそらく動くと思います。
</p>


<h3>使用方法</h3>


<ol>
<li>ライブラリパネルでリンケージ設定をしたいアイテムを選択します。</li>
<li>[コマンド]メニューから、[自動リンケージ設定]を実行します。</li>
</ol>


<h3>著作権および免責</h3>
<p>
<a href="http://f-site.org/articles/2003/10/01010638.html"  >著作権と免責</a>をご覧ください。
</p>


<h3>備考</h3>
<p>
不具合の報告、感想などは、コメントまたはトラックバックまでお寄せください。できる限りお応えします。
</p>]]>
   </content>
</entry>
<entry>
   <title>ライブラリのアイテムをフォルダに振り分けるFlashコマンド</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/11/30152536.html" />
   <id>tag:f-site.org,2010://1.1738</id>
   
   <published>2010-11-30T06:25:36Z</published>
   <updated>2010-11-30T06:59:52Z</updated>
   
   <summary> ライブラリ内の選択したアイテムを、特定のルールに従ってフォルダに振り分けるFl...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="サロン" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>
ライブラリ内の選択したアイテムを、特定のルールに従ってフォルダに振り分けるFlashコマンドを公開します。
</p>
<p>
<img src="http://f-site.org/articles/2010/11/20101130_1.png" alt="ライブラリのアイテムをフォルダに振り分けるFlashコマンド" />
</p>]]>
      <![CDATA[

<h3>概要</h3>
<p>
このコマンドを実行すると、ライブラリで選択中のアイテム名に「_」（アンダースコア）が付いている場合、その前後で名前を区切り、前者をフォルダ名、後者をファイル名としてフォルダ分けされます。
</p>
<p>
例えば、「buttons_PhotoButton1.png」というビットマップに対してこのコマンドを実行すると、「buttons」フォルダが作成され、その中に「PhotoButton1.png」が振り分けられます。
</p>
<p>
個人的には、<a href="http://level0.kayac.com/2010/10/psd2fla_jsx.php"  >PSDExporter</a>と連携させて使うなどしています。
</p>
<p>
気が向いたら、区切り文字の指定なども対応したいと思っています。
</p>


<h3>ダウンロード</h3>


<ul>
<li><a href="http://f-site.org/articles/2010/11/automatic-classify-library.mxp"  >automatic-classify-library.mxp</a></li>
</ul>
<p>
ダウンロード後、MXPファイルを実行してください（要Extension Manager）。
</p>


<h3>動作環境</h3>
<p>
Windows 7、Flash Professional CS5で動作を確認しています。Mac OS X、Flash CS4 Professionalなどでは確認していませんが、おそらく動くと思います。
</p>


<h3>使用方法</h3>


<ol>
<li>ライブラリパネルでフォルダに振り分けたいアイテムを選択します。</li>
<li>[コマンド]メニューから、[ライブラリの自動仕分け]を実行します。</li>
</ol>


<h3>著作権および免責</h3>
<p>
<a href="http://f-site.org/articles/2003/10/01010638.html"  >著作権と免責</a>をご覧ください。
</p>


<h3>備考</h3>
<p>
不具合の報告、感想などは、コメントまたはトラックバックまでお寄せください。できる限りお応えします。
</p>]]>
   </content>
</entry>
<entry>
   <title>複数のレイヤーをまとめてガイドにするFlashコマンド</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/11/25031240.html" />
   <id>tag:f-site.org,2010://1.1737</id>
   
   <published>2010-11-24T18:12:40Z</published>
   <updated>2010-11-24T18:19:50Z</updated>
   
   <summary> 選択した複数のレイヤーをまとめてガイドにするFlashコマンドを公開します。 ...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="サロン" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>
選択した複数のレイヤーをまとめてガイドにするFlashコマンドを公開します。
</p>
<p>
<img src="http://f-site.org/articles/2010/11/20101125_1.png" alt="複数のレイヤーをまとめてガイドにするFlashコマンド" />
</p>]]>
      <![CDATA[

<h3>概要</h3>
<p>
選択中のレイヤーを通常/ガイドのトグルで変更するFlashコマンドです。普通のレイヤーに対して実行するとガイドレイヤーに、ガイドレイヤーに対して実行すると普通のレイヤーに変更します。
</p>
<p>
例によって、[編集]メニューのキーボードショートカットに割り当てて使うと便利です。私はCtrl+Shift+3にしています。
</p>


<h3>ダウンロード</h3>


<ul>
<li><a href="http://f-site.org/articles/2010/11/get_guide_layers.mxp"  >get_guide_layers.mxp</a></li>
</ul>
<p>
ダウンロード後、MXPファイルを実行してください（要Extension Manager）。
</p>


<h3>動作環境</h3>
<p>
Windows 7、Flash Professional CS5で動作を確認しています。Mac OS X、Flash CS4 Professionalなどでは確認していませんが、おそらく動くと思います。
</p>


<h3>使用方法</h3>


<ol>
<li>[コマンド]メニューから、[まとめてガイドレイヤー]を実行します。</li>
</ol>


<h3>著作権および免責</h3>
<p>
<a href="http://f-site.org/articles/2003/10/01010638.html"  >著作権と免責</a>をご覧ください。
</p>


<h3>備考</h3>
<p>
不具合の報告、感想などは、コメントまたはトラックバックまでお寄せください。できる限りお応えします。
</p>]]>
   </content>
</entry>
<entry>
   <title>2010.11.6 「イマドキFlashの設計図」</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/11/16091149.html" />
   <id>tag:f-site.org,2010://1.1736</id>
   
   <published>2010-11-16T00:11:49Z</published>
   <updated>2010-11-26T22:51:14Z</updated>
   
   <summary> demo1「作りたいものをスグ形に！作って楽しいFlash Catalyst入...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="レポート" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>
<img src="http://f-site.org/articles/2010/11/14_large.jpg" alt="" />
</p>
<p>
demo1「作りたいものをスグ形に！作って楽しいFlash Catalyst入門」鈴木拓生氏<br />
demo2「<a href="http://sipo.jp/blog/2010/11/f-site.html"  >知って得する!?しっぽ流デザインパターン講座</a>」尾野政樹氏 @tail_y<br />
demo3「ニコゲー開発の舞台裏」新藤愛大氏
</p>
<p>
当日には、110人のご参加をいただきました。ありがとうございました！
</p>
<p>
セミナーへ参加した方のコメント、トラックバックはこちらの記事にお願いします。
</p>]]>
      <![CDATA[<p>
<img src="http://f-site.org/articles/2010/11/1_large.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/articles/2010/11/2_large.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/articles/2010/11/4_large.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/articles/2010/11/13_large.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/articles/2010/11/12_large.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/articles/2010/11/19_large.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/articles/2010/11/16_large.jpg" alt="" />
</p>
<p>
<img src="http://f-site.org/articles/2010/11/IMAG0035.jpg" alt="" />
</p>
<p>
オマケ
</p>
<p>
セミナーの1週間前に、A.e.Suckさんが記念すべき50歳の誕生日を迎えたということでケーキをプレゼントしました！　そのときの様子は<a href="http://f-site.org/articles/2010/11/VIDEO0008.3gp"  >コチラの動画</a>で。
</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] Observerパターンのサンプルプログラム</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/10/30031500.html" />
   <id>tag:f-site.org,2010://1.1733</id>
   
   <published>2010-10-29T18:15:00Z</published>
   <updated>2010-10-31T15:53:01Z</updated>
   
   <summary>オブジェクト指向プログラミングにおけるデザインパターンに、「Observerパタ...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="OOP" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>オブジェクト指向プログラミングにおける<a href="http://ja.wikipedia.org/wiki/デザインパターン_(ソフトウェア)" target="_blank">デザインパターン</a>に、「<a href="http://www.techscore.com/tech/DesignPattern/Observer.html" target="_blank">Observerパターン</a>」があります。対象オブジェクトの状態が変わるごとに、その情報を必要なインスタンス(Observer)に送る仕組みです。Javaの例をActionScript 3.0に書替えてみましょう。今回は、デザインパターンの解説書として定評のある結城浩著『<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4797327030/fsite-22/" target="_blank">Java言語で学ぶデザインパターン入門</a>』のサンプルプログラムを題材とします<sup>[*1]</sup>。</p>]]>
      <![CDATA[<p>Observerパターンは、<a href="http://ja.wikipedia.org/wiki/出版-購読型モデル" target="_blank">出版−購読型モデル</a>とも呼ばれます。メールマガジンに登録して、その配信を受けるのと似た仕組みです。したがって、配信する側(Generator)と受取る側(Observer)のふたつの役割が必要になります。ActionScript 3.0のクラス設計では、インターフェイスで仕様を定めます。</p>

<h3>01 配信側クラスの仕様 ー インターフェイスINumberGenerator</h3>
<p>配信側のインターフェイスには、少なくとも3つのメソッドを備える必要があります(スクリプト001)。</p>

<ol>
<li>オブザーバーの登録: addObserver()</li>
<li>オブザーバーの削除: deleteObserver()</li>
<li>オブザーバーに配信: notifyObservers()</li>
</ol>

<p><strong>スクリプト001■インターフェイスINumberGenerator</strong><br />
<pre>package {<br />
	public interface INumberGenerator {<br />
		// 配信クラスに必要なメソッド<br />
		function addObserver(observer:IObserver):void;<br />
		function deleteObserver(observer:IObserver):void;<br />
		function notifyObservers():void;<br />
		// サンプルとして加えたメソッド<br />
		function getNumber():int;<br />
		function execute():void;<br />
	}<br />
}</pre></p>

<p>Javaと異なりActionScript 3.0のインターフェイスでは宣言できませんが、受信するオブザーバーのインスタンス(後述インターフェイスIObserverを実装)を納めるプロパティも用意します。また、オブザーバーへの配信は、そのインスタンスのメソッド(後述update())を呼出して行います。</p>

<h3>02 受信側クラスの仕様 ー インターフェイスIObserver</h3>

<p>受信側のインターフェイスは、配信側クラスのメソッドnotifyObservers()から呼出されるupdate()を宣言します(スクリプト002)。</p>

<p><strong>スクリプト002■インターフェイスIObserver</strong><br />
<pre>package {<br />
	public interface IObserver {<br />
		function update(generator:INumberGenerator):void;<br />
	}<br />
}</pre></p>

<p>メソッドupdate()は、引数に配信するクラス(インターフェイスINumberGeneratorを実装)のインスタンスを受取ることにしました。したがって、必要な情報はこのインスタンスから(getNumber()メソッドにより)取出します。</p>

<h3>03 配信側クラスの実装 ー クラスRandomNumberGenerator</h3>

<p>配信側のクラスRandomNumberGeneratorは、つぎのようにインターフェイスINumberGeneratorを実装します(スクリプト003)。</p>

<p><strong>スクリプト003■クラスRandomNumberGenerator</strong><br />
<pre>package {<br />
	import flash.utils.setInterval;<br />
	import flash.utils.clearInterval;<br />
	public class RandomNumberGenerator implements INumberGenerator {<br />
		private var observers:Vector.&lt;IObserver&gt;  = new Vector.&lt;IObserver&gt;();<br />
		private var number:int;<br />
		private var id:uint;<br />
		private var interval:uint = 1000;<br />
		public function RandomNumberGenerator() {}<br />
		public function addObserver(observer:IObserver):void {<br />
			observers.push(observer);<br />
		}<br />
		public function deleteObserver(observer:IObserver):void {<br />
			var nLength:uint = observers.length;<br />
			for (var i:uint = 0; i &lt; nLength; i++) {<br />
				var element:IObserver = observers[i];<br />
				if (element == observer) {<br />
					observers.splice(i, 1);<br />
					break;<br />
				}<br />
			}<br />
		}<br />
		public function notifyObservers():void {<br />
			var nLength:uint = observers.length;<br />
			number = Math.floor(Math.random() * 50);<br />
			for (var i:uint = 0; i &lt; nLength; i++) {<br />
				var observer:IObserver = observers[i];<br />
				observer.update(this);<br />
			}<br />
		}<br />
		public function getNumber():int {<br />
			return number;<br />
		}<br />
		public function execute():void {<br />
			clearInterval(id);<br />
			id = setInterval(notifyObservers, interval);<br />
		}<br />
	}<br />
}</pre></p>

<p>受信するオブザーバーのインスタンスは、Vectorインスタンスのプロパティ(observers)に納めることにしました。オブザーバーの登録と削除のメソッドaddObserver()およびdeleteObserver()は、それに即した処理にしています。また、配信のメソッドnotifyObservers()は、オブザーバーのインスタンスすべてを取出して、自身を引数にそのupdate()メソッドを呼出します。そのとき、ランダムな整数(0〜49)がプロパティ(number)に設定されます。</p>

<p>メソッドexecute()は、配信を開始します。一定の時間間隔(1000ミリ秒)でメソッドnotifyObservers()を呼出します<sup>[*2]</sup>。受信側のオブザーバーインスタンスは、getNumber()メソッドでランダムな整数が取出せます。</p>

<h3>04 受信側クラスの実装 ー クラスDigitObserver</h3>
<p>受信するオブザーバーのクラスDigitObserverは、以下のようにインターフェイスIObserverを実装します(スクリプト004)。定義するのはメソッドupdate()のみです。</p>

<p><strong>スクリプト004■クラスDigitObserver</strong><br />
<pre>package {<br />
	public class DigitObserver implements IObserver {<br />
		public function DigitObserver() {}<br />
		public function update(generator:INumberGenerator):void {<br />
			trace("DigitObserver: " + generator.getNumber());<br />
		}<br />
	}<br />
}</pre></p>

<p>メソッドupdate()は、引数に受取った配信側インスタンスのgetNumber()メソッドによりランダムな整数を取出し、trace()関数でその値を[出力]します。</p>

<p>これで必要なインターフェイスおよびクラスは揃いました。確認用のドキュメントクラスMainを以下のように定義して[ムービープレビュー]で試しましょう(スクリプト005)。ランダムな整数が1秒ごとに[出力]されます(図001)。</p>

<p><strong>スクリプト005■ドキュメントクラスMain</strong><br />
<pre>package {<br />
	import flash.display.Sprite;<br />
	public class Main extends Sprite {<br />
		public function Main() {<br />
			var generator:INumberGenerator = new RandomNumberGenerator();<br />
			var observer0:IObserver = new DigitObserver();<br />
			generator.addObserver(observer0);<br />
			generator.execute();<br />
		}<br />
	}</p>

<p>}</pre></p>

<p><strong>図001■ランダムな整数が1秒ごとに[出力]される</strong>
<img alt="FF1010301_001.gif" src="http://f-site.org/FF1010301_001.gif" width="645" height="210" /></p>
<p><img alt="FF1010301_002.gif" src="http://f-site.org/FF1010301_002.gif" width="220" height="105" /></p>

<h3>04 もうひとつの受信側クラスを実装 ー クラスGraphObserver</h3>
<p>デザインパターンのつねとして、同じインターフェイスさえ実装すれば、具体的な処理内容は変えられます。受信するオブザーバーのクラスをもうひとつGraphObserverとして定義しました(スクリプト006)。</p>

<p><strong>スクリプト006■クラスGraphObserver</strong><br />
<pre>package {<br />
	public class GraphObserver implements IObserver {<br />
		public function GraphObserver() {}<br />
		public function update(generator:INumberGenerator):void {<br />
			var result_str:String = "GraphObserver: ";<br />
			var count:int = generator.getNumber();<br />
			for (var i:uint = 0; i < count; i++) {<br />
				result_str += "*";<br />
			}<br />
			trace(result_str);<br />
		}<br />
	}<br />
}</pre></p>

<p>テスト用のサンプルですので、前掲クラスDigitObserverと変えた点はごくわずかです。取出したランダムな整数を数値でなく、"*"の数でグラフのように[出力]します(図002)。ドキュメントクラスMainには、つぎのスクリプト006のようにステートメントを加えます。</p>

<p><strong>スクリプト007■修正したドキュメントクラスMain</strong><br />
<pre>package {<br />
	import flash.display.Sprite;<br />
	public class Main extends Sprite {<br />
		public function Main() {<br />
			var generator:INumberGenerator = new RandomNumberGenerator();<br />
			var observer0:IObserver = new DigitObserver();<br />
			var observer1:IObserver = new GraphObserver();<br />
			generator.addObserver(observer0);<br />
			generator.addObserver(observer1);<br />
			generator.execute();<br />
		}<br />
	}<br />
}</pre></p>

<p><strong>図002■ランダムな整数とそのグラフが1秒ごとに[出力]される</strong>
<img alt="FF1010301_003.gif" src="http://f-site.org/FF1010301_003.gif" width="645" height="230" /></p>
<p><img alt="FF1010301_004.gif" src="http://f-site.org/FF1010301_004.gif" width="405" height="190" /></p>

<p>なお、「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1011001.html" target="_blank">Observer(オブザーバー)パターン</a>」はイベントリスナーを例に説明しています。</p>

<hr />

<p>[*1] ActionScript 3.0への書替えは、筆者の解釈にもとづきます。</p>

<p>[*2] イベントリスナーはObserverパターンなので使わずに、あえて<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/flash/utils/package.html#setInterval()" target="_blank"><em>setInterval()</em>メソッド</a>を用いました。</p>]]>
   </content>
</entry>
<entry>
   <title>Flash PlayerとAIRの新3D API</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/10/27142812.html" />
   <id>tag:f-site.org,2010://1.1732</id>
   
   <published>2010-10-27T05:28:12Z</published>
   <updated>2010-10-27T05:39:17Z</updated>
   
   <summary>Flash PlayerとAIRの新3D API「Molehill」の情報とデモ...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="業界ニュース" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>Flash PlayerとAIRの新3D API「<a href="http://dic.yahoo.co.jp/dsearch?p=Molehill&dtype=1&dname=1na" target="_blank">Molehill</a>」の情報とデモビデオが、<a href="http://labs.adobe.com/technologies/flash/molehill/" target="_blank">Adobe Labs</a>に掲載されました。記事の冒頭には、つぎのような紹介がされています。</p>]]>
      <![CDATA[<blockquote><p>「Molehill」は<a href="http://e-words.jp/w/E4BD8EE6B0B4E6BA96E8A880E8AA9E.html" target="_blank">低水準</a>のGPUアクセラレーション3D APIのコードネームで、Adobe Flashプラットフォームのランタイムによりさまざまなスクリーンにおいて高度な3D体験を可能にします。これらの低水準APIにより、高度な3Dや3Dエンジンの開発者はGPUハードウェアアクセラレーションを活かした高いパフォーマンスが得られます。現在、Flash Player 10.1は、<a href="http://e-words.jp/w/ZE38390E38383E38395E382A1E6B395.html" target="_blank">Zバッファ</a>されていない数千の三角形を約30Hzで描画します。新3D APIでは、開発者は数十万のZバッファされた三角形をHD解像度のフルスクリーンにおいて約60Hzで描画することも期待できます。Flash PlayerやAIRで新3D APIを使えば、洗練された3D体験がインターネットに接続されたあらゆるコンピュータやデバイスで提供できます。</p>

<p>新APIによる3D機能幅は多くの開発者コミュニティで、Alternativa3DやAway3d、Flare3D、Sophie3D、Yogurt3DなどのおもなActionScript 3Dフレームワークを通して利用できるようになります。</p></blockquote>

<p> Molehillを使った3Dコンテンツは、2011年前半に公開予定の次期Flash Playerベータ版で作成することができるそうです。</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] 連結リストとVectorによるエレメントの追加と削除</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/10/12235843.html" />
   <id>tag:f-site.org,2010://1.1731</id>
   
   <published>2010-10-12T14:58:43Z</published>
   <updated>2010-10-12T15:49:15Z</updated>
   
   <summary>「連結リスト」(linked list)はObjectとArrayクラスの中間の...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>「連結リスト」(linked list)はObjectとArrayクラスの中間のような仕組みで、エレメントには順序があるもののインデックス番号をもちません。その処理の速さを、Vectorクラスと比べてみます。</p>]]>
      <![CDATA[<p>連結リストの各エレメントは、その前後のエレメントの参照をもちます。そのため、順序はあってもインデックス番号がないのです。連結リストの仕組みについて詳しくは、「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1010001.html" target="_blank">連結リスト(linked list)</a>」をお読みください。</p>

<p>ここでは、エレメントを最後に加える操作と先頭からエレメントを除く操作について、連結リストとVectorクラスを比べてみます。Vectorクラスのメソッドでは、<em>push()</em>と<em>shift()</em>です。テスト用のスクリプトをwonderflに掲げました。エレメントはuint型にしています。</p>

<p><script type="text/javascript" src="http://wonderfl.net/blogparts/7Hbt/js"></script><p class="ttlBpWonderfl" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"><a href="http://wonderfl.net/c/7Hbt" title="push() and shift() operation of Vector and Linked List">push() and shift() operation of Vector and Linked List - wonderfl build flash online</a></p></p>

<p>エレメントを最後に加えていく処理は、連結リストの有利さが感じられず、<em>Vector.push()</em>メソッドより遅い結果になりました。けれど、先頭からエレメントを取出す場合には、インデックスの連番を振り直す必要がありません。単に先頭エレメントの参照を切るだけですから、連結リストの速さが際立ちます。</p>

<p>先頭エレメントの追加や削除、あるいは(インデックスでなく)エレメントの参照から途中に操作を加えるような処理には、連結リストが適しているでしょう。</p>]]>
   </content>
</entry>
<entry>
   <title>[AS3] CodeZine「Java と ActionScript 3.0 の違い：文法編」</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/10/12123850.html" />
   <id>tag:f-site.org,2010://1.1730</id>
   
   <published>2010-10-12T03:38:50Z</published>
   <updated>2010-10-12T05:55:52Z</updated>
   
   <summary>Adobeの上条晃宏氏がCodeZineに「Java と ActionScrip...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Tips" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>Adobeの<a href="http://cuaoar.jp/" target="_blank">上条晃宏</a>氏がCodeZineに「<a href="http://codezine.jp/article/detail/5485" target="_blank">Java と ActionScript 3.0 の違い：文法編</a>」を書かれました(<a href="http://www.adobe.com/jp/joc/devnet/flex/articles/asforjava1.html" target="_blank">Flexデベロッパーセンター</a>より再掲)。興味深い記事ですので、ActionScript 3.0について気づいたことを少し付け加えてみます。</p>]]>
      <![CDATA[<h3> null,undefined,NaN,</h3>
<p>値が<em>undefined</em>になる場合としては、存在しない配列エレメントやvoidの戻り値もあります。</p>

<pre>var _array:Array = [];
trace(_array[0]);  // 出力: undefined
trace(test());  // 出力: undefined
function test ():void {
}</pre>

<h3>プリミティブ型</h3>
<p>プリミティブでは、String型の<a href="http://help.adobe.com/ja_JP/as3/learn/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f9d.html#WS5b3ccc516d4fbf351e63e3d118a9b90204-7f8b" target="_blank">デフォルト値</a>が<em>null</em>であることに注意が必要です。String以外のたとえばint型であれば、デフォルトでも<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/int.html?allClasses=1" target="_blank">intクラス</a>のメソッドが使えます。</p>

<pre>var i:int;
trace(i.toPrecision(2));  // 出力: 0.00</pre>

<p>ところが、String型のデフォルト値<em>null</em>に対しては、プロパティやメソッドにアクセスできず、<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/runtimeErrors.html#1009" target="_blank">ランタイムエラー</a>になります。</p>

<pre>var _str:String;
trace(_str.toLowerCase());
// 出力:
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。</pre>

<p>また、<em>null</em>は<a href="http://f-site.org/articles/2010/07/31041620.html" target="_blank">String型のプロパティに設定することもできません</a>。</p>

<h3> キャスト </h3>
<p>数値の型の間では、自動的に変換が行われます。たとえば、Number型の値をint型の変数に入れれば、整数に変換されます(とはいえ、きちんと型変換することが安心です)。</p>

<pre>var f:Number = 5.5;
var i:int = f as int;
trace(i);  // 出力: 0
i = f;
trace(i);  // 出力: 5</pre>

<p>また、Arrayクラスについては、<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/package.html#Array()" target="_blank"><em>Array()</em>関数</a>でキャストすることはできません。このときは、<a href="http://f-site.org/articles/2007/04/28131556.html" target="_blank"><em>as</em>演算子を使いましょう</a>。</p>

<h3>instanceof</h3>
<p><a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/operators.html#instanceof" target="_blank"><em>instanceof</em>演算子</a>は、ActionScript 3.0でも一応は使えます。ただし、<em>is</em>演算子を用いるよう<a href="http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/compilerWarnings.html#3556" target="_blank">警告</a>されます。また、<em>instanceof</em>演算子では、インターフェイスの実装は調べられません。</p>

<pre>var _mc:MovieClip = new MovieClip();
trace(_mc is IBitmapDrawable);  // 出力: true
trace(_mc instanceof IBitmapDrawable);  // false</pre>

<h3> ジェネリクスとコレクション </h3>
<p> Flash Professional CS5からは、<a href="http://f-site.org/articles/2010/04/15182334.html" target="_blank">エレメントを納めたVectorインスタンスが生成できる</a>ようになりました。 </p>]]>
   </content>
</entry>
<entry>
   <title>[12/04]FITC Tokyo 2010</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/10/11221733.html" />
   <id>tag:f-site.org,2010://1.1729</id>
   
   <published>2010-10-11T13:17:33Z</published>
   <updated>2010-12-15T09:23:40Z</updated>
   
   <summary> トロント、シカゴ、サンフランシスコ、ハリウッド、韓国、アムステルダムのイベント...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[

<img src="http://f-site.org/articles/2010/10/main_img_02c.jpg" alt="" />


<blockquote>
トロント、シカゴ、サンフランシスコ、ハリウッド、韓国、アムステルダムのイベントで成功を収めたFITCが、再び日本に帰ってきます。デザインとアートの技術を限界まで試したり、その限界を模索したり、更には壊して一から作りなおしたり。デザイナーや技術者 は、ツールの本来の目的を乗り越えるためにどのように現状を打破しているのか。望みどおりのものを手に入れるためにどのように代替方法を見つけるのか。陳腐化しないためにどのように新境地を開いていくのか、新しいアイデアやコンセプトの誕生を是非、ご自身の目で確かめてください。
</blockquote>]]>
      <![CDATA[

<h3>公式イベントサイト</h3>
<p>
<a href="http://www.fitc.ca/tokyo"  >FITC Tokyo 2010</a>
</p>


<h3>開催概要</h3>


<dl>
<dt>日時</dt>
<dd>2010年12月4日（土）9:30～18:00（18:30～ パーティ）</dd>
<dt>開催地</dt>
<dd>大崎ゲートシティホール（東京都品川区大崎1-11-2 ゲートシティ大崎 ウエストワター 地下1階）</dd>
<dt>主催</dt>
<dd>FITC / 株式会社ゼオ</dd>
<dt>受講料</dt>
<dd>（すべて税込み）<br />早期割引(2010年11月5日まで)　7,000円（一般） / 6,000円(学生)<br />通常料金(2010年11月6日～12月3日)　9,000円（一般） / 8,000円(学生)<br />※会場の規定により当日券の販売はございません。</dd>
</dl>
<p>
詳細は、<a href="http://www.fitc.ca/tokyo"  >公式イベントサイト</a>をごらんください。
</p>]]>
   </content>
</entry>
<entry>
   <title>[11/08]植木真に学ぶ 改正版JISの達成基準と実装方法</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/10/08161437.html" />
   <id>tag:f-site.org,2010://1.1725</id>
   
   <published>2010-10-08T07:14:37Z</published>
   <updated>2010-12-15T09:25:27Z</updated>
   
   <summary>Webアクセシビリティの新規格「JIS X 8341-3:2010」は、2004...</summary>
   <author>
      <name>SIHO</name>
      
   </author>
         <category term="イベント情報" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<blockquote>Webアクセシビリティの新規格「JIS X 8341-3:2010」は、2004年6月に制定されたWebアクセシビリティの日本工業規格「JIS X8341-3」が、W3C（World Wide Web Consortium）勧告となった「WCAG 2.0（Web Content Accessibility Guidelines 2.0）」をほぼそのまま採用し、2010年8月20日に公示されました。

<p>本イベントでは「WCAG 2.0」と「JIS X 8341-3:2010（改正版JIS）」両方のワーキンググループに参画され、ウェブアクセシビリティ基盤委員会（WAIC：Web Accessibility Infrastructure Committee）の副委員長兼実装ワーキンググループ主査でもある インフォアクシア 植木真氏をゲストに迎え、主にWebサイト運営者、Webコンテンツ制作者、Webアプリケーション開発者の方々を対象に「JIS X 8341-3:2010（改正版JIS）」の達成基準と実装方法について詳しく解説されます。</blockquote></p>]]>
      <![CDATA[<p>●イベントサイト<br />
　<a href="http://event.67.org/accessibility/">http://event.67.org/accessibility/</a></p>

<p>●概要<br />
　日時：11月8日（月）14:00 - 17:00（開場13:30）<br />
　定員：90名<br />
　料金：4,500円（税込み）<br />
　会場：東京・新宿「関東ITソフトウェア健保会館 Conference A」</p>

<p>●主催・お問い合わせ<br />
　株式会社ロクナナ・ロクナナワークショップ<br />
　〒150-0001東京都渋谷区神宮前1-1-12 #203<br />
　イベント運営事務局　担当：佐々木・上田<br />
　E-mail：<a href="mailto:workshop@67.org">workshop@67.org</a><br />
　Phone：03-3408-4605</p>]]>
   </content>
</entry>
<entry>
   <title>2010年11月セミナー受付開始</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/10/06185646.html" />
   <id>tag:f-site.org,2010://1.1728</id>
   
   <published>2010-10-06T09:56:46Z</published>
   <updated>2011-01-12T04:17:51Z</updated>
   
   <summary> 11/6（土）に行われるF-siteセミナーの参加受付を開始しました。 「イマ...</summary>
   <author>
      <name>沖 良矢</name>
      
   </author>
         <category term="お知らせ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>
11/6（土）に行われるF-siteセミナーの参加受付を開始しました。
</p>
<p>
「イマドキFlashの設計図」と題し、Flash制作における作り方について、デザイナ寄りからプログラマ寄りまでさまざまなアプローチをご紹介します。 
</p>]]>
      <![CDATA[<p>
定員に達しましたら締め切りますので、お早めにお申込ください。<br />
<a href="http://f-site.org/articles/2004/03/25003056.html"  >セミナー詳細</a>
</p>]]>
   </content>
</entry>
<entry>
   <title>Adobe Developer Centerに「ActionScript 3.0から見るFlash Professional CS5」英語版記事掲載</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/10/06135419.html" />
   <id>tag:f-site.org,2010://1.1727</id>
   
   <published>2010-10-06T04:54:19Z</published>
   <updated>2010-10-06T05:06:10Z</updated>
   
   <summary>日本のAdobe Developer Centerに寄稿した「ActionScr...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="サロン" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>日本のAdobe Developer Centerに寄稿した「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1010001.html" target="_blank">ActionScript 3.0から見るFlash Professional CS5</a>」の英語版記事が<a href="http://www.adobe.com/devnet/flash.html" target="_blank">米国Adobeサイト</a>に掲載されました。</p>]]>
      <![CDATA[<p>日本語版原稿の7項目を、それぞれ独立の記事として7本のシリーズになりました。</p>

<ol>
<li>「<a href="http://www.adobe.com/devnet/flash/articles/flcs5_features_tlf.html" target="_blank">Controlling the appearance of text elements with the Text Layout Framework</a>」</li>
<li>「<a href="http://www.adobe.com/devnet/flash/articles/flcs5_features_ik.html" target="_blank">Manipulating springs of an IK Bone for animations</a>」</li>
<li>「<a href="http://www.adobe.com/devnet/flash/articles/flcs5_features_code_snippets.html" target="_blank">Leveraging code snippets and using enhanced code hinting</a>」</li>
<li>「<a href="http://www.adobe.com/devnet/flash/articles/flcs5_features_vector_class.html" target="_blank">Dynamically drawing a vector instance that contains elements</a>」</li>
<li>「<a href="http://www.adobe.com/devnet/flash/articles/flcs5_features_microphone_event.html" target="_blank">Displaying the audio waveform captured from a microphone</a>」</li>
<li>「<a href="http://www.adobe.com/devnet/flash/articles/flcs5_features_multitouch_event.html" target="_blank">Deploying projects on devices with touch panels</a>」</li>
<li>「<a href="http://www.adobe.com/devnet/flash/articles/flcs5_features_uncaughterrorevents_class.html" target="_blank">Catching errors globally to facilitate troubleshooting</a>」</li>
</ol>]]>
   </content>
</entry>
<entry>
   <title>[AS3] インスタンスをドラッグして回すクラス定義</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/10/01180427.html" />
   <id>tag:f-site.org,2010://1.1726</id>
   
   <published>2010-10-01T09:04:27Z</published>
   <updated>2010-10-01T10:34:51Z</updated>
   
   <summary>             インスタンスをドラッグして回したり、マウスボタンを放し...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="サンプル" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<table>
  <tr>
    <td><img alt="インスタンスをドラッグして回す" src="http://f-site.org/FF1009011_001.gif" width="170" height="170" /></td>
    <td valign="top"><p>インスタンスをドラッグして回したり、マウスボタンを放して滑らせるアニメーション表現をクラス定義しました。[ライブラリ]のMovieClipシンボルに[クラス]として設定すれば、インスタンスのドラッグ&amp;ドロップでそのようなインタラクティブな動きをします。</p></td>
  </tr>
</table>]]>
      <![CDATA[<ol>
<li>ドラッグ&amp;ドロップするMovieClipシンボルを作成してタイムラインに置き、Flashムービー(FLA)ファイルを保存します(ファイル名は任意)。</li>
<li>ActionScript (AS)ファイル<a href="http://www.fumiononaka.com/Sample/DragRotater/DragRotater.as" target="_blank">DragRotater.as</a>をFLAファイルと同じ場所に保存します。</li>
<li>[ライブラリ]のシンボルを選んで[シンボルプロパティ]ダイアログボックスを開き([ライブラリ]パネルのオプションメニュー)、[クラス]に「DragRotater」を入力して、[OK]ボタンをクリックします(図001)。</li>
</ol>

<p><strong>図001■[シンボルプロパティ]ダイアログボックスで[クラス]を入力</strong><br>
<img alt="図001■[シンボルプロパティ]ダイアログボックスで[クラス]を入力" src="http://f-site.org/FF1009011_002.gif" width="595" height="365" />
</p>

<p>これで作業は終わりです。[ムービープレビュー]を確かめると、クラスDragRotaterを設定したインスタンスがドラッグで回転し、マウスボタンを放すと減速しながら滑っていきます。</p>

<p>クラスに定義したつぎのふたつのプロパティを設定することができます(図002)。</p>

<ol>
<li><strong>deceleration</strong>: 減速率を示し、0から1の間の値を指定します(値が小さいほど早く減速)。デフォルト値は0.8です。</li>
<li><strong>ratio</strong>: 回る勢いのつきやすさを示します(値が大きいほど回りやすい)。デフォルト値は0.02です。</li>
</ol>

<p><strong>図002■ふたつのプロパティで動きが変えられる</strong><br>
<img alt="図002■ふたつのプロパティで動きが変えられる" src="http://f-site.org/FF1009011_003.gif" width="405" height="135" /></p>

<p>スクリプトの中身は、「<a href="http://www.fumiononaka.com/TechNotes/Flash/FN1009003.html" target="_blank">インスタンスをドラッグで回して動かす</a>」に解説しました。要点がわかりやすいように、クラスでなくフレームアクションを基本にしています。つぎのふたつがおもな課題です。</p>

<ol>
<li>マウスクリックした点が中心になるようにインスタンスを回す</li>
<li>マウスポインタの動きをどのように回転の速さに反映させるか</li>
</ol>]]>
   </content>
</entry>
<entry>
   <title>Adobe Flash Player Team Blog「A Sneak Peek into Flash Player “Square”」(抄訳)</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/09/16174124.html" />
   <id>tag:f-site.org,2010://1.1724</id>
   
   <published>2010-09-16T08:41:24Z</published>
   <updated>2010-09-16T09:00:53Z</updated>
   
   <summary>64-bit対応のAdobe Flash Playerでコードネーム「Squar...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="業界ニュース" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>64-bit対応のAdobe Flash Playerでコードネーム「Square」のプレビュー版が<a href="http://labs.adobe.com/technologies/flashplayer10/" target="_blank">Adobe Labsで公開</a>されました。Internet Explorer 9ベータ版への対応が強化され、ネイティブ64-bitをサポートします。<a href="http://blogs.adobe.com/flashplayer/2010/09/flash-player-square.html" target="_blank">Flash Player Team Blogの記事</a>に紹介されている内容を簡単に抄訳します。</p>]]>
      <![CDATA[<blockquote><p>MicrosoftのInternet Explorerチームとの協力により、Flash Player「Square」は最新のInternet Explorerにおけるハードウェアアクセラレーションを用いた描画能力のサポートが強化されました。Internet Explorer 9ベータの新たな<a href="http://e-words.jp/w/GPU.html" target="_blank">GPU</a>サポートを利用して、快適なユーザーエクスペリエンスを提供します。Adobeの社内テストでは、Internet Explorer 9ベータ上のFlash Playerのパフォーマンスは、前バージョンから35%向上しました。もちろん、その比率はコンテンツによって変わるものの、ビットマップの重いコンテンツでとくに効果があります。transparentモード(wmode=”transparent”)で埋込まれたFlashコンテンツも、HTMLとFlashコンテンツを<a href="http://ja.wikipedia.org/wiki/オフロード_(コンピュータ用語)" target="_blank">オフロード</a>によりGPUで合成すれば処理が効率化されます。</p>

<p>ネイティブ64-bitのサポートは、ユーザーからの強い要望の声によるものです。今回は、WindowsおよびMac OSとともにLinux版のFlash Playerもプレビュー公開しました。64-bitブラウザを使っているなら、64-bit版Flash Playerをお試しください。これらの新バージョンは完全に動作し、すべてのコンテンツと互換性があります。</p></blockquote>

<p>なお、プレビュー版は、互換性を確かめるために公開されたものです。使用に当たっては、ご注意ください。<a href="https://bugs.adobe.com/flashplayer/" target="_blank">バグ報告の用サイト</a>(英文)も用意されています。</p>

<p>[関連記事] CNETJapan「<a href="http://japan.cnet.com/news/service/story/0,3800104747,20420134,00.htm" target="_blank">アドビ、64ビット対応の『Flash Player』プレビュー版をリリース</a>」</p>]]>
   </content>
</entry>
<entry>
   <title>ビデオで学ぶActionScript 3.0による3次元表現</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/09/14065848.html" />
   <id>tag:f-site.org,2010://1.1723</id>
   
   <published>2010-09-13T21:58:48Z</published>
   <updated>2010-09-13T22:07:45Z</updated>
   
   <summary>             ActionScript 3.0を使った3次元表現につ...</summary>
   <author>
      <name>野中 文雄</name>
      <uri>http://www.FumioNonaka.com</uri>
   </author>
         <category term="AS 3" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ActionScript" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="サロン" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="野中ゼミ" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<table>
  <tr>
    <td><img src="http://i1.ytimg.com/vi/8bOOdS5vdFk/default.jpg" /></td>
    <td valign="top"><p>ActionScript 3.0を使った3次元表現についてのビデオ解説が折に触れて公開され、ある程度数もまとまってきました。視聴しやすいように整理しておきます。</p></td>
  </tr>
</table>]]>
      <![CDATA[<ol>
  <li><a href="http://www.fumiononaka.com/Sample/67/FR100802.html" target="_blank"><strong>3D空間で回す</strong></a> vol.1 (9:13) / vol.2 (9:28) / vol3. (9:00) / vol.4 (9:27)<br />
(67WS「ActionScript 3.0による 三次元表現 in Apple Store, Ginza」)</li>

<p>Flash Player 10から備わった3次元表現の基礎を解説します。</p>

<p><li><strong><a href="http://tv.adobe.com/jp/watch/293/4380" target="_blank">消失点のコントロール</a></strong> (05:31)<br /><br />
(Adobe TV「3分でわかる! ACTIONSCRIPT 3.0 新機能」PART-6)</li></p>

<p>3次元空間における消失点のコントロールの仕方や注意点を紹介します。</p>

<p><li><strong><a href="http://tv.adobe.com/jp/watch/293/4414" target="_blank">Matrix3Dクラス I</a></strong> (04:08)<br /><br />
(Adobe TV「3分でわかる! ACTIONSCRIPT 3.0 新機能」PART-1)</li></p>

<p>Matrix3Dクラスを使った回転について紹介します。</p>

<p><li><strong><a href="http://tv.adobe.com/jp/watch/293/4413" target="_blank">Matrix3Dクラス II</a></strong> (04:53)<br /><br />
(Adobe TV「3分でわかる! ACTIONSCRIPT 3.0 新機能」PART-2)</li></p>

<p>Matrix3Dクラスを使ってxyの2軸で回転する処理について紹介します。</p>

<p><li><strong><a href="http://tv.adobe.com/jp/watch/293/4408" target="_blank">Vectorクラス</a></strong> (05:07)<br /><br />
(Adobe TV「3分でわかる! ACTIONSCRIPT 3.0 新機能」PART-3)</li></p>

<p>3次元空間の座標処理などに用いられ、いわば最適化された配列ともいえるVectorクラスについて紹介します。</p>

<p><li><strong><a href="http://tv.adobe.com/jp/watch/293/4406" target="_blank">Graphics.drawTriangles()メソッドの基礎 I</a></strong> (04:04)<br /><br />
(Adobe TV「3分でわかる! ACTIONSCRIPT 3.0 新機能」PART-4.1)</li></p>

<p>面を三角形に分けて変形する<em>Graphics.drawTriangles()</em>メソッドを紹介します(前編)。</p>

<p><li><strong><a href="http://tv.adobe.com/jp/watch/293/4405" target="_blank">Graphics.drawTriangles()メソッドの基礎 II</a></strong> (03:51)<br /><br />
(Adobe TV「3分でわかる! ACTIONSCRIPT 3.0 新機能」PART-4.2)</li></p>

<p>面を三角形に分けて変形する<em>Graphics.drawTriangles()</em>メソッドを紹介します(後編)。</p>

<p><li><strong><a href="http://tv.adobe.com/jp/watch/293/4397" target="_blank">Graphics.drawTriangles()メソッドの応用 I</a></strong> (03:15)<br /><br />
(Adobe TV「3分でわかる! ACTIONSCRIPT 3.0 新機能」PART-5.1)</li></p>

<p><em>Graphics.drawTriangles()</em>メソッドの応用と注意点を紹介します(前編)。</p>

<p><li><strong><a href="http://tv.adobe.com/jp/watch/293/4398" target="_blank">Graphics.drawTriangles()メソッドの応用 II</a></strong> (03:20)<br /><br />
(Adobe TV「3分でわかる! ACTIONSCRIPT 3.0 新機能」PART-5.2)</li></p>

<p><em>Graphics.drawTriangles()</em>メソッドの応用と注意点を紹介します(後編)。</p>

<p><li><strong><a href="http://tv.adobe.com/jp/watch/293/4382" target="_blank">Vector3Dクラス I</a></strong> (03:10)<br /><br />
(Adobe TV「3分でわかる! ACTIONSCRIPT 3.0 新機能」PART-7.1)</li></p>

<p>Vector3Dクラスを使用する際のポイントと注意点を紹介します(前編)。</p>

<p><li><strong><a href="http://tv.adobe.com/jp/watch/293/4383" target="_blank">Vector3Dクラス II</a></strong> (03:29)<br /><br />
(Adobe TV「3分でわかる! ACTIONSCRIPT 3.0 新機能」PART-7.2)</li></p>

<p>Vector3Dクラスを使用する際のポイントと注意点を紹介します(後編)。</p>

</ol>]]>
   </content>
</entry>
<entry>
   <title>2010.8.7 「タイムライン最強伝説」</title>
   <link rel="alternate" type="text/html" href="http://f-site.org/articles/2010/09/10202210.html" />
   <id>tag:f-site.org,2010://1.1722</id>
   
   <published>2010-09-10T11:22:10Z</published>
   <updated>2010-09-11T08:49:55Z</updated>
   
   <summary> demo1「CS5 ライトニングトークセッション」　F-siteスタッフ陣 d...</summary>
   <author>
      <name>道家 陽介</name>
      
   </author>
         <category term="レポート" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://f-site.org/">
      <![CDATA[<p>
<img src="http://f-site.org/articles/2010/08/201008_top.jpg" alt="" />
</p>
<p>
<a href="http://f-site.org/articles/2010/09/10202210.html#demo1"  >demo1「CS5 ライトニングトークセッション」</a>　<a href="http://f-site.org/"  >F-siteスタッフ陣</a><br />
<a href="http://f-site.org/articles/2010/09/10202210.html#demo2"  >demo2「アニメ塾-A.e.Suck編-」</a>　<a href="http://www.ae-suck.com/"  >A.e.Suck氏</a><br />
<a href="http://f-site.org/articles/2010/09/10202210.html#demo3"  >demo3「アニメ塾-ルンパロ編-」</a>　<a href="http://rumparo-tita.jp/"  >ルンパロ氏</a>
</p>
<p>
当日には、75人のご参加をいただきました。ありがとうございました！
</p>
<p>
セミナーへ参加した方のトラックバックはこちらの記事にお願いします。
</p>]]>
      <![CDATA[

<h3><a id="demo1"></a>demo1:「CS5 ライトニングトークセッション」</h3>
<p>
<em>講師：野中文雄氏、嶋田俊宏氏（面白法人カヤック）、SIHO氏（有限会社ビバマンボ）、森脇裕也氏</em>
</p>
<p>
<img src="http://f-site.org/articles/2010/08/201008_demo1_01.jpg" alt="" />
</p>
<p>
5月に発売されたFlashCS5の新機能や、制作現場におけるtipsなどを語っていただきました。
</p>


<h4>野中文雄さん</h4>
<p>
CS5におけるアクションパネルのコードヒント、また新機能であるTLFテキストについて解説していただきました。<br />
詳しい内容はこちらに公開されています。<br />
「コードヒントとimport宣言」<br />
<a href="http://f-site.org/articles/2010/05/22011806.htm"  >http://f-site.org/articles/2010/05/22011806.htm</a>l<br />
「TLFテキスト」<br />
<a href="http://www.adobe.com/jp/devnet/flash/articles/actionscript30_CS5.html#01"  >http://www.adobe.com/jp/devnet/flash/articles/actionscript30_CS5.html#01</a><br />
</p>
<p>
また、新機能に対応しているPlayerのバージョンは［ヘルプ］の「ランタイムバージョン」で確認することができます。<br />
「Flash CS5の新機能とPlayerのバージョン」<br />
<a href="http://f-site.org/articles/2010/05/24120136.html"  >http://f-site.org/articles/2010/05/24120136.html</a><br />
</p>
<p>
スクリプター向けの参考URLはコチラ<br />
「ActionScript3.0でFlash Professional CS5のText Layout Frameworkを使う」<br />
<a href="http://www.adobe.com/jp/devnet/flash/articles/actionscript30_cs5_tlf01.html"  >http://www.adobe.com/jp/devnet/flash/articles/actionscript30_cs5_tlf01.html</a><br />
「ActionScript3.0によるText Layout Frameworkを使ったリキッドレイアウト
の例」<br />
<a href="http://www.adobe.com/jp/devnet/flash/articles/actionscript30_cs5_tlf02.html"  >http://www.adobe.com/jp/devnet/flash/articles/actionscript30_cs5_tlf02.html</a><br />
</p>
<h4>嶋田俊宏さん（面白法人カヤック）</h4>
直感的に使うことが難しい３D変換ツールを直感的に使うコツを語っていただきました。<br />
<ul>
→それらのオブジェクトのグループはドラッグやコピペなどの直感的な操作ができる
<li>奥行きにあたるZ軸を数値で記入することでぴったり思い通りの位置にオブジェクトを配置させることがポイント<br /></li>
<li>グループの前後関係を変更するにはレイヤーを使うといい</li>
<li>ムービークリップにしておけばクラシックトゥイーンでカメラの視点が変わるドリーのようなアニメーションを作ることが出来る</li>
</ul>
<p>
またCS5からの新機能である「パターン描画ツール」のパーティクルシステムの使用例として
携帯ペット「<a href="http://wanco.kayac.jp"  >プリプリドッグワンコ</a>」がぷりぷりと落ちていくアニメーションを紹介していただきました。<br />
<img src="http://f-site.org/articles/2010/08/201008_demo1_02.jpg" alt="" />
</p>


<h4>SIHOさん（有限会社ビバマンボ）</h4>
<p>
TLFテキストを使った制作例をご紹介いただき、外部のxmlファイルを読み込む時に埋め込みフォントに関して気をつけるべき点を語っていただきました。<br />
</p>
<ul>
<li>外部swfに埋め込みフォントを用意し、インターフェイスの素材flaの中に使っているテキストにも同じ埋め込みフォントがある場合、読み込んだ時にどちらかがコンフリクトを起こして表示されないという事がCS4のときからあった<br /></li>
→インターフェイスの静止テキストを分解すると外部テキストを読み込むことが出来る<br />
（分解すると外部から読み込んだテキストよりも少しボヤけた感じになってしまうので、インターフェイスに使っている文字もすべてダイナミックフォントにするか画像にした方がはっきり表示されてよい）
<li>CS5からは内部fla（インターフェイス素材）のテキストに埋め込みフォントだけではなく静止テキストでも外部のフォントと同じものが含まれている場合、コンフリクトを起こして表示されなくなった<br /></li>
</ul>


<h4>森脇裕也さん </h4>
<p>
ゲームキャラクターの走る、戦うのような各パターンアニメをタイムラインで作り、タイムラインに並べ、適宜それらをASの制御によって選択して表示する方法をご自身の作例をもとにご紹介いただきました。<br />
</p>
<h5>ムービークリップの各フレームに各アニメパターンを配置する </h5>
<ul>
<li>スクリプト側でどのように制御させるかをグラフィック担当とプログラム担当の間できちんと共有しておく</li>
<img src="http://f-site.org/articles/2010/08/201008_demo1_03.jpg" alt="" />
<li>一度空白フレームを通って指示されたフレームに移動するようにすることで、元と同じパターンアニメを再生し直せる</li>
<li>フレーム内のアニメ用ムービークリップに決められた名前をつけておけばプログラム側はアニメ終了などを検知して動作できる（ここではインスタンス名を「cast」で統一）</li>
<li>上記の手法であればflashの各バージョンで使うことができ、また素材の閲覧、変更が容易といった利点がある</li>
</ul>
<h5>SWC書き出しをしてプログラム担当に渡す→プログラム担当はライブラリパス設定して利用 </h5>
<ul>
<li>パブリッシュ設定→Flash→「SWC書き出し」にチェック→パブリッシュ</li>
<li>コーディングとグラフィックの作業を分離できる、パブリッシュ速度が早いなどの利点がある<br /></li>
</ul>
<p>
以下より当日使用されたFLAファイルやサンプル等をダウンロードすることができます。<br />
『[Flash]フレームアニメとスクリプトの協調 - yprops.com/notes 』<br />
<a href="http://yprops.com/notes/2010/08/fsite-20100807.html"  >http://yprops.com/notes/2010/08/fsite-20100807.html</a>
</p>


<hr />
<h3><a id="demo2"></a>demo2:「アニメ塾-A.e.Suck編-」</h3>
<em>講師：A.e.Suck氏</em>
<img src="http://f-site.org/articles/2010/08/201008_demo2_01.jpg" alt="" />
<p>
Flashアニメ以前のアニメーターのお仕事について詳しくお話していただきました。
</p>


<h4>こんなアニメーターはいやだ</h4>
<ul>
<li>ライブラリにアイテムが無い</li>
<li>絵コンテと違う</li>
<li>打ち合わせ後消息を絶つ</li>
<li>etc...</li>
</ul>


<h4>アニメーターとは？</h4>
<img src="http://f-site.org/articles/2010/08/201008_demo2_02.jpg" alt="" />
<ul>
<li>TVアニメーションのフォーマットは、OP・CM・Aパート・アイキャッチ・CM・アイキャッチ・Bパート・CM・予告・EDという構成になっている。<br /></li>
<li>仕事は1パート単位(約12分)で進行する。</li>
<li>厳密にアニメーターという言葉はクレジットにでてこないのでEDをみてみよう。</li>
<li>OPでは作品全体のスタッフ、EDは各話のスタッフ</li>
<li>作画監督、原画、動画など</li>
<li>A.e.Suckというペンネームだめで本名の「深谷英作」でクレジットされていた</li>
</ul>


<h4>絵描き</h4>
<ul>
<li>原画マンと動画マンがいる</li>
<li>原画マンが書いた原画をもとに動画マンが動きをつけていく</li>
<li>作画作業は基本的に紙と鉛筆。デジタル作画はまだ少数。</li>
<li>後の工程がデジタルの場合はそれ向きの線を引かないといけないので一概にデジタル化が楽だというわけでもない。</li>
</ul>


<h4>原画以外のパート</h4>
<ul>
<li>作画監督(略して作監)は複数の原画マンの絵柄の違いをあわせてく役目。</li>
<li>何人もの原画をチマチマなおしていく地味な仕事でもある。</li>
<li>最近は過密スケジュールを鑑みて作監補佐をつけることが多い。</li>
<li>絵コンテ清書とは、昔の演出は絵が書けない人もめずらしくなく、それを必ず清書するひとが必要だった。1パート1~2日程度</li>
<li>版権イラストなどアニメのカットを使った商品などむけに作画する役</li>
<li>原画マンの仕事では、おもにレイアウトと原画の作画。カット単位で出来高でギャラが決まる</li>
<li>スケジュールの問題でステップにわけていることが多いがアニメーターから見ると作監で時間がかかると結局一緒だったりしてジレンマも多い。</li>
<li>作監と原画両方できると早くていいが実際なかなかそういうことは少ない</li>
<li>動画マンの仕事は作画枚数でギャラが決定することが多い。</li>
</ul>


<h4>アニメーターの必須スキル</h4>
<ul>
<li>まず動画でスキルをあげる</li>
<ul>
<li>月に動画1000枚でやっと原画にいける</li>
<li>A.e.suckさんの場合、大体２年ほどで昇格</li>
<li>丁寧さとスピードの兼ね合いで向き不向きはある</li>
</ul>
<li>画力はあって当然の世界</li>
<ul>
<li>うまいひとがこの業界では普通の人</li>
</ul>
<li>模写力は大事</li>
<li>出来高システムなのでスピードは重要</li>
<li>線のスキル</li>
<li>動かし方</li>
<li>集中力</li>
<li>体力</li>
<li>プロ意識やライバル意識も大切</li>
</ul>


<h4>師匠の教え</h4>
<ul>
<li>いかに動かすか</li>
<ul>
<li>服を動かすのではなく中の体(筋肉)を動かす</li>
<li>TVのフレームに写らない部分も大事(足元とか)</li>
</ul>
<li>消しゴムを使うな</li>
<ul>
<li>キレイな線を描くための鍛錬</li>
</ul>
<li>同じ質問を２度するな</li>
<ul>
<li>マルチポストすると教えがブレるのでよくない</li>
</ul>
<li>アニメを作ろうと思うな。フィルムを作ろうと思え。</li>
<li>B級映画を見ろ</li>
<ul>
<li>低予算映画のほうが面白く見せるアイディアが豊富で勉強になる</li>
</ul>
</ul>


<h4>いい原画マンとは</h4>
<ul>
<li>スケジュール確実</li>
<li>得意ジャンルがある</li>
<ul>
<li>仮にスケジュール落としがちでもこの人じゃないとという部分があれば仕事はくる</li>
</ul>
<li>手が早い</li>
<li>無難</li>
<ul>
<li>安定していれば特別すごくなくても信頼されるパターンがある</li>
</ul>
</ul>


<h4>アニメーターの参考書</h4>
<ul>
<li>基本は自分で学んで、見てもらうの繰り返しでしかない</li>
<li>まず本を読むとかして、くりかえし作ること</li>
</ul>


<h4>アニメーターの資材</h4>
<ul>
<li>動画用紙</li>
<li>レイアウト用紙</li>
<li>セル</li>
<li>修正用紙</li>
<li>タイムシート</li>
<li>鉛筆</li>
</ul>
<p>
レイアウト用紙には、標準フレームのほかに、撮影用のフレームやスキャン用のフレームが印刷されている。<br />
タイムシートは１枚6秒分で1秒あたり24マスあり、タイミングやカメラワークの指示を具体的に書き込む用紙
</p>


<h4>仕事形態</h4>
<ul>
<li>社員（給料）→たとえばスタジオジブリ</li>
<li>スタジオ所属</li>
<li>フリーグループ</li>
<li>フリー</li>
</ul>


<ul>
<li>出来高のスタジオ所属かフリーランスが多い</li>
<li>動画マンはカット単位で作業をする</li>
<li>まずたくさんのカットが積まれて、その中から選んで分担する</li>
<li>簡単で枚数が多いと儲かるがそれだとスキルがなかなか付かない</li>
<li>難しいものをやるとスキルは伸びるが時間がかかる(出来高に響く)→この兼ね合いが難しい</li>
</ul>


<ul>
<li>動画マンはよい原画と出会うことで原画から学ぶことができる</li>
<li>原画マンになるとシーン単位で任される。</li>
<li>出来の良い作品は作監がうまいのか原画がうまいのか視聴者にはわかりにくい。</li>
</ul>
<p>
当日のスライド＋アルファは<a href="http://www.ae-suck.com/amazing/archives/000453.html"  >オンラインにて公開されています</a>(http://www.ae-suck.com/amazing/archives/000453.html)。
</p>


<hr />


<h3><a id="demo3"></a>demo3:「アニメ塾-ルンパロ編-」 </h3>
<p>
<em>講師：ルンパロ・チータ氏</em>
</p>
<p>
<img src="http://f-site.org/articles/2010/08/201008_demo3_01.jpg" alt="" />
</p>
<p>
イラストレーター・アニメーション作家であるルンパロさんに、アニメーション制作方法やポリシーとされていることを語っていただきました。
</p>


<h4>アニメーション制作方法</h4>
<p>
現在企画をすすめられているものについて、まずデモを見せていただきました。<br />
そして、そのデモで実際に使われているFlashファイルを開きながら、どういった制作方法をされているか説明がされました。
</p>


<ul>
<li>コピー用紙にまずラフを書く</li>
<li>それをスキャンしてラフの状態でアニメーションを作る</li>
<li>Flashで直接色づけをする</li>
<li>ムービークリップはほとんど使わずにグラフィックシンボルをタイムライン上に並べてアニメーションさせる</li>
</ul>
<p>
大量のレイヤーとキーフレームがあって、その量に圧倒されました。
</p>
<p>
その他アニメーション制作について
</p>


<ul>
<li>ライブラリに大量のグラフィックシンボルができる</li>
<li>木の塗りは３段階ぐらい</li>
<li>3Dソフトであれば、多人数の制作に向いていると思うが、手描きでやることでそこに個性がでると思っている</li>
<li>目パチ。画面に出るのが一瞬だったとしても、そこをこだわることが大事だと思っている</li>
<li>商業アニメーションの制作現場の経験がないため、自己流で制作している</li>
</ul>


<h4>制作について思っていること </h4>
また、こんなことも話されていました。


<ul>
<li>技術的な理屈ではなく、出来上がったものが良ければそれが良いものだと思っている</li>
<li>普段からテレビ番組をみて動きを研究している</li>
<li>その場合、単なるコピーになるのではなく自分がそこからどう作りたいのかを考えている</li>
<li>技術取得が目的ではない。これは手段であって目的ではない。ネット上では技術が優先されている風潮もあるので流されやすいと思う。</li>
<li>すごい技術ができたとしても、それだけではだめで、自分がそれを使って何をしたいのかが大事</li>
</ul>




<h4>のすふぇらとぅ「海からの使者」について </h4>
<p>
２０００年７月に発表したGIFアニメ作品「機動戦士のんちゃん」がインターネット上で話題になりました。
のんちゃんはすべて「のすふぇらとぅ」さん個人で制作されている作品群です。
ルンパロさんは、その最新作「<a href="http://umikara.jp/index.html"  >海からの使者</a>」のコーディネータを務められています。
</p>


<ul>
<li>6年かかって8分のムービーを制作</li>
<li><a href="http://takekuma.cocolog-nifty.com/"  >竹熊事務所</a>からDVDを発売する</li>
<li><a href="http://homepage1.nifty.com/tollywood/2010/umikara.html"  >下北沢トリウッド</a>で2010.8.21（土）より劇場公開</li>
</ul>


<hr />
<h3>じゃんけん大会</h3>
今回も関係者、参加者の皆様からプレゼントをご提供いただきました。たくさんの賞品、ありがとうございました。


<h4>オーム社様より</h4>
<ul>
<li>『<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274066878/"  >FLASHアニメーション制作バイブル</a>』5冊</li>
</ul>


<h4>JaGraプロフェッショナルDTP&amp;Webスクール（アドビ認定トレーニングセンター）様より</h4>
<ul>
<li>『<a href="http://www.jagra.or.jp/school/index.html"  >3万円以下の講座受講権</a>』</li>
</ul>


<h4>大重 美幸 様より</h4>
<ul>
<li>『<a href="http://www.amazon.co.jp/dp/4881667432/"  >詳細！Progression 4 Flashフレームワーク入門ノート</a>』</li>
</ul>
<hr />
<h4>二次会</h4>
今回は新宿の「石狩川」にて行われました。


<h4>レポート作成</h4>
前田タスク/藤村賢志/道家陽介
<h4>写真</h4>
廣畑大雅/甲斐真里<br />
（敬称略）]]>
   </content>
</entry>

</feed>

