Flash 8

ローカルファイルセキュリティ

そろそろやっとFlash 8もやっていかないと怒られそうなので勉強する。特に目を引いた機能の追加や変更はとりあえず二点。

ローカルにて表示・実行されるSWFファイルはアクセスできるデータの種類によって、「Untrusted(ローカルのみ)」と「ネットワークのみ」と「Trusted(両方OK)」に分類される。これまで通りだと問答無用で "Untrusted" になる。

これは、ローカルのデータを読み出してネットワークに送信してしまうような悪意のあるSWFの実行を防ぐためである。ちなみに残念ながら、これまでのバージョンのSWFはよく考えたら送り放題である。

CDROM配布のコンテンツなど、"Trusted" に分類されて欲しい場合は、インストラクションを制作してユーザに設定ファイルを記述・配置してもらうか、予め記述しておいた設定ファイルを配置するインストーラを制作し、ユーザに実行してもらう必要がある。

ちなみに、「ネットワークのみ」設定のバージョン8のSWFが、送りたい放題だったバージョン7以前のSWFの親になり、ローカルデータを読み出させてからそのデータを受け取ることはできない。
ドメインが違うSWFがそれぞれ別のゾーンに割り当てられデフォルトでは相互に通信できないのと同様に、「ローカルのみ」と「ネットワークのみ」と「両方OK」は別のゾーンとして扱われ、それぞれのSWFは相互に通信できない。

この「ゾーン=サンドボックス」の分類については、

こちらの図表がわかりやすい。

もう一点は、

イメージAPI

で、ついに画面上の、つまり「レンダリング後」の画面、ビットマップデータにアクセスできるようになった。作る方もできるようになった。つまり、ユーザーがぐにょぐにょぐにょーっとやった後のとあるムービークリップの(ビットマップの変わりっぷりの)状態とか、スクリプトによって適当に絵が重なった部分のある一点の色を取得したりできる。

これは、同僚のFlashマスターと共に昔「この、この…(手をニギニギしながら宙を泳がせる)、レンダリング後のビットマップに触れればいいのにね…」と悲嘆にくれたことがあったので、感動である。

新たに導入されたフィルタもActionScriptから操作できるので、パフォーマンスの問題を置いておくとすると、「逃げ水」とか「湯気」とかそういう動く空気感系エフェクトをActionScriptからかけられるということで、そうなると、なんというか、そろそろ専門職の人に任せないといけない感じだ。