ビットマップキャッシュの使いどころ
Flash8から追加されたビットマップキャッシュですが、使いどころを間違えるとえらい処理が重くなったりして死んじゃうので注意が必要。
基本_xと_y以外のプロパティを変更する時はビットマップキャッシュをかけちゃダメです。
軽くなるからーってノリで何でもかんでもかけてるとハマるのでご注意を。
Flash8から追加されたビットマップキャッシュですが、使いどころを間違えるとえらい処理が重くなったりして死んじゃうので注意が必要。
基本_xと_y以外のプロパティを変更する時はビットマップキャッシュをかけちゃダメです。
軽くなるからーってノリで何でもかんでもかけてるとハマるのでご注意を。
Flash8のときに別ドメインの画像をdrawしようとしたらできなかった。
これに関してはnaoさんとこの記事とかを事前に知っていたので回避はできました。
でもこれ、FlashPlayer9がでて解消されたらしい。(未確認)
FlashPlayer8のバグだったのかな?
いまさらながらはじめてFileReferenceを使いました。
画像のアップロード自体はいつものようにcrossdomain.xmlの指定でOK。
アップロードが完了した後にサーバーからの戻り値が取得したい。
そんな時はアップロードする前にLoadVarsかなんかでサーバー側に接続をしておいてセッション管理するしかなさそう。
actionscriptでいろいろごにょごにょやってるうちにスコープが訳わからなくなったりとか、ここのthisスコープはこれじゃあんわーって感じのときとかに使うといい感じ。
//_rootフレームアクション mcA.onPress = pressA; function pressA() { trace(this);//output '_root.mcA' }import mx.utils.Delegate; mcB.onPress = Delegate.create(this, pressB); function pressB() { trace(this);//output '_root' }
とりあえず使うときはこんな感じで。
setIntervalで使うときは
import mx.utils.Delegate;
setInterval(Delegate.create(this, intervalAction), 1000);
function intervalAction() {
trace(this);
}
このDelegateはフレームアクションで使っても余りメリットというものがなく、クラス内で使うと幸せになれる。
import mx.utils.Delegate; class A { function A(mcA:MovieClip, mcB:MovieClip) { mcA.onPress = runA; mcB.onPress = Delegate.create(this, runB); } /** mcAで実行するfunction */ function runA() { trace(this);//output: "mcA" } /** mcBで実行するfunction */ function runB() { trace(this);//output: "object : Object"(クラスA自身) } }