2010
3/3

BitmapDataの「2880ピクセルの罠」もとい、「幅or高さ8,192ピクセル&ピクセル総数16,777,216の罠」

またまた今更ながらの備忘録メモ。FlashPlayer8から使えるようになったBitmapDataクラスによって、動的にフィルターをかけたり、グラデーションのついたマスク表現などを使えるようになりました。

が、フィルターやグラデーションマスクといった機能、サイズ(ファイルサイズではなく、width x heightのサイズ)の大きな画像やオブジェクトに対しては効きません。具体的には、対象となるオブジェクトのwidthまたはheightが2880ピクセルを超過すると、こうした機能が無効になります。

で、その詳しい理由については下記のURLが詳しい:

Flash 8 のイメージ API の概要 | デベロッパーセンター

該当する部分の引用:

メモ : Flash Player では、ビットマップの最大サイズは幅、高さいずれも 2880 ピクセルに制限されています。この制約よりも大きい BitmapData インスタンスを作成しようとすると、ビットマップは作成されません。これは、クライアントの RAM を使い切るような Flash ムービーを作成できないようにするために設定されています。2880 × 2880 ピクセルのビットマップには、約 32 MB 程度の RAM が必要です。

残念ながらFlashPlayer10でもまだこの点についての変更は無い模様。なぜこの記事を書いてるかというと、今現在この問題で引っかかってるため。さて、どうして回避したものか・・・。

<追記>

kaedeさんからコメントで情報いただきましたが、FlashPlayer10からはBitmapDataサイズの制限が拡大されていますね。

BitmapData – ActionScript 3.0 言語およびコンポーネントリファレンス

当該部分を引用:

AIR 1.5 および Flash Player 10 では、BitmapData オブジェクトの最大サイズは幅または高さが 8,192 ピクセルで、ピクセルの総数は 16,777,216 を超えないようにする必要があります(したがって、BitmapData オブジェクトの幅が 8,192 ピクセルの場合、高さは 2,048 ピクセル以下にする必要があります)。Flash Player 9 以前および AIR 1.1 以前では、高さの制限は 2,880 ピクセル、幅の制限は 2,880 ピクセルです。幅または高さに 2880 より大きい値を指定すると、新しいインスタンスは作成されません。

なるほど、8192 x 8192ピクセル、ってのはダメなんですね。で、改めて今回作業してるファイルを見ると、cacheAsBitmapかけようと思ったインスタンスの横幅が9600ピクセル・・・。そ、そりゃあダメですよね。

カテゴリー: actionscript2, actionscript3, troublesコメント (2)— tonpoo @ 12:37 PM

2010
2/16

IEのプライバシーモードの終了時にLocal Shared Object(Flashクッキー)も削除されるようになったそうな

ネタ元はライフハッカーの下記記事:
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コンテンツのあるサイトを表示すると"Flash Cookies"が生成される。これは、各ウェブサイトのデータを保存するためにFlashが生成するファイルだ。これからは、IEの履歴やクッキーと同じように、IEのInPrivate Browsingウィンドウを閉じると、これらのFlashオブジェクトも削除されるようになる。

Flashが我々のInPrivate Browsing機能を適用してくれて本当に嬉しい。FirefoxとChromeのプライベートブラウズについても同様にサポートしてくれたのも嬉しい。Flashチーム、GJ!

「Flashのバージョン10.1」ってのは、FlashPlayerの10.1のことでしょう。つまり、今後はIEをプライバシーモードで使っていた場合、ウィンドウを閉じた時、履歴やクッキーと共に、Local Shared Objectについても削除されるようになりますよ、ってことですね。ライフハッカーの記事では「他のブラウザもじきに対応するようになる模様です。」とあるけど、msdnの記事の末尾では既にサポートしてる風な感じがするのは気のせいでしょうか。

カテゴリー: flash, software, topicsコメント (0)— tonpoo @ 6:19 PM

2010
2/12

