我有两个swfs:
主要思想是在某个域上有一个p2p加载器,它能够在p2p网络中工作而不需要多次为每个域提供权限,例如:
p2p客户端按请求加载二进制数据,我相信内容无关紧要。
所以,我使用以下类加载p2pclient swf( 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 ):
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域的弹出设置。为什么呢?!
我有完全相同的代码,但是p2pcli.swf替换为swf,它将数据存储在本地共享对象中,并且所有domain1-2-N.com都可以访问它。
有什么想法吗?
我知道,我的英语很糟糕:(
答案 0 :(得分:1)
我真的不太确定,但我会把答案扔出去,以防它有用。
根据此类安全消息的一般目的,我不完全确定您是否可以阻止该对话框显示。在某些情况下,我某些Peer Assisted Networking可能会对某些人造成安全风险(无论如何,它正在使用他们的带宽。)在Flash设置中打开和关闭该通知的设置是用户端的设置对话框(Windows 7中的控制面板......),因此暗示它本身硬连线到Flash平台。
当然,由于我更多的是Adobe AIR专家,我可能完全错了......为了您的项目,我真诚地希望我能够做到!
而且,为了记录,你的英语几乎是完美的。为了清楚起见,我调整了一个段落,否则,请点击。 :d