昨日は第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 – FlashDevelop3.1.1のプロファイラを使ってみる
時間のあるときに別のマシンでも試してみます。
SWFから動的にPDFファイルを生成するためのライブラリであるAlivePDFをちょっと使ってみました。
alivepdf – Project Hosting on Google Code
AIRなら単体でのPDF出力も可能なようですが、SWFファイルからだと単体では無理で、サーバー側にファイル出力用(?)のphpプログラムを設置する必要があるようです。ただ、そのphpプログラムも提供されていたので、とりあえず単純なプログラムを組んで試してみました。
(続きを読む…)
TechRadarに、Apple(ジョブス)対Adobe(Flash)の論争にOperaが参戦したという記事が掲載されました。Operaのプロダクトアナリストの人にインタビューした内容ということですが、簡単に和訳してみました。いつも通り(?)、適当訳なので意訳・誤訳が満載です。正確な内容は元記事を当たってみてください。
Opera joins in Jobs v Flash argument | News | TechRadar UK
以下、和訳文です。「卵が焼ける」とはずいぶんですね・・・。
(続きを読む…)
AS3から実装された、マウスホイールを検知するMouseEvent.MOUSE_WHEELイベントはMacでは動作しない、というのは知っていて、その問題を解消するためのライブラリがあるという話も聞いていたのですが、実際に使ってみる機会に遭遇したので、備忘録もかねて導入までのフローをメモしてみました。ちなみに参考にしたのはfeb19さんの以下の記事:
feb19.jp blog – SWFWheelを使う
導入したライブラリはSWFWheelです。実際の導入フローは以下の通り:
(続きを読む…)
twitterでも話題になってますが、FlashDevelop3.1.0 RTMが出ました。
(続きを読む…)
今日、Flashbugの設定をちょっと変更した瞬間から、Flashコンテンツのあるページを表示させるとやたらとブラウザ(Firefox)が落ちるようになってしまった。これがFlashbugを無効化したり削除したりしても直らない上、Google Chromeでも発生したことから軽くパニクったんですが、結論からいうと、Flashbugの設定画面からFlashPlayerの設定を変更してしまったことが原因のようでした。

ええ、仰るとおり、まさに"very easy to crash"でしたよ(涙)。上記のスクリーンショットのように、Undocumented Trace Log Settings欄のチェックを全て外したら、クラッシュせずに動くようになりました。
で、原因究明の過程でFirebugのオフィシャルページ(Flashbug – An extension for Firebug | Course Vector)の文章について簡単に翻訳してみた(してしまった)ので、備忘録をかねて参考までにアップしておきます。
(続きを読む…)
またまた今更ながらの備忘録メモ。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もあるし、勉強する事、たくさんあるなあ・・・。