HTML5はFlashの3倍重かった! 描画パフォーマンスの比較 | ClockMaker Blog
Flashに比べて遅いというのは、本能的にわかっていたが、計測してもやっぱり遅かったとのこと。
バッテリー消費量やら、サイズの違いによる最適なスペックやら色々要因はあるんだが、HTML5へのシフトはすごい勢いで進んでいる気がする。ま、個人的にはそもそもブラウザじゃないだろという気もしているので、FlashでもHTML5でもどっちでも構わない気もする。
もう1ヶ月ぐらい停滞している。
タグ: flash
なんだかよく分からないですが、Photoshopを起動するとflashlog.txtにいきなり。
**********Running app: C:\Program Files\Adobe\Adobe Photoshop CS5 (64 Bit)\Plug-ins\Extensions\ScriptUIFlexServer-app.xml
ScriptUI is ready.
Host logging disabled Debug tracing disabled
Finished loading style definitions
なメッセージが現れて、以降Traceできなくなる。
なんぞこれなんぞこれ?
Photoshop立ち上げながらデバッグできないじゃないですか!
なんですかなんですか!
embedしたbitmapDataを再度使用したい時、dispose自体はnullにする動作では無いために、bitmapDataインスタンスは存在した状態になっている。つまり
ってなやり方では、しれっと何も表示されないので、以下のように例外処理を利用して判定する。
ちなみにdisposeの挙動としては
BitmapData.dispose() は、実際のビットマップデータが占めていたメモリ領域を即時に解放します(ビットマップは最大で 64MB のメモリ領域を使用します)。BitmapData.dispose() を使用した後は BitmapData オブジェクトを使用できなくなり、BitmapData オブジェクトに対して関数を呼び出すと、Flash ランタイムから例外が返されます。ただし、BitmapData.dispose() では BitmapData オブジェクト(約 128 バイト)のガベージコレクションは行われません。実際の BitmapData オブジェクトが占めていたメモリ領域は、ガベージコレクターによって BitmapData オブジェクトが回収された時点で解放されます。
な感じになっている。
ま、今更なんの話だ?っつー感じではあるのだけど・・・
もし汎用的に参照する必要があるのであればgetter化してしまえばいい。
Molehillメモ
1)MovieClipにisPlayingプロパティが追加になっているので、ProgressionのExMovieClipのisPlayingに”override”追加。
2)JSONクラスがルートクラスで追加されたので、”com.adobe.serialization.json.JSON”を使ってる場合、フルパスに書き直すか、クラスを切り替える。
新しいJSONクラスのメソッドは以下の二つ
JSON.stringify(value:Object,replacer:*=null,space:*=null):String
JSON.parse(text:String,reviver:Function=null):Object
個人的にはメソッド名を同じにしてくれておいてくれればよかったんじゃないかと思うけど。
(com.adobeなんだし・・・)
とりあえず目についたのはこの2つ。
ちょっとExternalInterface周りで少し怪しい感じがするところがあるけれど、そこはおいおい。
3D関係は、もっと詳しい人達のブログを参照してください。
Ref.馬鹿全
Molehill | ClockMaker Blog
cellfusion blog » Molehill のローレベル API で遊ぼう
環境整備は馬鹿全 – FlashDevelop + FlashPlayer11(Molehill) + Away3D 4.0 Alpha での遊び方この辺を参考に。
走り書き。
Progression4 + SWFaddressでindexにQueryって駄目だったっけ?
#?id=112
みたいなの。
この形だとexternalChangeeがWebSynchronizer内のSceneId.validatePathに引っかかってgotoまで遷移しない。(Queryの場合はSceneEvent.SCENE_QUERY_CHANGEも呼ばれない)
とりあえず間にひとつシーンをかませば問題なく動作する。
#/v/?id=2
みたいなかんじ。
SWFAddress単体では動作していたような気もするのだけど、記憶が定かではない。
Ref.Asual | SWFAddress – Deep linking for Flash and Ajax
Progression – Framework for Flash
久々Progressionネタを書いてみる。
LoadBitmapDataのcompleteの処理はL193から以下のように記述されている。
これ、
super.throwError( this, err.message );
この部分
super.throwError( this, new Error(err.message) );
にしないと動かないんじゃないかしら?と思った。
そんなこたーないかしら?
もうライブラリに手を入れないようにしようと思っているけれど、ちょっとここは直さないと動かないんじゃないかなぁ?
TextAreaへのStyleSheet適応
fl.controls.TextAreaクラス。
納品物として使うことはまずないのだけど、デバッグとかでアウトプット表示に使うことは多々あります。で、そのアウトプットテキストの中にシーン遷移のリンクを入れたりしたい時に、StyleSheetを適応すると便利だろと。
で、以前はTextAreaに”stylesheet”というプロパテイがあった気がするのですが、今見てみると無い。(そのかわり”textField”というプロパティが追加されて、コンポーネント内部のtextFieldが直接参照できるようになっている。
で、textField.stylesheetとしてOKか?と言われるとそんなことは無く、
Error: Error #2009: このメソッドは、スタイルシートを使用するテキストフィールドに対しては使用できません。
at flash.text::TextField/setTextFormat()
at fl.controls::TextArea/drawTextFormat()
at fl.controls::TextArea/draw()
at fl.core::UIComponent/callLaterDispatcher()
こんなエラーが戻って来ます。
基本的にtextFieldで管理するんだから、styleSheet等使うんじゃない!ゴルァ!と言う感じの対応ですが、かろうじて”drawTextFormat”が”protected”なので、extendsで対応することにします。
こんな感じでとりあえず使えるようになります。
ただそもそもAdobeが何故StyleSheetを使用不可にしたのか?
致命的に解決できないバグがあるのか?は不明です。
その辺ご了承ください。
ちょくちょく変わるGoogle Analytics。
ga.jsになったのは去年の12月。久しぶりに見たらまたちょっと埋め込みコードが変わっているっぽい。(headの中に入れるようになっていた)
まぁ昔のやつでも動作するし、特に問題は無いのだけど、Getting Started with the Asynchronous Snippet – Google Analytics – Google Codeこの辺のやつにチラッとProgressionで対応できるように。
Progression純正のやつは”WebSynchronizer”になるのだけど、この中で定義されているのは
pageTracker._trackPageview
urchinTracker
の2タイプ。
新しいやつはswcコンポーネントから”GATracker”生成してやれということなのですが、”WebSynchronizer”の中に手を入れる必要があるので面倒だなと・・。
“GATracker”を使うメリットはそれなりにあるので、一応それのProgression連動クラスは作ってはいるけれど、使う必要が無い場合に純正のProgressionのまま対応する方法を考えてみた。