Flash8 Image output

DS Lite
NintendoDS Lite、画面が明るくなってますやん。欲しいかも。何のゲームするってワケでもないけど。
cabel.name: Nintendo DS Lite Second Look

まぁ、そんな無駄遣いは、今の忙しい仕事の状況が終わるまで置いといて。


Flashでスクリーンの画像保存のお話と、実現ちょっと手前までのメモ。

結論から言うとローカルへの画像保存は出来ない。
どデカい画像を作られてHDDをいっぱいにされたりしてセキュリティ上よくないからだろう。
BitmapDataって強力なクラスを持っておきながら残念だ。

SharedObjectを使用して保存する事も出来そうだけど、この場合、jpeg等の画像データとして保存出来る訳ではない。取り扱いはあくまでテンポラリorキャッシュデータでバイナリになるみたい。

実はローカルでなければ保存は可能になる。例えばBitmapDataオブジェクトをPHPへ送りGDライブラリを使用して受け取ったデータを画像へ復元するやり方等。
そのままその画像をWebブラウザで表示させたり、後でメールで送られてくるなんて事が出来る。
ローカルでApacheとPHPを動かせば何とかなるだろうけど、配布目的のプロジェクタには向かない。

ちゅーことで残念ながらスマートに保存ダイアログを開き、名前をつけ、スクリーンの画像保存。ってのは無理。

スマートぢゃないやり方は、もちろんスクリーンショット、PrintScreenとかAlt+PrintScreenね。前から話に上がっているScreenweaverOSにはこれを呼び出す機能があって、これでいけるんじゃないかな。保存ダイアログも出せるみたいだし。

ウィンドウの矩形領域内を切り出せるのかどうかとか、マウスポインタがスクリーンショットに写らないかとか。あとオープンソースであるScreenweaverで作ったActionScriptソースの取り扱い、公開が必須なのかどうかとかは、、、

また次回。


fla:ver

swfからスクリーンセーバーを作成。
fla:ver

Liteバージョンは無料で使用できます。
Professionalバージョンは近日発表予定らしい。
Liteバージョンと違い解除イベント(マウス操作、キー操作)を無視するかどうかを決定できるので、マウスに反応するスクリーンセーバってのや、ちょっとしたゲームも作成可能かも。

まぁ、ScreenweaverOSでも同じことはできますな。

ちなみに開発のSERIALGAMES Inc.はPostPetの開発やってる会社ね。


Flash8 Event handling

今日は暖かいなぁ。単調なモデリング作業やってると眠くなってくる。

ちょっとFlashをいじる。
適当にサンプルを作っておきながら自分でもよく分からなかったので。メモと考察。

問題になっている内容はこんな感じ、だと思う。

Flashで画面遷移したい場合、通常Nextボタンなりを置くのが普通だが、なにも置きたくない、ただENTERキーで次のシーンへ移りたいんだ。

ってコトだろう、きっと。

普通はあるシーンのフレームへ

if(Key.isDown(Key.ENTER)) {
	gotoAndPlay(飛び先のシーンやフレーム);
}
stop();

って感じで書けばOKと思うよね。
でもコレだと、if()が実行されるのは1度っきり
続きを読む “Flash8 Event handling”


Making Things Move!


アマゾンから届いたブツその2
Foundation Actionscript Animation: Making Things Move (Foundation)

イントロ部分のChapter1を読んでちょっと疲れた。7ページほどしかないけど、

普通のアニメーションもいいけど、やっぱり見る度に違うアニメーションもいいよね。

って内容。すっ飛ばして読んでもOKだ。

Foundation Action Scriptってタイトルされてるがホントに最初だけ。

すぐにイベントリスナーの話やOOP、Drawing APIと続く。
中級って感じ。

速度、加速度のことはもちろん、角速度、角加速度なんてのも、衝突判定、バネとかBilliard Ball Physicsってのは多分、運動量を加味した衝突の内容。
最後のほうはBackface Culling and 3D Lightingだって、なんかすごいっす。

Flashでどれだけのパフォーマンスが出るか分からないけどテクニックはどれもFlashだけにとどまらない内容なのでちょっとお得な感じ。
3Dを説明してやろうって内容のものは初めてなんじゃない。

しかし数学や物理の方程式はいっさい載ってないのがちょっと疑問。


AMFPHP

FlashとPHP間でのデータ受け渡し方法をもう少し調べてみた。

結局のところLoadVar等を使用すると文字列のやり取り程度にならざるを得ない、PHPよりFlashへ配列を渡すには

  • PHPで適当なデリミタで文字列をつなげFlashへ
  • 受け取ったデータをFlash側でパースし配列へ復元

逆の場合も同じ手順を踏む必要がありややこしくってしゃ〜ない。

で、ひとまず、AMFPHPってブツがあることが分かった。PHPのFlash Remoting実装で、オブジェクトや配列を直接やりとりできるようになるらしい。
remotingconnector