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

<channel>
	<title>TONPOOBLOG &#187; flash</title>
	<atom:link href="http://www.tonpoo.com/blog/category/flash/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tonpoo.com/blog</link>
	<description>神宮前にあるWEB制作事務所「株式会社ブリコルール（bricoleur inc.）」に所属しているFlash（ActionScript）開発＆WEB制作プロジェクト「Tonpoo.com」のブログです。</description>
	<lastBuildDate>Tue, 27 Jul 2010 12:20:08 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tonpoo.com/blog/category/flash/feed/" />
		<item>
		<title>FlashDevelop3.1.1+FlashIDEでプロファイラは使えるのか？</title>
		<link>http://www.tonpoo.com/blog/2010/05/flashdevelop3-1-1-flashide/</link>
		<comments>http://www.tonpoo.com/blog/2010/05/flashdevelop3-1-1-flashide/#comments</comments>
		<pubDate>Wed, 12 May 2010 09:55:47 +0000</pubDate>
		<dc:creator>tonpoo</dc:creator>
				<category><![CDATA[flashdevelop]]></category>

		<guid isPermaLink="false">http://www.tonpoo.com/blog/?p=1075</guid>
		<description><![CDATA[昨日は第35回Flash OOP 勉強会『Flash OOP presents／Flash開発環境自慢大会！』に参加。そこでFlashDevelop担当の馬鹿全さんが紹介してくれた機能のうち、魅力的だったもののひとつがプロファイラとデバッガ。もっとも、デバッガについては3.2.*から正式に実装されるということだったので、とりあえずはプロファイラから使ってみよう！・・・と思ったのはいいものの、FlashDevelop + FlexSDKじゃなくて、FlashDevelop + FlashIDEの組み合わせで果たして使えるのか？図々しくも馬鹿全さん本人に質問したところ「中を見る限りではFlexSDK側だった気がします」との回答が。むむ、それはちと寂しい・・・。ただ、馬鹿全さんも「実はまだ僕も試していません」とのことだったので、とりあえず試してみました。 まず、自分の環境はまだFlashDevelop3.1.0だったので、これを3.1.1にバージョンアップ。でもって起動すると、憧れの（？）プロファイラパネルが出現！まあでもパネルが出ただけで喜んではいけない。プロファイラパネルの目覚まし時計アイコンをクリックしてプロファイラを開始。次に通常通りにIDE（Flash CS3）の方でflaファイルを開き、FlashDevelopではプロジェクトファイルを開き、FlashDevelop側からプロジェクトをテスト！すると・・・ おお、動いとる！ というわけで、どうやら全く問題なくプロファイラが使えるようです。すばらしい！ と思って安心して、しばらくしてからもう一度やってみると・・・動かない。 何故？と思いいろいろ試してみたのですが、どうも私の環境では まずFlashDevelopを起動する。 プロファイラパネルの「プロファイラを開始」ボタン（目覚まし時計のアイコン）をクリックしてプロファイラを開始しておく。 FlashIDEを起動する（この際、通常のFlashIDE起動より若干時間がかかる）。 flaファイルを開いてテスト（パブリッシュプレビュー）を行う。 ・・・という順番で作業を行った場合にプロファイラが作動しました。 うーん、なんなんでしょうね。FlashIDE側の設定か、あるいはFlashDevelop側の設定か、それとも他の何かか・・・。まあ、いずれにせよ、なんとかプロファイラが使えそうなので、しばらくこれで様子見てみます。 追記： twitterでの馬鹿全さんやflabakaさんの発言などによると、どうも特に起動順とか関係なしにフツーに使えるらしい。むー、ウチの環境固有の問題ですかね・・・。 flabaka &#8211; FlashDevelop3.1.1のプロファイラを使ってみる 時間のあるときに別のマシンでも試してみます。]]></description>
			<content:encoded><![CDATA[<p>昨日は<a href="http://www.flashoop.jp/2010/04/oop-study-035/" target="_blank">第35回Flash OOP 勉強会『Flash OOP presents／Flash開発環境自慢大会！』</a>に参加。そこでFlashDevelop担当の<a href="http://blog.bk-zen.com/" target="_blank">馬鹿全さん</a>が紹介してくれた機能のうち、魅力的だったもののひとつが<strong>プロファイラ</strong>と<strong>デバッガ</strong>。もっとも、デバッガについては3.2.*から正式に実装されるということだったので、とりあえずはプロファイラから使ってみよう！・・・と思ったのはいいものの、FlashDevelop + FlexSDKじゃなくて、<strong>FlashDevelop + FlashIDE</strong>の組み合わせで果たして使えるのか？図々しくも馬鹿全さん本人に質問したところ<strong>「中を見る限りではFlexSDK側だった気がします」</strong>との回答が。むむ、それはちと寂しい・・・。ただ、馬鹿全さんも「実はまだ僕も試していません」とのことだったので、とりあえず試してみました。</p>
<p>まず、自分の環境はまだFlashDevelop3.1.0だったので、これを3.1.1にバージョンアップ。でもって起動すると、憧れの（？）<strong>プロファイラパネルが出現！</strong>まあでもパネルが出ただけで喜んではいけない。プロファイラパネルの目覚まし時計アイコンをクリックしてプロファイラを開始。次に通常通りにIDE（Flash CS3）の方でflaファイルを開き、FlashDevelopではプロジェクトファイルを開き、FlashDevelop側からプロジェクトをテスト！すると・・・<br />
<img src="http://www.tonpoo.com/blog/wp-content/uploads/2010/05/ss.jpg" alt="ss" title="ss" width="400" height="408" class="alignnone size-full wp-image-1082" /></p>
<p><strong style="font-size:20px;font-weight:nold;color:#E25814">おお、動いとる！</strong><br />
というわけで、どうやら全く問題なくプロファイラが使えるようです。すばらしい！</p>
<p>と思って安心して、しばらくしてからもう一度やってみると・・・<strong>動かない。</strong></p>
<p>何故？と思いいろいろ試してみたのですが、どうも私の環境では</p>
<ol style="border:1px inset #CCCCCC;background-color:#EFEFEF;">
<li><strong>まずFlashDevelopを起動</strong>する。
	</li>
<li>プロファイラパネルの「プロファイラを開始」ボタン（目覚まし時計のアイコン）をクリックして<strong>プロファイラを開始</strong>しておく。</li>
<li><strong>FlashIDEを起動</strong>する（この際、通常のFlashIDE起動より若干時間がかかる）。</li>
<li>flaファイルを開いてテスト（パブリッシュプレビュー）を行う。</li>
</ol>
<p>・・・という順番で作業を行った場合にプロファイラが作動しました。</p>
<p>うーん、なんなんでしょうね。FlashIDE側の設定か、あるいはFlashDevelop側の設定か、それとも他の何かか・・・。まあ、いずれにせよ、なんとかプロファイラが使えそうなので、しばらくこれで様子見てみます。</p>
<h3>追記：</h3>
<p>twitterでの馬鹿全さんやflabakaさんの発言などによると、どうも特に起動順とか関係なしにフツーに使えるらしい。むー、ウチの環境固有の問題ですかね・・・。</p>
<p><strong><a href="http://flabaka.com/blog/?p=2428" target="_blank">flabaka &#8211; FlashDevelop3.1.1のプロファイラを使ってみる</a></strong></p>
<p>時間のあるときに別のマシンでも試してみます。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tonpoo.com/blog/2010/05/flashdevelop3-1-1-flashide/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tonpoo.com/blog/2010/05/flashdevelop3-1-1-flashide/" />
	</item>
		<item>
		<title>AlivePDFを使ってSWFからPDF出力</title>
		<link>http://www.tonpoo.com/blog/2010/05/alivepdf/</link>
		<comments>http://www.tonpoo.com/blog/2010/05/alivepdf/#comments</comments>
		<pubDate>Mon, 10 May 2010 09:48:58 +0000</pubDate>
		<dc:creator>tonpoo</dc:creator>
				<category><![CDATA[actionscript3]]></category>
		<category><![CDATA[alivepdf]]></category>

		<guid isPermaLink="false">http://www.tonpoo.com/blog/?p=1061</guid>
		<description><![CDATA[SWFから動的にPDFファイルを生成するためのライブラリであるAlivePDFをちょっと使ってみました。 alivepdf &#8211; Project Hosting on Google Code AIRなら単体でのPDF出力も可能なようですが、SWFファイルからだと単体では無理で、サーバー側にファイル出力用（？）のphpプログラムを設置する必要があるようです。ただ、そのphpプログラムも提供されていたので、とりあえず単純なプログラムを組んで試してみました。 試しに組んでみたファイルのドキュメントクラスは以下の通り。 package { import flash.display.MovieClip; import flash.events.MouseEvent; import org.alivepdf.colors.RGBColor; import org.alivepdf.display.Display; import org.alivepdf.fonts.CoreFont; import org.alivepdf.fonts.FontFamily; import org.alivepdf.fonts.Style; import org.alivepdf.images.ImageFormat; import org.alivepdf.layout.Layout; import org.alivepdf.layout.Orientation; import org.alivepdf.layout.Size; import org.alivepdf.layout.Unit; import org.alivepdf.pdf.PDF; import org.alivepdf.saving.Download; import org.alivepdf.saving.Method; import utils.Utils; /** * ... * @author bricoleur.inc / Tonpoo.com */ public final [...]]]></description>
			<content:encoded><![CDATA[<p>SWFから動的にPDFファイルを生成するためのライブラリであるAlivePDFをちょっと使ってみました。</p>
<p><strong><a href="http://code.google.com/p/alivepdf/" target="_blank">alivepdf &#8211; Project Hosting on Google Code</a></strong></p>
<p>AIRなら単体でのPDF出力も可能なようですが、SWFファイルからだと単体では無理で、サーバー側にファイル出力用（？）のphpプログラムを設置する必要があるようです。ただ、そのphpプログラムも提供されていたので、とりあえず単純なプログラムを組んで試してみました。<br />
<span id="more-1061"></span></p>
<p>試しに組んでみたファイルのドキュメントクラスは以下の通り。</p>
<pre class="brush: as3;">package  {
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
	import org.alivepdf.colors.RGBColor;
	import org.alivepdf.display.Display;
	import org.alivepdf.fonts.CoreFont;
	import org.alivepdf.fonts.FontFamily;
	import org.alivepdf.fonts.Style;
	import org.alivepdf.images.ImageFormat;
	import org.alivepdf.layout.Layout;
	import org.alivepdf.layout.Orientation;
	import org.alivepdf.layout.Size;
	import org.alivepdf.layout.Unit;
	import org.alivepdf.pdf.PDF;
	import org.alivepdf.saving.Download;
	import org.alivepdf.saving.Method;
	import utils.Utils;

	/**
	 * ...
	 * @author bricoleur.inc / Tonpoo.com
	 */
	public final class AlivePDFSample extends MovieClip{

		public function AlivePDFSample() {
			this.stage.addEventListener(MouseEvent.MOUSE_DOWN, onClick, false, 0, true);
		}
		private function onClick(e:MouseEvent):void {
			//PDFインスタンスを生成
			var myPDF:PDF = new PDF(Orientation.PORTRAIT, Unit.MM, Size.A4);
			//PDFの表示モードを指定
			myPDF.setDisplayMode(Display.FULL_PAGE, Layout.SINGLE_PAGE);
			//PDFのページを追加
			myPDF.addPage();

			//文字色を設定
			myPDF.textStyle ( new RGBColor ( 0xFF0000 ) );
			//フォントサイズを指定
			myPDF.setFontSize ( 18 );
			//ページの位置（？）を指定
			myPDF.setXY( 10, 40 );
			//マルチセルの追加
			myPDF.addMultiCell ( 300, 1, &quot;This is my PDF Headline&quot; );

			//PDFの出力
			myPDF.save(Method.REMOTE, &quot;http://www.tonpoo.com/_test/create.php&quot;, Download.ATTACHMENT, &quot;sample.pdf&quot;);
		}
	}
}</pre>
<h3>PDFインスタンスを生成</h3>
<pre class="brush: as3;">//PDFインスタンスを生成
var myPDF:PDF = new PDF(Orientation.PORTRAIT, Unit.MM, Size.A4);</pre>
<p>まずはnew演算子でPDFインスタンスを生成。引数には「印刷方向」「単位」「印刷サイズ」「印刷角度」を指定できます。何も指定しなくてもいいようですが、サンプルでは「印刷角度」以外を指定してます。</p>
<dl>
<dt>印刷方向</dt>
<dd>
<ul>
<li><strong>Orientation.LANDSCAPE</strong>：横向き</li>
<li><strong>Orientation.PORTRAIT</strong>：縦向き</li>
</ul>
</dd>
<dt>単位</dt>
<dd>
<ul>
<li><strong>Unit.CM</strong>：センチメートル</li>
<li><strong>Unit.INCHES</strong>：インチ</li>
<li><strong>Unit.MM</strong>：ミリメートル</li>
<li><strong>Unit.POINT</strong>：ポイント</li>
</ul>
</dd>
<dt>印刷サイズ</dt>
<dd>
<ul>
<li><strong>Size.A3</strong>：A3</li>
<li><strong>Size.A4</strong>：A4</li>
<li><strong>Size.A5</strong>：A5</li>
<li><strong>Size.LEGAL</strong>：リーガル</li>
<li><strong>Size.LETTER</strong>：レター</li>
<li><strong>Size.TABLOID</strong>：タブロイド</li>
</ul>
</dd>
</dl>
<p>「印刷サイズ」でA4やA5の他にレターやリーガルがあるあたりは欧米の紙サイズが基準になってるためですね。B4やB5など上記に無いサイズを指定する場合は・・・どうしたらいいんでしょ。</p>
<h3>PDFの表示モードを指定</h3>
<pre class="brush: as3;">//PDFの表示モードを指定
myPDF.setDisplayMode(Display.FULL_PAGE, Layout.SINGLE_PAGE);</pre>
<p>次に出力したPDFファイルを開いたときの表示モードを<strong>PDF.setDisplayMode</strong>で指定。引数には「ズーム」「レイアウト」「モード」「拡大率」を指定できます（サンプルでは「ズーム」と「レイアウト」のみ指定）。</p>
<dl>
<dt>ズーム</dt>
<dd>
<ul>
<li><strong>Display.DEFAULT</strong>：デフォルト</li>
<li><strong>Display.FULL_PAGE</strong>：ページ全体を表示</li>
<li><strong>Display.FULL_WIDTH</strong>：ページ幅を基準に表示</li>
<li><strong>Display.REAL</strong>：よくわからない。100%表示ってこと？</li>
</ul>
</dd>
<dt>レイアウト</dt>
<dd><strong>Layout.SINGLE_PAGE</strong>が「単一ページ」のことだろうと思うんですが、他の値（<strong>Layout.ONE_COLUMN / Layout.TWO_COLUMN_LEFT / Layout.TWO_COLUMN_RIGHT / Layout.TWO_COLUMN_RIGHT / Layout.TWO_PAGE_LEFT</strong>）については試してないのでよく分かりません。おそらく複数ページ同時表示とかだと思うんですが・・・。</dd>
<dt>拡大率</dt>
<dd>数値で拡大率を指定できるようです。</dd>
</dl>
<h3>PDFのページを追加</h3>
<pre class="brush: as3;">//PDFのページを追加
myPDF.addPage();</pre>
<p>次に、<strong>PDF.addPage()</strong>メソッドを使ってページを追加します。単純にこのaddPageメソッドを例えば10回繰り返すと、空のページ10ページで構成されるPDFファイルができます。</p>
<h3>テキストの追加</h3>
<pre class="brush: as3;">//文字色を設定
myPDF.textStyle ( new RGBColor ( 0xFF0000 ) );
//フォントサイズを指定
myPDF.setFontSize ( 18 );
//ページの位置（？）を指定
myPDF.setXY( 10, 40 );
//マルチセルの追加
myPDF.addMultiCell ( 300, 1, &quot;This is my PDF Headline&quot; );</pre>
<p>まずは<strong>PDF.textStyle</strong>メソッドで文字色を指定。引数には色指定の他にも下記のオプションが指定できますが、今回は割愛。</p>
<dl>
<dt>文字色</dt>
<dd><strong>colors.IColor</strong>クラスというのがあって、そのクラスオブジェクトを指定するようです。とりあえずサンプルに従って<strong>colors.RGBColor</strong>インスタンスを指定してみました。</dd>
<dt>透過率</dt>
<dd>0～1の数値（Number）で文字の透過率を指定できます。</dd>
<dt>レンダリングモード</dt>
<dd>整数値（int）を指定する事でテキストレンダリングモードを指定できるそうですが、なんのことやら・・・。</dd>
<dt>単語間スペース</dt>
<dd>数値（Number）で単語間のスペースの値を指定できます。</dd>
<dt>文字間スペース</dt>
<dd>数値（Number）で文字間のスペースの値を指定できます。</dd>
<dt>スケール</dt>
<dd>数値（Number）で、Text scalingが指定できます。Text scalingって何でしょう・・・</dd>
<dt>行間</dt>
<dd>数値（Number）で行間を指定できます。</dd>
</dl>
<p>次に<strong>PDF.setFontSize</strong>メソッドでフォントサイズを設定します。引数には整数値（int）が入ります。</p>
<p>次に<strong>PDF.setXY</strong>メソッドでページ内のX,Y位置を指定します。これって、要はこの後に配置するマルチセルの配置位置、って認識でいいんですかね・・・。</p>
<p>でもってその後に<strong>PDF.addMultiCell</strong>メソッドでテキストを含むセルを配置します。まだよくわかってないんですが、どうやらこの「<strong>セル</strong>」というのがPDFのページ内にいろいろ配置する単位のような感じなんですかね。引数には「幅」「高さ」「テキスト」「ボーダー」「横揃え」「塗り（？）」を指定できるようです。</p>
<h3>PDFの出力</h3>
<pre class="brush: as3;">//PDFの出力
myPDF.save(Method.REMOTE, &quot;http://www.tonpoo.com/xxxxxxxxx/create.php&quot;, Download.ATTACHMENT, &quot;sample.pdf&quot;);</pre>
<p>最後に、<strong>PDF.save</strong>メソッドを使って内容を出力します。引数に指定できるのは「データ送信形式」「送信先URL」「ダウンロード形式」「ファイル名」「表示フレーム名」です。</p>
<dl>
<dt>データ送信形式</dt>
<dd>サーバー側にデータを送信してPDFを生成する場合は<strong>Method.REMOTE</strong>、AIRを使った場合などでローカル側のみでPDFを生成する場合は<strong>Method.LOCAL</strong>を指定するようです。</dd>
<dt>送信先URL</dt>
<dd>Method.REMOTEの場合に、送信先のphpファイルのURLをここで指定します。</dd>
<dt>ダウンロード形式</dt>
<dd>PDFをブラウザ内で表示する場合は<strong>Download.INLINE</strong>、保存ダイアログを出して保存させる場合は<strong>Download.ATTACHMENT</strong>を指定します。</dd>
<dt>ファイル名</dt>
<dd>pdfファイルのファイル名を指定します。</dd>
<dt>表示フレーム名</dt>
<dd>フレーム内で展開されているコンテンツの場合に、PDFを開く先のフレーム名を指定する、ようです。</dd>
</dl>
<p>ちなみにサーバー側に設置するphp（create.php）のサンプルファイルは、前バージョンのAlivePDFのソースコード一式の中に入っていたものを流用しました。</p>
<pre class="brush: php;">&lt;?php

$method = $_GET['method'];
$name = $_GET['name'];

if ( isset ( $GLOBALS[&quot;HTTP_RAW_POST_DATA&quot;] )) {

	// get bytearray
	$pdf = $GLOBALS[&quot;HTTP_RAW_POST_DATA&quot;];

	// add headers for download dialog-box
	header('Content-Type: application/pdf');
	header('Content-Length: '.strlen($pdf));
	header('Content-disposition:'.$method.'; filename=&quot;'.$name.'&quot;');
	echo $pdf;

}  else echo 'An error occured.';

?&gt;</pre>
<p>とりあえず実際にアップして確認した所、PDFファイルが生成されてダウンロードできることを確認できました。次は任意のMovieClipの内容などをそのまま出力する方法とかですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tonpoo.com/blog/2010/05/alivepdf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tonpoo.com/blog/2010/05/alivepdf/" />
	</item>
		<item>
		<title>Jobs対Flashの戦いにOperaが参戦とな</title>
		<link>http://www.tonpoo.com/blog/2010/05/jobs-flash-opera/</link>
		<comments>http://www.tonpoo.com/blog/2010/05/jobs-flash-opera/#comments</comments>
		<pubDate>Fri, 07 May 2010 04:14:32 +0000</pubDate>
		<dc:creator>tonpoo</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[topics]]></category>
		<category><![CDATA[translation]]></category>

		<guid isPermaLink="false">http://www.tonpoo.com/blog/?p=1050</guid>
		<description><![CDATA[TechRadarに、Apple（ジョブス）対Adobe（Flash）の論争にOperaが参戦したという記事が掲載されました。Operaのプロダクトアナリストの人にインタビューした内容ということですが、簡単に和訳してみました。いつも通り（？）、適当訳なので意訳・誤訳が満載です。正確な内容は元記事を当たってみてください。 Opera joins in Jobs v Flash argument &#124; News &#124; TechRadar UK 以下、和訳文です。「卵が焼ける」とはずいぶんですね・・・。 ジョブス対Flashの論争にOperaが参戦 今はまだ重要だが、Adobeは早く変化しなければならない By Patrick Goss Flashを巡る論争にOperaが参戦した。同社がTechRaderに語ったところによると、現時点ではFlashのサポートを続けるものの、常に攻撃にさらされることを回避したいのならば、Adobe社はウェブ標準の採用を始めなければならないという（※1）。 ブラウザ業界におけるOperaの影響力が増していることは、iPhone向けOperaブラウザが大々的に取り上げられた事に現れている。同社がApple社の事前審査を通過したということでtech worldに衝撃を与えた一方で、Adobe社はスティーブ・ジョブスからの攻撃を受けることになった。 Opera社のプロダクトアナリストのPhillip Grønvold氏によると、Flashのサポートは現時点では非常に重要であるが、HTML5（の策定）が近づくにつれて時代は急速に変化しているという。 Flashへの依存 「今日のインターネット上のコンテンツはFlashに依存している」Grønvold氏は語る。「Flashを抜きにして今日のインターネットは成り立ちません。」 「我々はユーザーに対してベストなインターネット体験の提供を常に心がけています。だからFlashが必要なのです。そこを避けるわけにはいきません。」 「しかしOpera社ではオープンなウェブ標準こそウェブの未来だと考えています。そして、Flashはオープンなウェブ標準テクノロジーではありません。」 「Flashには（Microsoftの）Silverlightなどと同じように、特にダイナミックなコンテンツに使うという用途が現在もあり、また今後もあり続けるでしょう。」 「しかし動画再生コンテナとしてのFlashはCPU負荷やWiFiバッテリー消費などを考えるとほとんど意味がありません。Flashを再生中のデバイスでは卵が焼けるほどに熱を持ちます。」 変化が必要 Grønvold氏は、Adobeは昨今のPR災害、すなわちジョブスがAdobeに対して行ったいつになく冗長な非難（※2）を回避したいのなら、ウェブのオープン化の採用に向けた動きを早めなければならないと信じている。 「様々な理由から、それ（※3）はまだ現在のウェブの基礎的な構造に組み込まれてはいません。そして、Flashは自分自身がウェブの将来やオープンなウェブ標準という枠組みの中に組み込まれる事を必要としていません。Flashのテクノロジーは、オープンなウェブ標準という流れが広がるに従ってあらゆる面から常に攻撃にさらされることになるでしょう。」とGrønvold氏は語る。 「というのは、徐々に我々は（ウェブの）canvasのクオリティを上げつつあり、そのcanvasを利用するためのツールセットも用意する予定だからです（※4）。しかし、この先18ヶ月程度の見通しで言うならば、Flashが消える事はなく、重要な位置を保つでしょう。」 Opera社からの辛辣な非難こそなかったものの、ウェブ業界の巨人が、Appleという権力から積極的にAdobeを擁護するつもりがないということが明らかになった。 ※1 原文ではthe companyという語が、ある箇所ではOpera社を、別の箇所ではAdobe社を指しているように思われたので、話が通るように意訳してしまいました。もしかして間違ってるかもしれません。 ※2 原文ではもちろんジョブスの文章の原文にリンクが貼られていますが、こちらではIT翻訳者さんの翻訳記事にリンクを貼らせて頂きました。 ※3 HTML5のことですかね・・・？ ※4 HTML5のcanvasのことですかね・・・？ 追記 engadgetさんがこの件についてもっと的確な訳文とともに記事にしてくれました。 Operaもひと言：「Flashは現時点で不可欠。タマゴも焼ける」]]></description>
			<content:encoded><![CDATA[<p>TechRadarに、Apple（ジョブス）対Adobe（Flash）の論争にOperaが参戦したという記事が掲載されました。Operaのプロダクトアナリストの人にインタビューした内容ということですが、簡単に和訳してみました。いつも通り（？）、適当訳なので意訳・誤訳が満載です。正確な内容は元記事を当たってみてください。</p>
<p><strong><a href="http://www.techradar.com/news/internet/opera-joins-in-jobs-v-flash-argument-687597" target="_blank">Opera joins in Jobs v Flash argument | News | TechRadar UK</a></strong></p>
<p>以下、和訳文です。「卵が焼ける」とはずいぶんですね・・・。</p>
<p><span id="more-1050"></span></p>
<blockquote>
<h2>ジョブス対Flashの論争にOperaが参戦</h2>
<h3>今はまだ重要だが、Adobeは早く変化しなければならない</h3>
<p>By Patrick Goss</p>
<p>Flashを巡る論争にOperaが参戦した。同社がTechRaderに語ったところによると、現時点ではFlashのサポートを続けるものの、常に攻撃にさらされることを回避したいのならば、Adobe社はウェブ標準の採用を始めなければならないという（※1）。</p>
<p>ブラウザ業界におけるOperaの影響力が増していることは、iPhone向けOperaブラウザが大々的に取り上げられた事に現れている。同社がApple社の事前審査を通過したということでtech worldに衝撃を与えた一方で、Adobe社は<a href="http://www.techradar.com/news/computing/jobs-launches-devastating-attack-on-flash-686359" target="_blank">スティーブ・ジョブスからの攻撃を受ける</a>ことになった。</p>
<p>Opera社のプロダクトアナリストのPhillip Grønvold氏によると、Flashのサポートは現時点では非常に重要であるが、HTML5（の策定）が近づくにつれて時代は急速に変化しているという。</p>
<h3>Flashへの依存</h3>
<p>「今日のインターネット上のコンテンツはFlashに依存している」Grønvold氏は語る。「Flashを抜きにして今日のインターネットは成り立ちません。」<br />
「我々はユーザーに対してベストなインターネット体験の提供を常に心がけています。だからFlashが必要なのです。そこを避けるわけにはいきません。」<br />
「しかしOpera社ではオープンなウェブ標準こそウェブの未来だと考えています。そして、Flashはオープンなウェブ標準テクノロジーではありません。」<br />
「Flashには（Microsoftの）Silverlightなどと同じように、特にダイナミックなコンテンツに使うという用途が現在もあり、また今後もあり続けるでしょう。」<br />
「しかし動画再生コンテナとしてのFlashはCPU負荷やWiFiバッテリー消費などを考えるとほとんど意味がありません。Flashを再生中のデバイスでは卵が焼けるほどに熱を持ちます。」</p>
<h3>変化が必要</h3>
<p>Grønvold氏は、Adobeは昨今のPR災害、すなわち<a href="http://blog.nishinos.com/archives/2626681.html" target="_blank">ジョブスがAdobeに対して行ったいつになく冗長な非難</a>（※2）を回避したいのなら、ウェブのオープン化の採用に向けた動きを早めなければならないと信じている。</p>
<p>「様々な理由から、それ（※3）はまだ現在のウェブの基礎的な構造に組み込まれてはいません。そして、Flashは自分自身がウェブの将来やオープンなウェブ標準という枠組みの中に組み込まれる事を必要としていません。Flashのテクノロジーは、オープンなウェブ標準という流れが広がるに従ってあらゆる面から常に攻撃にさらされることになるでしょう。」とGrønvold氏は語る。</p>
<p>「というのは、徐々に我々は（ウェブの）canvasのクオリティを上げつつあり、そのcanvasを利用するためのツールセットも用意する予定だからです（※4）。しかし、この先18ヶ月程度の見通しで言うならば、Flashが消える事はなく、重要な位置を保つでしょう。」</p>
<p>Opera社からの辛辣な非難こそなかったものの、ウェブ業界の巨人が、Appleという権力から積極的にAdobeを擁護するつもりがないということが明らかになった。
</p></blockquote>
<dl>
<dt>※1</dt>
<dd>原文ではthe companyという語が、ある箇所ではOpera社を、別の箇所ではAdobe社を指しているように思われたので、話が通るように意訳してしまいました。もしかして間違ってるかもしれません。</dd>
<dt>※2</dt>
<dd>原文ではもちろんジョブスの文章の原文にリンクが貼られていますが、こちらではIT翻訳者さんの翻訳記事にリンクを貼らせて頂きました。</dd>
<dt>※3</dt>
<dd>HTML5のことですかね・・・？</dd>
<dt>※4</dt>
<dd>HTML5のcanvasのことですかね・・・？</dd>
</dl>
<h3>追記</h3>
<p>engadgetさんがこの件についてもっと的確な訳文とともに記事にしてくれました。</p>
<p><strong><a href="http://japanese.engadget.com/2010/05/06/opera-flash/" target="_blank">Operaもひと言：「Flashは現時点で不可欠。タマゴも焼ける」</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tonpoo.com/blog/2010/05/jobs-flash-opera/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tonpoo.com/blog/2010/05/jobs-flash-opera/" />
	</item>
		<item>
		<title>SWFWheelを使ってみる</title>
		<link>http://www.tonpoo.com/blog/2010/04/swfwheel/</link>
		<comments>http://www.tonpoo.com/blog/2010/04/swfwheel/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 15:10:16 +0000</pubDate>
		<dc:creator>tonpoo</dc:creator>
				<category><![CDATA[actionscript3]]></category>
		<category><![CDATA[swfwheel]]></category>

		<guid isPermaLink="false">http://www.tonpoo.com/blog/?p=1014</guid>
		<description><![CDATA[AS3から実装された、マウスホイールを検知するMouseEvent.MOUSE_WHEELイベントはMacでは動作しない、というのは知っていて、その問題を解消するためのライブラリがあるという話も聞いていたのですが、実際に使ってみる機会に遭遇したので、備忘録もかねて導入までのフローをメモしてみました。ちなみに参考にしたのはfeb19さんの以下の記事： feb19.jp blog &#8211; SWFWheelを使う 導入したライブラリはSWFWheelです。実際の導入フローは以下の通り： SWFWheel.asのダウンロード まずはasファイルのダウンロード。Spark projectのSWFWheelのページの「ソースコードはこちら」または「リポジトリブラウザで閲覧」からディレクトリを掘っていってSWFWheel.asを見つけてダウンロード。めんどくさい人は以下のリンクを右クリック→「名前を付けて保存」で。 http://www.libspark.org/svn/as3/SWFWheel/trunk/src/org/libspark/ui/SWFWheel.as SWFWheel.asの配置 ダウンロードしてきたSWFWheel.asはそのまま配置するのではなく、適切なフォルダを作ってその中に配置する。例えば以下のようなフォルダ構成になっていた場合： /project/fla/ flaファイルの格納フォルダ /project/as/ クラスファイル（asファイル）の格納フォルダ /project/deploy/ swfファイルやhtmlファイルの格納フォルダ /project/as/フォルダの中に「org」フォルダを作成。その中に「libspark 」フォルダを作成。その中にさらに「ui」フォルダを作成し、その中に配置する。実際に作業するflaファイルやそのドキュメントクラス、公開用のhtmlファイルやjsファイルも含めると、全体の構成は以下のようになる。 /project/fla/ flaファイルの格納フォルダ /project/fla/main.fla メインのflaファイル /project/as/ クラスファイル（asファイル）の格納フォルダ /project/as/Main.as main.flaのドキュメントクラス /project/as/org/libspark/ui/SWFWheel.as SWFWheel.asの配置場所 /project/deploy/ swfファイルやhtmlファイルの格納フォルダ /project/deploy/main.swf main.flaの出力ファイル /project/deploy/main.html main.swfを表示するhtmlファイル /project/deploy/js/swfobject.js swfファイルをhtmlファイルに埋め込むためのJavaScriptライブラリ HTML側の調整 今回はSWFObject2を使った想定なので、SWFObject 2 HTML and JavaScript ジェネレーター v1.2を使って埋め込みコードを生成。その際、以下の点をチェックする。 「Flashコンテンツのid」と「属性：name」を設定する。 「Flashコンテンツのid」と「属性：name」の値は同一のものにする。 allowscriptaccessの値をalwaysにする。 できたサンプルソースは以下の通り。 &#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML [...]]]></description>
			<content:encoded><![CDATA[<p>AS3から実装された、マウスホイールを検知する<strong>MouseEvent.MOUSE_WHEEL</strong>イベントはMacでは動作しない、というのは知っていて、その問題を解消するためのライブラリがあるという話も聞いていたのですが、実際に使ってみる機会に遭遇したので、備忘録もかねて導入までのフローをメモしてみました。ちなみに参考にしたのはfeb19さんの以下の記事：</p>
<p><strong><a href="http://feb19.jp/blog/archives/000167.php" target="_blank">feb19.jp blog &#8211; SWFWheelを使う</a></strong></p>
<p>導入したライブラリは<strong>SWFWheel</strong>です。実際の導入フローは以下の通り：<br />
<span id="more-1014"></span></p>
<h2>SWFWheel.asのダウンロード</h2>
<p>まずはasファイルのダウンロード。<strong><a href="http://www.libspark.org/wiki/SWFWheel" target="_blank">Spark projectのSWFWheelのページ</a></strong>の「ソースコードはこちら」または「リポジトリブラウザで閲覧」からディレクトリを掘っていってSWFWheel.asを見つけてダウンロード。めんどくさい人は以下のリンクを右クリック→「名前を付けて保存」で。</p>
<p><a href="http://www.libspark.org/svn/as3/SWFWheel/trunk/src/org/libspark/ui/SWFWheel.as" target="_blank">http://www.libspark.org/svn/as3/SWFWheel/trunk/src/org/libspark/ui/SWFWheel.as</a></p>
<h2>SWFWheel.asの配置</h2>
<p>ダウンロードしてきたSWFWheel.asはそのまま配置するのではなく、適切なフォルダを作ってその中に配置する。例えば以下のようなフォルダ構成になっていた場合：</p>
<dl>
<dt>/project/fla/</dt>
<dd>flaファイルの格納フォルダ</dd>
<dt>/project/as/</dt>
<dd>クラスファイル（asファイル）の格納フォルダ</dd>
<dt>/project/deploy/</dt>
<dd>swfファイルやhtmlファイルの格納フォルダ</dd>
</dl>
<p>/project/as/フォルダの中に「org」フォルダを作成。その中に「libspark<br />
」フォルダを作成。その中にさらに「ui」フォルダを作成し、その中に配置する。実際に作業するflaファイルやそのドキュメントクラス、公開用のhtmlファイルやjsファイルも含めると、全体の構成は以下のようになる。</p>
<dl>
<dt>/project/fla/</dt>
<dd>flaファイルの格納フォルダ</dd>
<dt>/project/fla/main.fla</dt>
<dd>メインのflaファイル</dd>
<dt>/project/as/</dt>
<dd>クラスファイル（asファイル）の格納フォルダ</dd>
<dt>/project/as/Main.as</dt>
<dd>main.flaのドキュメントクラス</dd>
<dt style="color:#ff0000;">/project/as/org/libspark/ui/SWFWheel.as</dt>
<dd style="color:#ff0000;">SWFWheel.asの配置場所</dd>
<dt>/project/deploy/</dt>
<dd>swfファイルやhtmlファイルの格納フォルダ</dd>
<dt>/project/deploy/main.swf</dt>
<dd>main.flaの出力ファイル</dd>
<dt>/project/deploy/main.html</dt>
<dd>main.swfを表示するhtmlファイル</dd>
<dt>/project/deploy/js/swfobject.js</dt>
<dd>swfファイルをhtmlファイルに埋め込むためのJavaScriptライブラリ</dd>
</dl>
<h2>HTML側の調整</h2>
<p>今回はSWFObject2を使った想定なので、<a href="http://www.tonpoo.com/docs/swfobject_generator/" target="_blank">SWFObject 2 HTML and JavaScript ジェネレーター v1.2</a>を使って埋め込みコードを生成。その際、以下の点をチェックする。</p>
<ul>
<li>「<strong>Flashコンテンツのid</strong>」と「<strong>属性：name</strong>」を設定する。</li>
<li>「Flashコンテンツのid」と「属性：name」の<strong>値は同一のものにする。</strong></li>
<li><strong>allowscriptaccess</strong>の値を<strong>always</strong>にする。</li>
</ul>
<p><img src="http://www.tonpoo.com/blog/wp-content/uploads/2010/04/ss_swfobject.png" alt="ss_swfobject" title="ss_swfobject" width="412" height="616" class="alignnone size-full wp-image-1028" /><br />
できたサンプルソースは以下の通り。</p>
<pre class="brush: xml;">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; lang=&quot;ja&quot; xml:lang=&quot;ja&quot;&gt;
	&lt;head&gt;
		&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
		&lt;title&gt;&lt;/title&gt;
		&lt;meta http-equiv=&quot;Content-Script-Type&quot; content=&quot;text/javascript;&quot; /&gt;
		&lt;script type=&quot;text/javascript&quot; src=&quot;js/swfobject.js&quot;&gt;&lt;/script&gt;
		&lt;script type=&quot;text/javascript&quot;&gt;
			var flashvars = {};
			var params = {};
			params.allowscriptaccess = &quot;always&quot;;
			var attributes = {};
			attributes.id = &quot;flashAreaContent&quot;;
			attributes.name = &quot;flashAreaContent&quot;;
			swfobject.embedSWF(&quot;main.swf&quot;, &quot;myAlternativeContent&quot;, &quot;800&quot;, &quot;600&quot;, &quot;9.0.0&quot;, false, flashvars, params, attributes);
		&lt;/script&gt;
	&lt;/head&gt;
	&lt;body&gt;
		&lt;div id=&quot;myAlternativeContent&quot;&gt;
			&lt;a href=&quot;http://www.adobe.com/go/getflashplayer_jp&quot;&gt;
				&lt;img src=&quot;http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif&quot; alt=&quot;Get Adobe Flash player&quot; /&gt;
			&lt;/a&gt;
		&lt;/div&gt;
	&lt;/body&gt;
&lt;/html&gt;</pre>
<h2>SWFWheelクラスのインポートと初期化</h2>
<p>ではドキュメントクラスMain.asの記述開始。まずはSWFWheelのインポートと初期化。初期化に使うのは<strong>SWFWheel.initialize</strong>メソッドで、<strong>引数としてステージへの参照を渡す</strong>。</p>
<pre class="brush: as3;">package  {
	import flash.display.MovieClip;
	import org.libspark.ui.SWFWheel;

	public class Main extends MovieClip{
		public function Main() {
			SWFWheel.initialize(this.stage);	//SWFWheelの初期化。引数としてステージへの参照を渡す。
		}
	}

}</pre>
<h2>マウスホイールイベントの検出</h2>
<p>次に実際にマウスホイールイベントを検出してみる。マウスホイールイベントのハンドラメソッドで受け取るMouseEventの<strong>delta</strong>プロパティというのが<strong>マウスホイールを 1 目盛り回すごとにスクロールする行数を示す</strong>そうなので、試しにtraceさせてみる。</p>
<pre class="brush: as3;">package  {
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
	import org.libspark.ui.SWFWheel;

	public class Main extends MovieClip{
		public function Main() {
			SWFWheel.initialize(this.stage);
			this.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel, false, 0, true);
		}
		private function onMouseWheel(e:MouseEvent):void {
			trace(&quot;onMouseWheel:&quot;, e.delta);
		}
	}
}</pre>
<p>出た出た。あとはこの値を使って具体的な処理を追加するだけですね。Macで動くかどうかは一通りのファイルをサーバーにアップして確認。で、きちんと動きました。これで問題ありません！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tonpoo.com/blog/2010/04/swfwheel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tonpoo.com/blog/2010/04/swfwheel/" />
	</item>
		<item>
		<title>FlashDevelop3.1.0 RTM出た！！</title>
		<link>http://www.tonpoo.com/blog/2010/04/flashdevelop3-1-0-rtm/</link>
		<comments>http://www.tonpoo.com/blog/2010/04/flashdevelop3-1-0-rtm/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 13:51:47 +0000</pubDate>
		<dc:creator>tonpoo</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[flashdevelop]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[zen-coding]]></category>

		<guid isPermaLink="false">http://www.tonpoo.com/blog/?p=1034</guid>
		<description><![CDATA[twitterでも話題になってますが、FlashDevelop3.1.0 RTMが出ました。 FlashDevelop3.1.0 RTM &#8211; FlashDevelop.jp 馬鹿全 &#8211; FlashDevelop 3.1.0 RTM リリース まずは旧バージョンをsettingファイルも含めて完全にアンインストール。その上で新バージョンをインストールして起動。馬鹿全さんの記事を参考にTools → Program Setings → FlashDevelop → Selected Locale を en_US から ja_JP に変更して FlashDevelop を再起動。これで晴れて日本語版に！ 次はフォントを自分好みに変更。まずはツール→環境設定→FlashDevelopの中からフォント指定部分を下記のように設定。 「10pt」や「8pt」で設定しても、何故か上記のように中途半端な数字になっちゃうんですよね。まあいいや。 次にコード表示のフォントを変更。ツール→シンタックスカラーリングの変更、で、それぞれの言語のdefaultのフォントスタイルを下記に設定。 これでOK！ 今回のアップデートではHTML編集でZen-Codingが使えるようになってます。ちょっとした編集なら、わざわざAptanaを同時起動しなくても良さそう（ちなみにFlashDevelop上でのZen-CodingのショートカットはCtrl+B）。FlashDevelop万歳！ 追記 ClockMakerさんのブログに今回のバージョンアップについてのまとめ記事がありました。 待望の日本語化も! FlashDevelop 3.1.0 RTMが登場 &#124; ClockMaker Blog 変数のリネームができるリファクタ機能っての、便利そうですね！あとデバッガー機能も。ただ、デバッガー機能の方は「プラグインとして提供されている」らしいんですが、具体的にどのような方法で導入するのか、あとでちょっと調べてみようと思います。 さらに追記 どうやら下記スレッドでPhilippe氏が返信してる「Re: FlashDevelop 3.1.0 RTM released」の内容がデバッガー機能についての説明かな？ FlashDevelop.org &#8211; View topic &#8211; FlashDevelop [...]]]></description>
			<content:encoded><![CDATA[<p>twitterでも話題になってますが、<strong>FlashDevelop3.1.0 RTM</strong>が出ました。<br />
<span id="more-1034"></span></p>
<ul>
<li><strong><a href="http://flashdevelop.jp/FlashDevelop3.1.0_RTM" target="_blank">FlashDevelop3.1.0 RTM &#8211; FlashDevelop.jp</a></strong></li>
<li><strong><a href="http://blog.bk-zen.com/2010/04/22/319/" target="_target">馬鹿全 &#8211; FlashDevelop 3.1.0 RTM リリース</a></strong></li>
</ul>
<p>まずは旧バージョンをsettingファイルも含めて完全にアンインストール。その上で新バージョンをインストールして起動。馬鹿全さんの記事を参考にTools → Program Setings → FlashDevelop → Selected Locale を en_US から ja_JP に変更して FlashDevelop を<strong>再起動</strong>。これで晴れて日本語版に！</p>
<p>次はフォントを自分好みに変更。まずはツール→環境設定→FlashDevelopの中からフォント指定部分を下記のように設定。<br />
<img src="http://www.tonpoo.com/blog/wp-content/uploads/2010/04/ss3.jpg" alt="ss" title="ss" width="600" height="502" class="alignnone size-full wp-image-1035" /><br />
「10pt」や「8pt」で設定しても、何故か上記のように中途半端な数字になっちゃうんですよね。まあいいや。</p>
<p>次にコード表示のフォントを変更。ツール→シンタックスカラーリングの変更、で、それぞれの言語のdefaultのフォントスタイルを下記に設定。<br />
<img src="http://www.tonpoo.com/blog/wp-content/uploads/2010/04/ss-fontsetting.jpg" alt="ss-fontsetting" title="ss-fontsetting" width="600" height="440" class="alignnone size-full wp-image-1036" /><br />
これでOK！</p>
<p>今回のアップデートではHTML編集でZen-Codingが使えるようになってます。ちょっとした編集なら、わざわざAptanaを同時起動しなくても良さそう（ちなみにFlashDevelop上でのZen-Codingのショートカットは<strong>Ctrl+B</strong>）。FlashDevelop万歳！</p>
<h3>追記</h3>
<p>ClockMakerさんのブログに今回のバージョンアップについてのまとめ記事がありました。</p>
<p><strong><a href="http://clockmaker.jp/blog/2010/04/flashdevelop-3-1/" target="_blank">待望の日本語化も! FlashDevelop 3.1.0 RTMが登場 | ClockMaker Blog</a></strong></p>
<p>変数のリネームができる<strong>リファクタ機能</strong>っての、便利そうですね！あと<strong>デバッガー機能</strong>も。ただ、デバッガー機能の方は「プラグインとして提供されている」らしいんですが、具体的にどのような方法で導入するのか、あとでちょっと調べてみようと思います。</p>
<h3>さらに追記</h3>
<p>どうやら下記スレッドでPhilippe氏が返信してる「Re: FlashDevelop 3.1.0 RTM released」の内容がデバッガー機能についての説明かな？</p>
<p><strong><a href="http://www.flashdevelop.org/community/viewtopic.php?f=11&#038;t=6415" target="_blank">FlashDevelop.org &#8211; View topic &#8211; FlashDevelop 3.1.0 RTM released</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tonpoo.com/blog/2010/04/flashdevelop3-1-0-rtm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tonpoo.com/blog/2010/04/flashdevelop3-1-0-rtm/" />
	</item>
		<item>
		<title>Flashbugを導入したらFlashPlayerが落ちるようになった件とその解決策</title>
		<link>http://www.tonpoo.com/blog/2010/04/flashbug-y/</link>
		<comments>http://www.tonpoo.com/blog/2010/04/flashbug-y/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 04:10:55 +0000</pubDate>
		<dc:creator>tonpoo</dc:creator>
				<category><![CDATA[firefox]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[translation]]></category>
		<category><![CDATA[troubles]]></category>

		<guid isPermaLink="false">http://www.tonpoo.com/blog/?p=988</guid>
		<description><![CDATA[今日、Flashbugの設定をちょっと変更した瞬間から、Flashコンテンツのあるページを表示させるとやたらとブラウザ（Firefox）が落ちるようになってしまった。これがFlashbugを無効化したり削除したりしても直らない上、Google Chromeでも発生したことから軽くパニクったんですが、結論からいうと、Flashbugの設定画面からFlashPlayerの設定を変更してしまったことが原因のようでした。 ええ、仰るとおり、まさに&#34;very easy to crash&#34;でしたよ（涙）。上記のスクリーンショットのように、Undocumented Trace Log Settings欄のチェックを全て外したら、クラッシュせずに動くようになりました。 で、原因究明の過程でFirebugのオフィシャルページ（Flashbug – An extension for Firebug &#124; Course Vector）の文章について簡単に翻訳してみた（してしまった）ので、備忘録をかねて参考までにアップしておきます。 更新情報 SharedObjectを発見するバグの修正 Mac OSXのmm.cfgファイルの場所についてのバグの修正。今回は本当に直ってるはず。 説明 このプラグインは、Firefoxの中または外で稼働中のあらゆる.swfファイルのtrace内容を表示します。全てのtraceはFirebugのFlash Consoleに表示されます。Firebugの検索ボックスを使って文字列を検索すると、マッチする語がハイライト表示されます。他に追加された機能はエラー、警告、情報のtraceに対してのハイライトとアイコン表示です。最後に、trace内容に表示されるあらゆるURLについて、右クリックして新規のタブで開く事が出来るようになりました。 FlashTraceと同様、Flash Player Debuggerがインストールされていないとtrace内容は表示されません。Flashbugはお使いのPCに入っているFlashPlayerのバージョンを検知して表示します。Debug版のPlayerが入っていない時には、ダウンロード用のリンクが表示されます。 FlashTraceと異なり、flashlog.txtやmm.cfgファイルを設定する必要はありません。こういう作業はFlashbugがバックグラウンドで行いますから、皆さんはすぐに機能を利用することができます。 trace内容またはポリシーログのどちらかをFlashbugから直接開く事もできます。これで、traceされた生の内容をそのままエクスポートしたりコピーすることもできます。 他の新機能はShared Objectインスペクタです。これは表示されているページにロードされているswf全てを監視します。そして、ドメインに基づいてPCに保存されているShared Objectをチェックし、該当するものがあればパネルにリストアップします。 見つかったShared Objectは各行に表示され、階層を開く事でそこに含まれるデータを閲覧することができます。エディターがインストールされているならば、右クリックして直接ファイルを開く事もできます。パスをファイルにコピーしたり、保存されているフォルダーを開く事も出来ます。 最後ですが、FirebugのNetパネルに、AMFでコーディングが追加されました。この機能はFirebug1.4以上のみで有効です。データ転送をリモーティングに依存しているサイトを訪れると、サーバーに送信されるAMFリクエストの内容を見る事ができます。具体的には、Netパネルの中からAMFリクエストの行を発見し、その行を広げてみてください。すると、AMFタブが表示され、これをクリックする事でAMFメッセージが表示されます。 特徴 Firebugのビルトイン検索機能の利用- ログ内容を検索すると、リアルタイムにハイライト表示されます。 traceログの表示- 全てのブラウザで実行されているFlashインスタンスから送出される全てのtrace内容を表示します。 ポリシーログの表示- FlashPlayerから送出される全てのポリシーログ出力を表示します。クロスドメインポリシーを使っていたり、異なるドメインからファイルなどを読み込む場合などにこの出力が発生します。 デバッグプレイヤーのログ保存場所自動設定- FlashTracerではログファイルの場所などをマニュアルで設定する必要がありました。これらの設定はFlashbug側で自動的に行います。 デバッグプレイヤーの設定編集- FlashPlayer自体が、traceする内容を変更することができるようになっています。FirebugのPreferencesウィンドウでこのオプションを設定できます。 traceフィルタ- trace内容を様々なフォーマットで表示するためのビルトインフィルタが少しだけ用意されています。エラーについては赤字でエラーアイコン付きで表示するとか、XMLについては色つきの可読性の高いフォーマットで表示するなどです。現在Flashbugに含まれているのは下記のキーワードのみですが、将来的にはユーザー側でカスタマイズできるようにするつもりです。 @@XML@@ :XML形式で色つきで表示。 @@HTML@@ :XMLの場合と同じ。 @@INFO@@ :左側に青い情報アイコンを表示。 [...]]]></description>
			<content:encoded><![CDATA[<p>今日、Flashbugの設定をちょっと変更した瞬間から、<strong>Flashコンテンツのあるページを表示させるとやたらとブラウザ（Firefox）が落ちる</strong>ようになってしまった。これがFlashbugを無効化したり削除したりしても直らない上、Google Chromeでも発生したことから軽くパニクったんですが、結論からいうと、Flashbugの設定画面から<strong>FlashPlayerの設定を変更してしまった</strong>ことが原因のようでした。</p>
<p><img src="http://www.tonpoo.com/blog/wp-content/uploads/2010/04/ss1.png" alt="ss" title="ss" width="407" height="643" class="alignnone size-full wp-image-999" /><br />
ええ、仰るとおり、まさに&quot;<strong>very easy to crash</strong>&quot;でしたよ（涙）。上記のスクリーンショットのように、Undocumented Trace Log Settings欄のチェックを全て外したら、クラッシュせずに動くようになりました。</p>
<p>で、原因究明の過程でFirebugのオフィシャルページ（<strong><a href="http://blog.coursevector.com/flashbug" target="_blank">Flashbug – An extension for Firebug | Course Vector</a></strong>）の文章について簡単に翻訳してみた（してしまった）ので、備忘録をかねて参考までにアップしておきます。<br />
<span id="more-988"></span></p>
<blockquote>
<h3>更新情報</h3>
<ul>
<li>SharedObjectを発見するバグの修正</li>
<li>Mac OSXのmm.cfgファイルの場所についてのバグの修正。今回は本当に直ってるはず。</li>
</ul>
<h3>説明</h3>
<p>このプラグインは、Firefoxの中<strong>または外で</strong>稼働中のあらゆる.swfファイルのtrace内容を表示します。全てのtraceはFirebugのFlash Consoleに表示されます。Firebugの検索ボックスを使って文字列を検索すると、マッチする語がハイライト表示されます。他に追加された機能はエラー、警告、情報のtraceに対してのハイライトとアイコン表示です。最後に、trace内容に表示されるあらゆるURLについて、右クリックして新規のタブで開く事が出来るようになりました。</p>
<p>FlashTraceと同様、Flash Player Debuggerがインストールされていないとtrace内容は表示されません。Flashbugはお使いのPCに入っているFlashPlayerのバージョンを検知して表示します。Debug版のPlayerが入っていない時には、ダウンロード用のリンクが表示されます。</p>
<p>FlashTraceと異なり、flashlog.txtやmm.cfgファイルを設定する必要はありません。こういう作業はFlashbugがバックグラウンドで行いますから、皆さんはすぐに機能を利用することができます。</p>
<p>trace内容またはポリシーログのどちらかをFlashbugから直接開く事もできます。これで、traceされた生の内容をそのままエクスポートしたりコピーすることもできます。</p>
<p>他の新機能はShared Objectインスペクタです。これは表示されているページにロードされているswf全てを監視します。そして、ドメインに基づいてPCに保存されているShared Objectをチェックし、該当するものがあればパネルにリストアップします。</p>
<p>見つかったShared Objectは各行に表示され、階層を開く事でそこに含まれるデータを閲覧することができます。エディターがインストールされているならば、右クリックして直接ファイルを開く事もできます。パスをファイルにコピーしたり、保存されているフォルダーを開く事も出来ます。</p>
<p>最後ですが、FirebugのNetパネルに、AMFでコーディングが追加されました。この機能はFirebug1.4以上のみで有効です。データ転送をリモーティングに依存しているサイトを訪れると、サーバーに送信されるAMFリクエストの内容を見る事ができます。具体的には、Netパネルの中からAMFリクエストの行を発見し、その行を広げてみてください。すると、AMFタブが表示され、これをクリックする事でAMFメッセージが表示されます。</p>
<h3>特徴</h3>
<ul>
<li><strong>Firebugのビルトイン検索機能の利用</strong>- ログ内容を検索すると、リアルタイムにハイライト表示されます。</li>
<li><strong>traceログの表示</strong>- 全てのブラウザで実行されているFlashインスタンスから送出される全てのtrace内容を表示します。</li>
<li><strong>ポリシーログの表示</strong>- FlashPlayerから送出される全てのポリシーログ出力を表示します。クロスドメインポリシーを使っていたり、異なるドメインからファイルなどを読み込む場合などにこの出力が発生します。</li>
<li><strong>デバッグプレイヤーのログ保存場所自動設定</strong>- FlashTracerではログファイルの場所などをマニュアルで設定する必要がありました。これらの設定はFlashbug側で自動的に行います。</li>
<li><strong>デバッグプレイヤーの設定編集</strong>- FlashPlayer自体が、traceする内容を変更することができるようになっています。FirebugのPreferencesウィンドウでこのオプションを設定できます。</li>
<li><strong>traceフィルタ</strong>- trace内容を様々なフォーマットで表示するためのビルトインフィルタが少しだけ用意されています。エラーについては赤字でエラーアイコン付きで表示するとか、XMLについては色つきの可読性の高いフォーマットで表示するなどです。現在Flashbugに含まれているのは下記のキーワードのみですが、将来的にはユーザー側でカスタマイズできるようにするつもりです。
<ul>
<li>@@XML@@ :XML形式で色つきで表示。</li>
<li>@@HTML@@ :XMLの場合と同じ。</li>
<li>@@INFO@@ :左側に青い情報アイコンを表示。</li>
<li>@@WARNING@@ :背景色が暗くなり、左側に警告アイコンを表示。</li>
<li>@@ERROR@@ :背景色が赤くなり、左側にエラーアイコンを表示。</li>
</ul>
</li>
<li><strong>ビルトインリンク</strong>- trace内容に含まれるURLには下線が表示され、右クリックすることで別タブで開いたりクリップボードにコピーすることができます。</li>
<li><strong>Shared Object読み込み</strong>- 表示中のページに関連するあらゆるShared Objectを読み込む事が出来、Firebugのobjectと同じように閲覧することができます。</li>
<li><strong>（Firebug 1.4以上）AMF / リモーティングリクエスト / レスポンスデータの読み込み</strong>- ページとサーバーとの間で送受信されるAMFデータを閲覧することができます。</li>
</ul>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.tonpoo.com/blog/2010/04/flashbug-y/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tonpoo.com/blog/2010/04/flashbug-y/" />
	</item>
		<item>
		<title>BitmapDataの「2880ピクセルの罠」もとい、「幅or高さ8,192ピクセル＆ピクセル総数16,777,216の罠」</title>
		<link>http://www.tonpoo.com/blog/2010/03/bitmapdata-2880/</link>
		<comments>http://www.tonpoo.com/blog/2010/03/bitmapdata-2880/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 03:37:11 +0000</pubDate>
		<dc:creator>tonpoo</dc:creator>
				<category><![CDATA[actionscript2]]></category>
		<category><![CDATA[actionscript3]]></category>
		<category><![CDATA[troubles]]></category>

		<guid isPermaLink="false">http://www.tonpoo.com/blog/?p=887</guid>
		<description><![CDATA[またまた今更ながらの備忘録メモ。FlashPlayer8から使えるようになったBitmapDataクラスによって、動的にフィルターをかけたり、グラデーションのついたマスク表現などを使えるようになりました。 が、フィルターやグラデーションマスクといった機能、サイズ（ファイルサイズではなく、width x heightのサイズ）の大きな画像やオブジェクトに対しては効きません。具体的には、対象となるオブジェクトのwidthまたはheightが2880ピクセルを超過すると、こうした機能が無効になります。 で、その詳しい理由については下記のURLが詳しい： Flash 8 のイメージ API の概要 &#124; デベロッパーセンター 該当する部分の引用： メモ : Flash Player では、ビットマップの最大サイズは幅、高さいずれも 2880 ピクセルに制限されています。この制約よりも大きい BitmapData インスタンスを作成しようとすると、ビットマップは作成されません。これは、クライアントの RAM を使い切るような Flash ムービーを作成できないようにするために設定されています。2880 × 2880 ピクセルのビットマップには、約 32 MB 程度の RAM が必要です。 残念ながらFlashPlayer10でもまだこの点についての変更は無い模様。なぜこの記事を書いてるかというと、今現在この問題で引っかかってるため。さて、どうして回避したものか・・・。 ＜追記＞ kaedeさんからコメントで情報いただきましたが、FlashPlayer10からはBitmapDataサイズの制限が拡大されていますね。 BitmapData &#8211; ActionScript 3.0 言語およびコンポーネントリファレンス 当該部分を引用： AIR 1.5 および Flash Player 10 では、BitmapData オブジェクトの最大サイズは幅または高さが 8,192 ピクセルで、ピクセルの総数は 16,777,216 を超えないようにする必要があります（したがって、BitmapData [...]]]></description>
			<content:encoded><![CDATA[<p>またまた今更ながらの備忘録メモ。FlashPlayer8から使えるようになった<strong>BitmapDataクラス</strong>によって、動的にフィルターをかけたり、グラデーションのついたマスク表現などを使えるようになりました。</p>
<p>が、フィルターやグラデーションマスクといった機能、サイズ（ファイルサイズではなく、width x heightのサイズ）の大きな画像やオブジェクトに対しては効きません。具体的には、対象となるオブジェクトのwidthまたはheightが<strong style="color:#FF0000;font-size:20px;">2880ピクセル</strong>を超過すると、こうした機能が無効になります。</p>
<p>で、その詳しい理由については下記のURLが詳しい：</p>
<p><strong><a href="http://www.adobe.com/jp/devnet/flash/articles/image_api_02.html" target="_blank">Flash 8 のイメージ API の概要 | デベロッパーセンター</a></strong></p>
<p>該当する部分の引用：</p>
<blockquote><p>メモ : Flash Player では、<strong>ビットマップの最大サイズは幅、高さいずれも 2880 ピクセルに制限されています。この制約よりも大きい BitmapData インスタンスを作成しようとすると、ビットマップは作成されません。</strong>これは、クライアントの RAM を使い切るような Flash ムービーを作成できないようにするために設定されています。2880 × 2880 ピクセルのビットマップには、約 32 MB 程度の RAM が必要です。</p></blockquote>
<p><del datetime="2010-03-03T04:22:29+00:00">残念ながらFlashPlayer10でもまだこの点についての変更は無い模様。</del>なぜこの記事を書いてるかというと、今現在この問題で引っかかってるため。さて、どうして回避したものか・・・。</p>
<h3>＜追記＞</h3>
<p>kaedeさんからコメントで情報いただきましたが、FlashPlayer10からはBitmapDataサイズの制限が拡大されていますね。</p>
<p><strong><a href="http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/flash/display/BitmapData.html#BitmapData%28%29" target="_blank">BitmapData &#8211; ActionScript 3.0 言語およびコンポーネントリファレンス</a></strong></p>
<p>当該部分を引用：</p>
<blockquote><p>AIR 1.5 および Flash Player 10 では、BitmapData オブジェクトの最大サイズは<strong style="color:#FF0000;font-size:16px;">幅または高さが 8,192 ピクセル</strong>で、<strong style="color:#FF0000;font-size:16px;">ピクセルの総数は 16,777,216</strong> を超えないようにする必要があります（したがって、<strong>BitmapData オブジェクトの幅が 8,192 ピクセルの場合、高さは 2,048 ピクセル以下にする必要があります</strong>）。Flash Player 9 以前および AIR 1.1 以前では、高さの制限は 2,880 ピクセル、幅の制限は 2,880 ピクセルです。幅または高さに 2880 より大きい値を指定すると、新しいインスタンスは作成されません。</p></blockquote>
<p>なるほど、8192 x 8192ピクセル、ってのはダメなんですね。で、改めて今回作業してるファイルを見ると、cacheAsBitmapかけようと思ったインスタンスの横幅が<strong>9600ピクセル</strong>・・・。そ、そりゃあダメですよね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tonpoo.com/blog/2010/03/bitmapdata-2880/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tonpoo.com/blog/2010/03/bitmapdata-2880/" />
	</item>
		<item>
		<title>IEのプライバシーモードの終了時にLocal Shared Object（Flashクッキー）も削除されるようになったそうな</title>
		<link>http://www.tonpoo.com/blog/2010/02/ie-local-shared-object-flash/</link>
		<comments>http://www.tonpoo.com/blog/2010/02/ie-local-shared-object-flash/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 09:19:44 +0000</pubDate>
		<dc:creator>tonpoo</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[topics]]></category>

		<guid isPermaLink="false">http://www.tonpoo.com/blog/?p=851</guid>
		<description><![CDATA[ネタ元はライフハッカーの下記記事： Flashのブロックがついに可能に : ライフハッカー［日本版］, 仕事も生活も上手くこなすライフハック情報満載のブログ・メディア 「Flashのブロック」「Flashもプライバシーモードでブロックすることが可能になることを発表しました」とか言うと、なんだかまるでFlashコンテンツの表示をブロックするような感じがしますが、そうではなくてLocal Shared Object、所謂「Flashクッキー」の記録をブロックするという意味のようです。上記記事中にもあるmsdnの記事IEBlog : Adobe Flash Now Supports InPrivate Browsingより引用： 先日、Adobeが最新版のFlashではInPrivate Browsingをサポートすると発表した。Flashのバージョン10.1は、我々がリリース当初からIE8に組み込んできたインターフェースに反応するようになったのだ。Flashコンテンツのあるサイトを表示すると&#34;Flash Cookies&#34;が生成される。これは、各ウェブサイトのデータを保存するためにFlashが生成するファイルだ。これからは、IEの履歴やクッキーと同じように、IEのInPrivate Browsingウィンドウを閉じると、これらのFlashオブジェクトも削除されるようになる。 Flashが我々のInPrivate Browsing機能を適用してくれて本当に嬉しい。FirefoxとChromeのプライベートブラウズについても同様にサポートしてくれたのも嬉しい。Flashチーム、GJ! 「Flashのバージョン10.1」ってのは、FlashPlayerの10.1のことでしょう。つまり、今後はIEをプライバシーモードで使っていた場合、ウィンドウを閉じた時、履歴やクッキーと共に、Local Shared Objectについても削除されるようになりますよ、ってことですね。ライフハッカーの記事では「他のブラウザもじきに対応するようになる模様です。」とあるけど、msdnの記事の末尾では既にサポートしてる風な感じがするのは気のせいでしょうか。]]></description>
			<content:encoded><![CDATA[<p>ネタ元はライフハッカーの下記記事：<br />
<strong><a href="http://www.lifehacker.jp/2010/02/100215flashprivate.html" target="_blank">Flashのブロックがついに可能に : ライフハッカー［日本版］, 仕事も生活も上手くこなすライフハック情報満載のブログ・メディア</a></strong></p>
<p><cite>「Flashのブロック」「Flashもプライバシーモードでブロックすることが可能になることを発表しました」</cite>とか言うと、なんだかまるでFlashコンテンツの表示をブロックするような感じがしますが、そうではなくて<strong>Local Shared Object、所謂「Flashクッキー」の記録をブロックする</strong>という意味のようです。上記記事中にもあるmsdnの記事<strong><a href="http://blogs.msdn.com/ie/archive/2010/02/11/adobe-flash-now-supports-inprivate-browsing.aspx" target="_blank">IEBlog : Adobe Flash Now Supports InPrivate Browsing</a></strong>より引用：</p>
<blockquote><p>先日、<a href="http://www.adobe.com/devnet/flashplayer/articles/privacy_mode_fp10.1.html" target="_blank">Adobe</a>が最新版のFlashでは<a href="http://www.adobe.com/devnet/flashplayer/articles/privacy_mode_fp10.1.html" target="_blank">InPrivate Browsing</a>をサポートすると発表した。Flashのバージョン10.1は、我々がリリース当初からIE8に組み込んできた<a href="http://blogs.msdn.com/ieinternals/archive/2009/06/30/IE8-Privacy-APIs-for-Addons.aspx" target="_blank">インターフェース</a>に反応するようになったのだ。Flashコンテンツのあるサイトを表示すると&quot;<a href="http://en.wikipedia.org/wiki/Local_Shared_Object" target="_blank">Flash Cookies</a>&quot;が生成される。これは、各ウェブサイトのデータを保存するためにFlashが生成するファイルだ。これからは、IEの履歴やクッキーと同じように、IEの<a href="http://blogs.msdn.com/ie/archive/2008/08/25/ie8-and-privacy.aspx" target="_blank">InPrivate Browsing</a>ウィンドウを閉じると、これらのFlashオブジェクトも削除されるようになる。</p>
<p>Flashが我々のInPrivate Browsing機能を適用してくれて本当に嬉しい。FirefoxとChromeのプライベートブラウズについても同様にサポートしてくれたのも嬉しい。Flashチーム、GJ!</p></blockquote>
<p>「Flashのバージョン10.1」ってのは、Flash<strong>Player</strong>の10.1のことでしょう。つまり、今後は<strong>IEをプライバシーモードで使っていた場合、ウィンドウを閉じた時、履歴やクッキーと共に、Local Shared Objectについても削除されるようになりますよ</strong>、ってことですね。ライフハッカーの記事では<cite>「他のブラウザもじきに対応するようになる模様です。」</cite>とあるけど、msdnの記事の末尾では既にサポートしてる風な感じがするのは気のせいでしょうか。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tonpoo.com/blog/2010/02/ie-local-shared-object-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tonpoo.com/blog/2010/02/ie-local-shared-object-flash/" />
	</item>
		<item>
		<title>FlashPlayer10.1（Mac版）のCore Animation対応について－Tinic Uro氏のブログ記事より</title>
		<link>http://www.tonpoo.com/blog/2010/02/flashplayer10-1-mac-core-animation-tinic-uro/</link>
		<comments>http://www.tonpoo.com/blog/2010/02/flashplayer10-1-mac-core-animation-tinic-uro/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 05:09:07 +0000</pubDate>
		<dc:creator>tonpoo</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[topics]]></category>
		<category><![CDATA[translation]]></category>
		<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://www.tonpoo.com/blog/?p=841</guid>
		<description><![CDATA[AdobeエンジニアのTinic Uro氏がブログで書いた記事が一部で話題になっています。 kaourantin.net: Core Animation Windowsユーザーの自分にはピンと来ないものの、どうやらMacでのFlashPlayerのパフォーマンスが（かなり？）向上するという話の様子。ということで、早速自分なりに意訳してみました。間違ってるところなどあるかもしれませんので、あくまで以下文章についての正確な内容は上記Tinic氏の元記事をご覧下さい。 2010年2月11日（木） Core Animation 驚くべき事に、この一年でFlash Playerエンジニアリングチームには本当にたくさんの出来事があった。いろんな事を話したいのはやまやまだけど、この記事ではKevin Lynchが最近触れた内容、特にMacのパフォーマンスとCore Animationに関する彼のコメントについて掘り下げてみようと思う。いつもFlashに関する文脈の中でパフォーマンスについての言及があると多くの注目を集めてきたが、技術的な背景はしばしばPRの中（？）に失われてきた。 さて、Flash Player 10.1のCore Animationとはなんぞや？AppleがCore Animationについてまとめた文書があるので、それを見てみよう。 Core Animationとは高いパフォーマンスのcompositing engineと、簡単に使えるアニメーションプログラミングインターフェースとを統合したObjective-Cフレームワークのことである なんだかFlashにバッチリ合いそうな感じでしょ？まさに、Flash Player 10.1は、このフレームワークの力を借りて、OS X上で動作するSafariや他のブラウザーが抱えているいくつかの技術的な問題に取り組もうとしているんだ。 The drawing model jungle on OS X Core Animationを目指すより具体的な内容について触れる前に、OS Xで、プラグインがブラウザーウィンドウに描画を行う方法について簡単に見てみよう。Windowsでは一通りしかないのに対し、OS Xでは4通りもある。 QuickDraw。Operaや旧世代のFirefox, Safariでデフォルトモードとして使用される。 Quartz 2D（あるいは Core Graphics）。新しいFirefoxとSafariでサポートしている。 OpenGL。僕の知る限りまだこの方法をサポートしているブラウザーはない。 Core Animation。現在はOS X + Safari 4の組み合わせでのみ対応。さらに現在のバージョンでは警告が表示される。 これらの描画モデルの違いに加え、デザイナーはFlashコンテンツを埋め込むのに3種類の異なるwmodeを選択することができる。 Normal Opaque Transparent Normalにすると、SWFの上にHTMLをオーバーラップして表示させる事はできなくなる。Opaqueだとそれができるようになり、TransparentにするとSWFが透過となり、その下にあるHTMLが表示されるようになる。これらの内容を考慮にいれた上で、それぞれのケースでどの描画モデルが使用されるのか（そして、Flash Player [...]]]></description>
			<content:encoded><![CDATA[<p>AdobeエンジニアのTinic Uro氏がブログで書いた記事が一部で話題になっています。</p>
<p><strong><a href="http://www.kaourantin.net/2010/02/core-animation.html" target="_blank">kaourantin.net: Core Animation</a></strong></p>
<p>Windowsユーザーの自分にはピンと来ないものの、どうやらMacでのFlashPlayerのパフォーマンスが（かなり？）向上するという話の様子。ということで、早速自分なりに意訳してみました。間違ってるところなどあるかもしれませんので、あくまで以下文章についての正確な内容は上記Tinic氏の元記事をご覧下さい。</p>
<p><span id="more-841"></span></p>
<blockquote><p>
2010年2月11日（木）</p>
<h2>Core Animation</h2>
<p>驚くべき事に、この一年でFlash Playerエンジニアリングチームには本当にたくさんの出来事があった。いろんな事を話したいのはやまやまだけど、この記事ではKevin Lynchが<a href="http://blogs.adobe.com/conversations/2010/02/open_access_to_content_and_app.html#comment-2137153" target="_blank">最近触れた内容</a>、特にMacのパフォーマンスとCore Animationに関する彼のコメントについて掘り下げてみようと思う。いつもFlashに関する文脈の中でパフォーマンスについての言及があると多くの注目を集めてきたが、技術的な背景はしばしばPRの中（？）に失われてきた。</p>
<p>さて、Flash Player 10.1のCore Animationとはなんぞや？Appleが<a href="http://developer.apple.com/mac/library/documentation/cocoa/Conceptual/CoreAnimation_guide/Introduction/Introduction.html" target="_blank">Core Animationについて</a>まとめた文書があるので、それを見てみよう。</p>
<blockquote><p>Core Animationとは高いパフォーマンスのcompositing engineと、簡単に使えるアニメーションプログラミングインターフェースとを統合したObjective-Cフレームワークのことである</p></blockquote>
<p>なんだかFlashにバッチリ合いそうな感じでしょ？まさに、Flash Player 10.1は、このフレームワークの力を借りて、OS X上で動作するSafariや他のブラウザーが抱えているいくつかの技術的な問題に取り組もうとしているんだ。</p>
<h3>The drawing model jungle on OS X</h3>
<p>Core Animationを目指すより具体的な内容について触れる前に、OS Xで、プラグインがブラウザーウィンドウに描画を行う方法について簡単に見てみよう。Windowsでは一通りしかないのに対し、OS Xでは<a href="http://trac.webkit.org/browser/trunk/WebCore/bridge/npapi.h" target="_blank">4通りもある</a>。</p>
<ol>
<li>QuickDraw。Operaや旧世代のFirefox, Safariでデフォルトモードとして使用される。</li>
<li>Quartz 2D（あるいは Core Graphics）。新しいFirefoxとSafariでサポートしている。</li>
<li>OpenGL。僕の知る限りまだこの方法をサポートしているブラウザーはない。</li>
<li>Core Animation。現在はOS X + Safari 4の組み合わせでのみ対応。さらに現在のバージョンでは警告が表示される。</li>
</ol>
<p>これらの描画モデルの違いに加え、デザイナーはFlashコンテンツを埋め込むのに3種類の異なる<a href="http://kb2.adobe.com/cps/142/tn_14201.html" target="_blank">wmode</a>を選択することができる。</p>
<ol>
<li>Normal</li>
<li>Opaque</li>
<li>Transparent</li>
</ol>
<p>Normalにすると、SWFの上にHTMLをオーバーラップして表示させる事はできなくなる。Opaqueだとそれができるようになり、TransparentにするとSWFが透過となり、その下にあるHTMLが表示されるようになる。これらの内容を考慮にいれた上で、それぞれのケースでどの描画モデルが使用されるのか（そして、Flash Player 10.1のリリース前に我々が変更しなければならない点）について示した、下記のような表を作った。</p>
<table>
<caption>Flash Player 10.0:</caption>
<tr>
<td>&nbsp;</td>
<td>Safari 4</td>
<td>Firefox 3</td>
<td>Opera 10</td>
</tr>
<tr>
<td>Normal</td>
<td>Quartz 2D	</td>
<td>QuickDraw</td>
<td>QuickDraw</td>
</tr>
<tr>
<td>Opaque</td>
<td>Quartz 2D	</td>
<td>QuickDraw</td>
<td>QuickDraw</td>
</tr>
<tr>
<td>Transparent</td>
<td>Quartz 2D	</td>
<td>QuickDraw</td>
<td>QuickDraw</td>
</tr>
</table>
<table>
<caption>Flash Player 10.1:</caption>
<tr>
<td>&nbsp;</td>
<td>Safari 4 (*)</td>
<td>Firefox 3</td>
<td>Opera 10</td>
</tr>
<tr>
<td>Normal</td>
<td>Core Animation</td>
<td>Quartz 2D</td>
<td>QuickDraw</td>
</tr>
<tr>
<td>Opaque</td>
<td>Quartz 2D(**)</td>
<td>Quartz 2D</td>
<td>QuickDraw</td>
</tr>
<tr>
<td>Transparent</td>
<td>Quartz 2D(**)</td>
<td>Quartz 2D</td>
<td>QuickDraw</td>
</tr>
</table>
<p>(*)Core Animationのサポートが進行中の<a href="http://nightly.webkit.org/" target="_blank">ナイトリービルド版</a>を使用。<br />
(**)SWFがHTMLページのfront mostオブジェクトである時にはCore Animationが使われる。</p>
<h3>Quartz 2Dについてはどうなる？</h3>
<p>Quartz 2Dの基本的な前提については、Appleが次のように述べている：</p>
<blockquote><p>Quartz 2DはiPhoneアプリケーションの開発と、カーネル外の全てのMac OS Xアプリケーション環境で利用可能な二次元描画エンジンである。Quartz 2Dはディスプレイや印刷デバイスに関係なく、unmatched output fidelityな（出力先の忠実度にマッチしない？）低レベルで軽量な2Dレンダリングを提供する。</p></blockquote>
<p>Quartz 2Dは、アニメーションとか動画再生のようなマルチメディアアプリケーション向けにデザインされたものではない。それはOpenGL, Core Video, Core Animationの領域だ。SafariがHTMLコンテンツの描画にQuartz 2Dを使うのは、大体のケースではコンテンツが静的であることを考えると非常に合理的と言える。Flashが出てさえこなければみんなうまく行くんだ。例えば、Flash PlayerがQuartz 2D描画モデルを使ってSWFコンテンツを再生する場合、全面的にブラウザーが関与しなければならなくなる。イベントの流れはこんな感じ（Sharkでスタックトレースすることもできます）</p>
<ol>
<li>新しいフレームを表示する場合、Flash PlayerはNPN_InvalidateRectを使ってその領域の更新を要求する。</li>
<li>ブラウザーはFlash Playerから提供された矩形をそのdirty regionに追加する。</li>
<li>ブラウザーは描画リスト（HTML DOM）を検索し、dirty regionが含まれるノードを一つ一つ描画していく。</li>
<li>ブラウザーはFlash Playerインスタンスが含まれるノードを見つけると、まずHTMLの背景を描画する。次にFlash Playerに対して、要求された領域を直ちに描画することを伝えるイベントを投げかける。</li>
<li>Flash Playerはここでやっとフレームを描画する。</li>
</ol>
<p>まあ今のところはそこそこ合理的だと思う。じゃあ技術的な問題とは何か？例えばページの背景にCSS gradientを用いたような、非常に込み入ったHTMLページを考えてみよう。そこに秒間30フレームで動作するSWFファイルを追加する。すると、Flash Playerではなく、ブラウザー側で非常に時間がかかるということがわかるだろう。ここでCore Animationが真価を発揮することになる：ステップ3と4が要らなくなるのだ（SWFが最前面に表示された最大の（？）オブジェクトである限り）。</p>
<h3>Flash PlayerでのCore Animation</h3>
<p>Flash Player 10.1では、この技術的な問題を解決するため、Core Animation描画モデルを実装した。Instead of using a CGImageRef + <a href="http://developer.apple.com/mac/library/DOCUMENTATION/GraphicsImaging/Reference/CGContext/Reference/reference.html#//apple_ref/c/func/CGContextDrawImage" target="_blank">CGContextDrawImage</a> to get the bits to screen we pass a <a href="http://developer.apple.com/Mac/library/documentation/GraphicsImaging/Reference/CAOpenGLLayer_class/Introduction/Introduction.html" target="_blank">CAOpenGLLayer</a>  to Safari and use an OpenGL texture of type GL_TEXTURE_RECTANGLE_ARB to get our bits to the screen.</p>
<p>Core Animation描画モデルのサポート自体はAppleからもたらされたもので、僕たちは両者にとってこの技術的な成果が完了できるよう、一生懸命取り組んだんだ。その通り！これはまさに、AppleとAdobeのエンジニアが合同で努力したものなんだ。SafariとCore Animationプラグインとのほぼ完全な統合を果たした今、Flash Playerの将来のバージョンでは、Open GLの能力をさらに活かせたらいいなと思っている。そして、それが特別なwmodeとかを設定しなくても済むようにと。I am pretty stoked about it.</p>
<p>2010年2月10日現在、皆さんに公開できるような安定した状態に近づいている。つまり、Flash Player10.1, OS X 10.6とSafariのアップデート版（あるいはナイトリービルドのWebKit）が必要になるだろう。それらが無い場合には何も見えないだろう。</p>
<h3>一体どんな違いがあるの？</h3>
<p>これがFlash Playerのパフォーマンス問題に関する万能薬だということはない。ただ、ブラウザー上でのより複雑なWEBコンテンツの体験を向上するという、より大きな目的に対する小さなステップだと言える。ここに、Flash Player 10.0 とFlash Player 10.1との比較が可能な<a href="http://www.kaourantin.net/swf/swoosh.html" target="_blank">テストケース</a>を用意した（Safariでのみ動作）。これはあくまで極端なテストケースであるという事を忘れないようにね。</p>
<p>Flash Player 10.0 + nightly WebKit + OS X 10.6<br />
<img src="http://www.tonpoo.com/blog/wp-content/uploads/2010/02/FlashPlayer100-300x109.jpg" alt="FlashPlayer100" title="FlashPlayer100" width="300" height="109" class="alignnone size-medium wp-image-842" /></p>
<p>Flash Player 10.1 + nightly WebKit + OS X 10.6<br />
<img src="http://www.tonpoo.com/blog/wp-content/uploads/2010/02/FlashPlayer101-300x130.jpg" alt="FlashPlayer101" title="FlashPlayer101" width="300" height="130" class="alignnone size-medium wp-image-843" /></p>
<p>追伸：Core AnimationがCocoa APIだって気づいたかな？そう、Flash Player 10.1はついに真のCocoa appになったんだ（非CocoaのFirefoxやOperaをサポートするCarbon fallbackもついてるよ）。</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.tonpoo.com/blog/2010/02/flashplayer10-1-mac-core-animation-tinic-uro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tonpoo.com/blog/2010/02/flashplayer10-1-mac-core-animation-tinic-uro/" />
	</item>
		<item>
		<title>Flash Text Engineを使った縦書きのFlashサイト</title>
		<link>http://www.tonpoo.com/blog/2010/02/flash-text-engine-flash/</link>
		<comments>http://www.tonpoo.com/blog/2010/02/flash-text-engine-flash/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 01:44:34 +0000</pubDate>
		<dc:creator>tonpoo</dc:creator>
				<category><![CDATA[cool]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://www.tonpoo.com/blog/?p=823</guid>
		<description><![CDATA[FlashPlayer10ではFlash Text Engine (FTE) が導入され、テキスト表示まわりが強化されました。Text Layout Framework (TLF) というのは、このFTEを使いやすくするためにアドビが提供しているフレームワーク。そのTLFを使用して構築した、秀逸な縦書き表示のサイトを見つけました。 macromarionette （ネタ元：feb19.jp blog &#8211; Flash CS5 を予習　～Text Layout Framework (TLF) 編～） ちなみにこちらのサイト、TLFの他にも、表示部分の管理にはProgression4パブリックベータを、記事管理にはWordPressを使ってるそうです。 縦書きサイトといって自分が思い出すのは、作家筒井康隆氏の日記サイト「笑犬楼大通り 偽文士日碌」。アサヒネットが開発したソフトを利用して作成してるそうで、「ブログ間隔で簡単に情報の更新ができる」そうだけど、結局は画像として出力しているのがどうにも前時代的というか、制作側の立場としては不自由な印象が否めませんでした。 FTE / TLFはFlashの機能・フレームワークなので、使い方を学習すれば、自由に縦書きサイトを構築できそうですね。しかしProgressionもまだ満足に使えてないし、HTML5もあるし、勉強する事、たくさんあるなあ・・・。]]></description>
			<content:encoded><![CDATA[<p><a href="http://macromarionette.com/" target="_blank"><img class="alignnone size-full wp-image-824" title="ss" src="http://www.tonpoo.com/blog/wp-content/uploads/2010/02/ss.jpg" alt="ss" width="396" height="364" /></a></p>
<p>FlashPlayer10では<strong>Flash Text Engine (FTE) </strong>が導入され、テキスト表示まわりが強化されました。<strong><a href="http://labs.adobe.com/technologies/textlayout/" target="_blank">Text Layout Framework (TLF) </a></strong>というのは、このFTEを使いやすくするためにアドビが提供しているフレームワーク。そのTLFを使用して構築した、秀逸な縦書き表示のサイトを見つけました。</p>
<p><strong><a href="http://macromarionette.com/" target="_blank">macromarionette</a></strong><br />
（ネタ元：<a href="http://feb19.jp/blog/archives/000185.php" target="_blank">feb19.jp blog &#8211; Flash CS5 を予習　～Text Layout Framework (TLF) 編～</a>）</p>
<p>ちなみにこちらのサイト、TLFの他にも、表示部分の管理には<strong>Progression4</strong>パブリックベータを、記事管理には<strong>WordPress</strong>を使ってるそうです。</p>
<p>縦書きサイトといって自分が思い出すのは、作家筒井康隆氏の日記サイト「<strong><a href="http://shokenro.jp/shokenro/book-cover/" target="_blank">笑犬楼大通り 偽文士日碌</a></strong>」。アサヒネットが開発したソフトを利用して作成してるそうで、「ブログ間隔で簡単に情報の更新ができる」そうだけど、結局は画像として出力しているのがどうにも前時代的というか、制作側の立場としては不自由な印象が否めませんでした。</p>
<p>FTE / TLFはFlashの機能・フレームワークなので、使い方を学習すれば、自由に縦書きサイトを構築できそうですね。しかしProgressionもまだ満足に使えてないし、HTML5もあるし、勉強する事、たくさんあるなあ・・・。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tonpoo.com/blog/2010/02/flash-text-engine-flash/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tonpoo.com/blog/2010/02/flash-text-engine-flash/" />
	</item>
	</channel>
</rss>
