Playerのセキュリティのうちクロススクリプティングに焦点を当てます。crossdomain.xmlをご覧下さい。Playerデベロッパーセンターにある以下の記事が参考になります。セキュリティに詳しく掲載されています。クロススクリプティングとはどんな操作を指すのかまとめてみます。main.swf、外部リソースをresource.swfとします。同一ドメインから外部リソースをロードするswfのドメインをswf.example.comとすると、フローは以下のようになります。[/caption]http://swf.exapmle.com/main.swfへアクセスmain.swfを受け取るmain.swfからhttp://swf.exapmle.com/resource.swfをロードするresource.swfを受け取るresource.swfに定義されている変数、メソッド、クラスにアクセスする同一ドメイン内のswfファイルを扱う際には、簡単ですね。別ドメインから外部リソースをロードするmain.swfからresource.swfをロードする2つの方法を紹介します。外部リソースに対してクロススクリプティングを行う際には、外部リソースにおいて、ロード元のswfのドメインからのアクセスの許可が必要です。resource.swf内では以下の記述が必要です。Security.allowDomain("swf.example.com");フローは以下のようになります。基本的に、外部リソースに対してクロススクリプティングを行う際には、外部リソースにおいて、ロード元のswfのドメインからのアクセスの許可が必要です。URLLoaderを使い、ロードしたURLLoaderインスタンスのdataプロパティをLoaderインスタンスのloadBytesメソッドに渡す事で、外部リソースに対してクロススクリプティングが可能です。ファイルのセキュリティドメインに配置されるためです。その際、URLLoaderインスタンスのloadメソッドは、データのロードにあたるので、外部リソースのドメインに配置したポリシーファイルにおいてロード元のドメインが許可されている必要があります。http://other.example.net/crossdomain.xmlの内容の一例は以下のようになります。フローは以下のようになります。[/caption]http://swf.exapmle.com/main.swfへアクセスmain.swfを受け取るhttp://other.example.net/crossdomain.xmlへアクセスcrossdomain.xmlを受け取るmain.swfからhttp://other.exapmle.net/resource.swfをロードするresource.swfを受け取るresource.swfに定義されている変数、メソッド、クラスにアクセスするロードのサンプルここでサンプルとして、以下のようなpublicメソッドを持つ簡易アバターを作成しました。アバターがアニメーションします簡易アバターのURLは以下となります。avatar1.swfとavatar2.swfはまったく同じ機能をもったswfですが、下記の記述はavatar2.swfにしかありません。Security.allowDomain("fla.la");つまり、avatar2.swfはfla.laドメインに配置されたswfからパブリックメソッドを実行出来ます。LoaderとURLLoaderでこれらの簡易アバターをロードしたのち、クロススクリプティングで操作するコードを紹介します。Loaderを使う際のサンプルコード以下をドキュメントクラスとするswfをfla.laドメインへ配置するとします。}}32行目の処理は、Loaderクラスのcontent変数を通じて、ロードしたswfファイルを参照するオブジェクトを取得することに該当するので、外部リソースのswfでSecurity.allowDomain()メソッドの処理が必要となります。}URLLoaderを使う以下をドキュメントクラスとするswfをfla.laドメインへ配置するとします。URLLoaderを使う場合はavatar1.swfでもavatar2.swfでもロードした後に、アニメーションを開始することが可能です。http://asmple.com/crossdomain.xmlにて以下の記述が必要となります。}}動くサンプル別ドメインの外部リソースのメッソドにアクセスする例を紹介します。Loaderを用いた実例http://fla.la/swf/cross_script3.swfから、先ほども紹介したhttp://asmple.com/work/avatar1.swfhttp://asmple.com/work/avatar2.swfをロードします。avatar2.swfがresource.swfとなります。以上を踏まえて、以下のサンプルを触ってみて下さい。ロードするswfを選択してloadボタンをクリックするとswfがロードされます。leftの各ボタンはswfに定義されたメソッドを実行します。leftの各ボタンをクリックするとSecurityErrorが発生しますが、avatar2.swfではロードされたswfがアニメーションを開始します。URLLoaderを用いた実例まったく同じサンプルですが、LoaderではなくURLLoaderを用いて外部リソースをロードしています。http://fla.la/swf/cross_script4.swfからhttp://asmple.com/work/avatar1.swfhttp://asmple.com/work/avatar2.swfをロードします。avatar2.swfがresource.swfとなります。avatar2.swfをロードする際にhttp://asmple.com/crossdomain.xmlをリクエストしていることが確認出来ると思います。Headersやfirebugを使うと簡単に確認出来ます。[/caption]crossdomain.xmlのロードはキャッシュするので、ロードの確認の際にはブラウザのキャッシュをクリアしてからお試し下さい。使わずに他の投稿をロードして使うことが出来ます。以下のようにブログパーツとして貼り付ける場合はwonderfl.netドメインのswfファイルを利用するようなので、リソース側のswfに以下の記述が必要です。resource.swfにあたります。main.swfにあたります。online他の投稿から使うライブラリ的なswfを投稿してみんなに使ってもらうことも出来そうですね。ちなみに、ちなみに、wonderflに投稿したswfのurlは以下のように取れます。loaderInfo.url;wonderflにも投稿してあります。onlineまとめ別ドメインの外部リソースを扱う際には、Loaderを使うのか、URLLoaderを使うのかによって、クロススクリプティングをする際にチェックするポイントが異なります。外部リソースのswfを扱うことで柔軟なflashアプリケーションを作成していきたいと思います。10注目記事-->引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。