FlashPlayer10.1(Mac版)のCore Animation対応について-Tinic Uro氏のブログ記事より

AdobeエンジニアのTinic Uro氏がブログで書いた記事が一部で話題になっています。

kaourantin.net: Core Animation

Windowsユーザーの自分にはピンと来ないものの、どうやらMacでのFlashPlayerのパフォーマンスが(かなり?)向上するという話の様子。ということで、早速自分なりに意訳してみました。間違ってるところなどあるかもしれませんので、あくまで以下文章についての正確な内容は上記Tinic氏の元記事をご覧下さい。

(続きを読む…)

カテゴリー: flash, mac, topics, 未分類コメント (0)— tonpoo @ 2:09 PM

2010
2/2

Flash Text Engineを使った縦書きのFlashサイト

ss

FlashPlayer10ではFlash Text Engine (FTE) が導入され、テキスト表示まわりが強化されました。Text Layout Framework (TLF) というのは、このFTEを使いやすくするためにアドビが提供しているフレームワーク。そのTLFを使用して構築した、秀逸な縦書き表示のサイトを見つけました。

macromarionette
(ネタ元:feb19.jp blog – Flash CS5 を予習 ~Text Layout Framework (TLF) 編~

ちなみにこちらのサイト、TLFの他にも、表示部分の管理にはProgression4パブリックベータを、記事管理にはWordPressを使ってるそうです。

縦書きサイトといって自分が思い出すのは、作家筒井康隆氏の日記サイト「笑犬楼大通り 偽文士日碌」。アサヒネットが開発したソフトを利用して作成してるそうで、「ブログ間隔で簡単に情報の更新ができる」そうだけど、結局は画像として出力しているのがどうにも前時代的というか、制作側の立場としては不自由な印象が否めませんでした。

FTE / TLFはFlashの機能・フレームワークなので、使い方を学習すれば、自由に縦書きサイトを構築できそうですね。しかしProgressionもまだ満足に使えてないし、HTML5もあるし、勉強する事、たくさんあるなあ・・・。

カテゴリー: cool, flashコメント (2)— tonpoo @ 10:44 AM

2010
2/1

Firefox3.6でフルFlashサイトを表示した際に余計なスクロールバーが表示されてしまう問題の解決策(SWFObject2.x版)

Firefox3.6になってから、フルFlashサイト(ブラウザ領域の横100%x高さ100%にFlashコンテンツを表示しているサイト)で、「Flash領域をクリックすると余計なスクロールバーが表示される」という問題が出るようになった件、解決策を見つけました!

(続きを読む…)

カテゴリー: firefox, flash, tips, troubles, 未分類コメント (5)— tonpoo @ 12:32 PM

2010
1/29

Firefox3.6の導入&挙動変更(Ctrl+W, window.open, フルFlashサイト)

All-in-one gesturesが、以前と同じく、開発者のサイトの方でFirefox3.6に対応するようになっていたこと、また、HttpFoxがもし使えなくても、Firebugの「接続」タブで代用できそうだと思ったので、あらためてFirefox3.6を導入!

・・・してみたら、あれ?HttpFoxのアイコンが出てる

試しにクリックしてみると、ちゃんと動作する。はて?前回試したときからのこの数日間で対応したのかな?まあいいや。というわけで、HttpFoxもそのまま使えて、晴れて3.5の時と同じアドオン環境になりました。

でもって、今のところ気が付いた点。

(続きを読む…)

カテゴリー: firefox, flash, troublesコメント (0)— tonpoo @ 11:19 AM

2010
1/22

Gordon:JavaScript製のオープンソースFlashPlayer

swfコンテンツを再生・表示するためのソフトウェアといえば言うまでもなくAdobeのFlashPlayerなわけですが、実はその他にもGnashのようなサードパーティー製のFlashPlayer(というか、swf再生ソフト?)というのはいくつか存在しています。

で、今回のGordonもどうせその類だろうと思って記事を読んでみたら、なんとJavaScript製(?)だって言うじゃないですか。ってことは、プラグインとかなくても、JavaScript(とSVGとHTML5)に対応してるブラウザがあれば、SWFコンテンツを表示できるってこと。具体的には、FlashPlayerに対応してないiPhoneやGoogle携帯なんかでも、SWFコンテンツが見れるようになるってことですね!実際、下記ページで、このGordonを使ってswfコンテンツの再生を行うデモが見れます。

These are demos of Gordon – An open source Flash™ runtime written in pure JavaScript with SVG
(※blue.htmlとかがデモです。SVGとHTML5に対応してないブラウザで見てもたぶん動かないはず・・・)

むむ、これは結構すごいかも。まだ開発途上で問題も多いようですが、面白そうなプロジェクトなので、今後に期待。

元ネタ1:JavaScriptで書かれたオープンソースFlashプレイヤー – スラッシュドット・ジャパン

元ネタ2:まさに発想の転換。Jailbreak無しでiPhoneをFlash対応にする方法。 : Gizmodo Japan(ギズモード・ジャパン), ガジェット情報満載ブログ

カテゴリー: flash, html5コメント (0)— tonpoo @ 1:30 PM

2010
1/12

navigateToURL+IE+wmode:”transparent”の憂鬱

addEventListenerの書き方の定番」や「ステージのインスタンスを自動宣言」と同じような、備忘録を兼ねたas3メモ。

as3で他ページへのリンクを実装する場合、通常はnavigateToURLメソッドが使われます。

package {
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
	import flash.net.navigateToURL;
	import flash.net.URLRequest;

	public class Main extends MovieClip {
		btn.addEventListener(MouseEvent.CLICK, onBtnClick, false, 0, true);
	}

	public var btn:MovieClip;

	public function onBtnClick(e:MouseEvent):void {
		var url:String = "http://www.tonpoo.com/";
		var req:URLRequest = new URLRequest(url);
		navigateToURL(req, "_self");
	}
}

(続きを読む…)

カテゴリー: actionscript3, tips, troublesコメント (0)— tonpoo @ 9:36 PM

2010
1/6

ついにスマートフォンでFlashが

Google謹製のスマートフォン、もとい"superphone"であるNexus Oneが正式発表されました。

Google初の自社製スマートフォン「Nexus One」が正式発表、価格は1万円台半ばから – GIGAZINE

といってもGoogleフォン自体は既に日本でも出てるし、Nexus Oneの話にしたってこれまでにもいろいろ見てたのですが、今回注目したのは下記の記事:

動画:Adobe、Nexus One上でFlash 10.1 betaをデモ

そう、iPhoneや既存のGoogleフォンにも搭載されていないFlashPlayer(それも最新版)が動くんだそうです!むー、日本でも早めに販売してくれないかな。それもドコモから。それも安価で・・・。まあ、無理でしょうなあ・・・・・・・。

カテゴリー: flash, googleコメント (0)— tonpoo @ 11:37 AM

2009
12/25

ByteArrayクラスを使って配列やオブジェクトのコピーを生成する

まず、”name”, “birth”, “part”というプロパティを持つオブジェクトを生成し、それぞれのプロパティに値を入れる。

var obj1:Object = new Object();
obj1.name = "John";
obj1.birth = 1940;
obj1.part = "guitar";
trace(obj1.name);	//出力:John

次に、このオブジェクトのコピーを作成し、一部のプロパティを変更するために、以下のスクリプトを実行する。

var obj2:Object = obj1;
obj2.name = "George";
obj2.birth = 1943;
trace(obj1.name, obj2.name);	//出力:George George

すると、コピー先(obj2)だけでなく、コピー元(obj1)のプロパティまでも変更されてしまっている。

これは、obj2 = obj1; としたとき、obj1をコピーしているのではなく、obj1への参照を作成しているにすぎないためである。
(続きを読む…)

カテゴリー: actionscript3コメント (0)— tonpoo @ 12:57 PM

古い投稿 »