アプリを起動した後、Debug Flash Player から以下のエラー ポップアップがときどき (常にではありません) 表示されるという問題があります。
Error #2044: Unhandled securityError:. text=Error #2048: Security sandbox violation: http://example.com/myApp.swf cannot load data from localhost:4499.
at org.mydomain.mypackage::MyClassUsingSocket()
at MyMainApplicationClass$cinit()
at global$init()
at global$init()
at flash.system::ApplicationDomain/hasDefinition()
at mx.managers::SystemManager/getDefinitionByName()
at _MyMainApplicationClass_mx_managers_SystemManager/create()
at mx.managers::SystemManager/initializeTopLevelWindow()
at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::docFrameHandler()
localhost:4499
このアプリには経由で接続しようとするコードがいくつかありますSocket
が、このエラーは、ソケット サーバーが実行されておらず、接続をリッスンしていないときに発生します。ただし、理解できないのは、ソケットに接続しようとしたときに s をキャッチするための try/catch ブロックがあるときに、Flash Player が未処理の securityErrors について不平を言っている理由です (および、このエラーメッセージSecurityError
SecurityErrorEvents
には表示されないのリスナー)を指しているように見えますが)。
関連するクラスのコンストラクターは次のとおりです。
/**
* Constructor.
*/
public function MyClassUsingSocket(aHost:String = null, aPort:int = -1):void
{
super();
var hostToConnectTo:String = (aHost != null) ? aHost : DEFAULT_HOST;
var portToConnectTo:int = (aPort != -1) ? aPort : DEFAULT_PORT;
try
{
_out_socket = new Socket();
// note: the event handlers used below are private functions within the same class
_out_socket.addEventListener(Event.CONNECT, _socketConnectEventHandler, false,0,true);
_out_socket.addEventListener(IOErrorEvent.IO_ERROR, _socketIOErrorEventHandler, false,0,true);
_out_socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, _socketSecurityErrorEventHandler, false,0,true);
_out_socket.connect(hostToConnectTo, portToConnectTo);
}
catch(e:IOError)
{
enabled = false;
}
catch(e:SecurityError)
{
enabled = false;
}
}
なぜこれが起こっているのかについてのアイデアはありますか? 私は何が欠けていますか?