なにやらローカルでswfを起動するときは色々と制限があるのでちょっとしらべてみた。
flash playerのセキュリティサンドボックスは大きく分けて、
リモートサンドボックスとローカルサンドボックスに分類されます。
- リモートサンドボックス
- リモート領域(インターネットのドメイン・サブドメインなど)から開かれたswfファイルにはすべてremoteセキュリティサンドボックスが割りあてられる。
- ローカルサンドボックス
- ローカル領域(ローカルエリア、ユーザのコンピューター)から開かれたswfファイルは
・local-with-filesystem・local-with-networking
・local-trusted
・AIR アプリケーションサンドボックス(今回は気にしない)
のいずれかのセキリティサンドボックスが割り当てられる。ローカルで開かれたswfにどのサンドボックスが割り当てられるかは
1 コンパイル時にローカルセキュリティサンドボックスタイプを選択しているか。
(パブリッシュ設定>Flashタブ>ローカルでの再生に関するセキュリティ から選択)
2 swfファイルが信頼されれたローカル領域から開かれているか。によって変わってくる。
ローカル領域の信頼された場所から開かれたswfはlocal-trustedが割り当てられます。
信頼されていない場所から開かれた場合はlocal-with-filesystemまたは、local-with-networkingが割り当てられます。
なんだか文章にすると意味不明。。
こんな感じになる。

各セキュリティの操作はざっと下記のようになっています。
remote(Web上にあるswfはみんなこのタイプだよ。)
| 操作 | ローカル領域 | swfの起源区域内にあるリモート領域のソース | swfの起源区域外にあるリモート領域のリソース |
|---|---|---|---|
| コンテンツの表示 (jpg gif swfなどの読み込み) |
× | ○ | ○ |
| データとしてのコンテンツへのアクセス
(flvやMP3の再生など) |
× | ○ | △
配布者の許可によってのみ許可 |
| データのロード | × | ○ | △
配布者の許可によってのみ許可 |
local-with-filesystem(何も設定せずにパブリッシュしたswfをローカルで実行とこのタイプだよ)
| 操作 | ローカル領域にある
非swfリソース |
local-with-filesystem.swf
ファイル |
local-with-networking
ファイル |
local-trusted
ファイル |
リモート領域のリソース |
|---|---|---|---|---|---|
| コンテンツの表示
(jpg gif swfなどの読み込み) |
○ | ○ | × | ○ | × |
| データとしてのコンテンツへのアクセス
(flvやMP3の再生など) |
○ | - | - | - | × |
local-with-networking(パブリッシュ時にリモートを選択するとこのタイプだよ)
| 操作 | ローカル領域にある
非swfリソース |
local-with-filesystem.swf
ファイル |
local-with-networking
ファイル |
local-trusted
ファイル |
リモート領域のリソース |
|---|---|---|---|---|---|
| コンテンツの表示
(jpg gif swfなどの読み込み) |
○ | × | ○ | ○ | ○ |
| データとしてのコンテンツへのアクセス
(flvやMP3の再生など) |
× | - | - | - | △
配布者の許可によってのみ許可 |
local-trusted(信頼されたファイルまたはエリアから実行されるswfはこのタイプだよ。なんでもできるよ。)
| 操作 | ローカル領域にある
非swfリソース |
local-with-filesystem.swf
ファイル |
local-with-networking
ファイル |
local-trusted
ファイル |
リモート領域のリソース |
|---|---|---|---|---|---|
| コンテンツの表示
(jpg gif swfなどの読み込み) |
○ | ○ | ○ | ○ | ○ |
| データとしてのコンテンツへのアクセス
(flvやMP3の再生など) |
○ | - | - | - | ○ |
ローカルに置いたswfからゴリゴリなんでも出来るようにするにはlocal-trustedサンドボックスにしてやる方法しかないようです。?(AIRは除く)
ではswfにlocal-trustedを付与するにはどのような方法があるのか調べてみました。
1つ目の方法はアドビのサイトで
「Flash Playerヘルプ」グローバルセキュリティ設定パネルで任意のフォルダを設定すれば
そのフォルダ以下に設置されたswfはlocal-trustedサンドボックスをなる。
がいちいち何台ものPCにセットアップしてもらうのは大変面倒であまりお仕事では使えない。。。
色々さがしてみると、
設定ファイルを作成すれば、手動で設定できるとのこと。
下記フォルダにFlashPlayerTrustを開き(無い場合は作成する)
Windows: system\Macromed\Flash(例:C:\WINDOWS\system32\Macromed)
ユニークな名前でore.cfgなどを作成します。
テキストエディタなどでlocal-trustedにしたいswfまでのパスを書くだけ。
グローバルセキュリティの設定と同じで許可をフォルダにすることも可能です。
これをインストーラーなどで設置すればよいわけです。
詳しくは下記参照
セキュリティサンドボックス
Flash Player セキュリティ
管理ユーザのコントロール
Flash 開発のための設定ファイルの作成
FlashPlayerTrust ファイルについて

