我有flash / air应用程序,适用于网络。所以,我需要从我的xmlsocket加载策略文件,但它可以放在不同的端口上。 最重要的是用第二个端口加载它,当第一个端口无法访问时。 现在我尝试使用这个代码(正式):
try {
Security.loadPolicyFile(xmlsocket://" + _url + ":" + 843);
} catch (error:Error) {
try {
Security.loadPolicyFile(xmlsocket://" + _url + ":" + 33333);
} catch (error:Error) {
trace("policy loading error");
}
} finally {
if (_connection)
_connection.open();
}
但我不确定当目标端口843被锁定或没有找到crossdomain.xml时,此块会生成异常,尤其是在不同平台(浏览器,AIR桌面应用程序,AIR移动应用程序)上。 任何人都可以澄清一下吗?
答案 0 :(得分:1)
loadPolicyFile
不会抛出任何错误。 Flash有一个内置的尝试来加载这样的策略文件(现在无法找到它,但它首先从同一位置(http)加载,然后从主域加载,然后从不同的端口加载等)。< / p>
这意味着它会在发出真实请求之前在内部尝试加载标记为要加载的所有文件。所以你可以直接这样做:
Security.loadPolicyFile(xmlsocket://" + _url + ":" + 843);
Security.loadPolicyFile(xmlsocket://" + _url + ":" + 33333);
如果这些请求中的任何一个返回有效的策略文件 - 一切都会正常工作。