Facebookのニュースフィードに埋め込まれるフラッシュswfオブジェクトがあります。swfファイル自体以外は制御できません。それは私たちのサーバーでホストされており、私は私たちのメインのウェブサイトが設定するクッキーを読むことができる必要があります。
私が見つけることができるすべては、外部のjavascriptを使用してCookieを読み取り、設定することについて話しますが、フラッシュ自体の内部からそれを実行したいと思います。
Facebookのニュースフィードに埋め込まれるフラッシュswfオブジェクトがあります。swfファイル自体以外は制御できません。それは私たちのサーバーでホストされており、私は私たちのメインのウェブサイトが設定するクッキーを読むことができる必要があります。
私が見つけることができるすべては、外部のjavascriptを使用してCookieを読み取り、設定することについて話しますが、フラッシュ自体の内部からそれを実行したいと思います。
実際、ExternalInterfaceを使用すると、人々が認識しているよりもはるかに多くのことができます。AS3で関数を定義し、ExternalInterface.callのパラメーターとしてExternalInterfaceに渡します。これをメインクラスのプロパティとして使用して、単純なAS3プロジェクトを作成しました。
private var myTestJS:String = "function myTest(parameter){alert(parameter);return parameter;}";
そしてこれはコンストラクターで
var mycookievalue:String = ExternalInterface.call(myTestJS, "Yay for ExternalInterface");
簡単なプロジェクトを作成し、それをデバッグすると、アラートが呼び出され、mycookievalueが正しく設定されていることがわかります。これで、Cookieを取得するために、テスト関数をjsコードに置き換える必要があります。
FlashPlayerはブラウザのCookieにアクセスできません。ExternalInterfaceアプローチは、JavaScriptにそれを実行させるためのトリックです。
Flash Playerは、FlashPlayerのバージョンのCookieに似た共有オブジェクトにアクセスできます。ただし、通常、FlashとブラウザはCookieを共有しません。