またまた今更ながらの備忘録メモ。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ピクセル ・・・。そ、そりゃあダメですよね。
ネタ元はライフハッカーの下記記事:
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の記事の末尾では既にサポートしてる風な感じがするのは気のせいでしょうか。
AdobeエンジニアのTinic Uro氏がブログで書いた記事が一部で話題になっています。
kaourantin.net: Core Animation
Windowsユーザーの自分にはピンと来ないものの、どうやらMacでのFlashPlayerのパフォーマンスが(かなり?)向上するという話の様子。ということで、早速自分なりに意訳してみました。間違ってるところなどあるかもしれませんので、あくまで以下文章についての正確な内容は上記Tinic氏の元記事をご覧下さい。
(続きを読む…)
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もあるし、勉強する事、たくさんあるなあ・・・。
Firefox3.6になってから、フルFlashサイト(ブラウザ領域の横100%x高さ100%にFlashコンテンツを表示しているサイト)で、「Flash領域をクリックすると余計なスクロールバーが表示される」 という問題が出るようになった件、解決策を見つけました!
(続きを読む…)
All-in-one gesturesが、以前 と同じく、開発者のサイト の方でFirefox3.6に対応するようになっていたこと、また、HttpFoxがもし使えなくても、Firebugの「接続」タブで代用できそう だと思ったので、あらためてFirefox3.6を導入!
・・・してみたら、あれ?HttpFoxのアイコンが出てる 。
試しにクリックしてみると、ちゃんと動作する。はて?前回試したときからのこの数日間で対応したのかな?まあいいや。というわけで、HttpFoxもそのまま使えて、晴れて3.5の時と同じアドオン環境になりました。
でもって、今のところ気が付いた点。
(続きを読む…)
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(ギズモード・ジャパン), ガジェット情報満載ブログ
「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");
}
}
(続きを読む…)
Google謹製のスマートフォン、もとい"superphone"であるNexus One が正式発表されました。
Google初の自社製スマートフォン「Nexus One」が正式発表、価格は1万円台半ばから – GIGAZINE
といってもGoogleフォン自体は既に日本でも出てるし、Nexus Oneの話にしたってこれまでにもいろいろ見てたのですが、今回注目したのは下記の記事:
動画:Adobe、Nexus One上でFlash 10.1 betaをデモ
そう、iPhoneや既存のGoogleフォンにも搭載されていないFlashPlayer(それも最新版)が動く んだそうです!むー、日本でも早めに販売してくれないかな。それもドコモから。それも安価で・・・。まあ、無理でしょうなあ・・・・・・・。
まず、”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への参照を作成しているにすぎないため である。
(続きを読む…)