私は2つのSWF持っ乗算:(巻雲サービスを通じて)RTMFP複製 技術を使用してデータをロードすることができますフラッシュのSecurityDomain、P2Pの設定とSWFの
- アプリケーションのSWF
- のP2PクライアントのSWFを
主な考え方は、ドメインごとに1つのP2Pローダーを用意し、各ドメインの許可を何度も求めずにP2Pネットワークで動作できるようにすることです。
- アプリケーション1(http://domain1.com/app.swf)|
- アプリケーション2(http://domain2.com/app.swf)| < - > p2pデータローダー(http://domainp2p.com/p2pcli.swf)
- アプリケーションN(http://domainN.com/app.swf)|
p2pクライアントは要求によってバイナリデータを読み込みますが、コンテンツは実際には信じられません。
だから、私は次のクラス(app.swf)
public class ClientLoader {
// .. some code
public function load(cb:Function, err:Function):void
{
_cb = cb;
_err = err;
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, _onLoaded);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, _onIoError);
loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, _onSecurityError);
// note that context has neither application domain nor security domain
loader.load(new URLRequest(_url), new LoaderContext());
}
private function _onLoaded(e:Event):void
{
trace("Loaded. Connecting to the p2p network...");
_client = e.target.content;
_client.addEventListener(Event.CONNECT, _onClientReady);
_client.connect();
}
private function _onClientReady(e:Event):void
{
_cb(_client);
}
}
}
p2pclient自体( p2pcli.swf )を使用してp2pclient swfファイルを読み込む:
public class P2P extends Sprite
{
public function SqP2P() {
Security.allowDomain("*");
}
public function connect():void
{
_connection = new NetConnection();
_connection.addEventListener(NetStatusEvent.NET_STATUS, _netStatus);
_connection.connect(CIRRUS_ADDRESS, CIRRUS_KEY);
// after successful connect this method called
_loadGroup();
}
private method _loadGroup():void
{
var spec:GroupSpecifier = new GroupSpecifier(_name);
spec.serverChannelEnabled = true;
spec.objectReplicationEnabled = true;
_group = new NetGroup(connection, spec.groupspecWithAuthorizations());
_group.addEventListener(NetStatusEvent.NET_STATUS, _netStatus);
}
private function _netStatus(event:NetStatusEvent):void
{
trace("NetStatusEvent:", event.info.code);
}
}
をしかし、それはそのように見えますFlash Playerはセキュリティセッションを無視し、app.swfが属するドメインのポップアップ設定を保存しようとしていますが、p2pcli.swfドメインのポップアップ設定は保存しようとしていません。なぜ?!
私は絶対に同じコードを持っていますが、ローカル共有オブジェクトにデータを格納し、すべてのdomain1-2-N.comはそれへのアクセス権を持っているSWFにp2pcli.swf置き換えます。
アイデア?
私が知っている、私の英語はがらくた:(
ありがとうございました!ローカル共有オブジェクトは、ユーザーにとっても危険な可能性がありますが、意味があります。そして、他のドメインからの1つのLSOに(この厄介な設定ボックスを飛び出させることなく)要求を "proxing"する特定のドメイン上でswfを持つことは可能です。 – deadrunk
私の答えが助けられたら、賞金を授与することを忘れないでください!それ以外の場合は、何も起こらずに50を失うだけです。 – CodeMouse92
too late :(もう一度ありがとう) – deadrunk