「*** Security Sandbox Violation ***」メッセージについて
■開発環境
FlashBuilder4.6
■作成したAirアプリケーション
以下のAirのアプリケーション(mainAir)を作成しています。
flash.display.Loaderクラスを使用して、Webサーバ(Tomcat)からremoteWeb.swf を load() して、
Airアプリケーション内の UIComponent に addChild()する。
■疑問に思う事象
FlashBuilder上でアプリケーションをデバッグ起動すると、
コンソール内に以下のセキュリティに関するエラーメッセージが複数出力されます。
----- コンソール出力内容 ---
*** Security Sandbox Violation ***
SecurityDomain 'http://localhost:8400/hoge/remoteWeb.swf' tried to access incompatible context 'app:/mainAir.swf'
----------------------------
さらに、
Airアプリケーションウィンドウ上でremote.swfに該当する箇所をクリックすると、
クリックする毎に上記のメッセージが出力されます。
上記のようなメッセージが出力されますが、
以下の点から、このAirアプリケーションは正常に動作しているのでは考えています。
・アプリケーションウィンドウ上には remoteWeb.swf が表示されている。
→remoteWeb.swf内のLabel要素が表示されていることから確認。
・アプリケーションウィンドウ上の remoteWeb.swf の該当箇所をクリックすると
remoteWeb.swf内で仕掛けたハンドラ(onClick())が起動する。
→onClick()関数内の、trace()が動作していることから確認。
■質問
上記のセキュリティに関するエラーメッセージが出力される理由を知りたいです。
正常に動作しているように見えるのにも関わらず、
セキュリティに関するエラーメッセージが出力されているため、
本当に問題が無いかどうかの判断ができずに困っています。
■アプリケーションのコード
●メインのアプリケーション ※FlashBuilderでAirプロジェクトとして作成
-------------------------------------------------------------------------------------------------------------------
mainAir.mxml
-------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="onCompleteLoad()"
>
<fx:Script>
<![CDATA[
import flash.net.URLRequest;
import flash.system.LoaderContext;
import mx.core.UIComponent;
private function onCompleteLoad():void {
trace("Call onCompleteLoad()");
var loader:Loader = new Loader();
var loader_context:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
loader.load(new URLRequest("http://localhost:8400/hoge/remoteWeb.swf"), loader_context);
uicomponent.addChild(loader);
}
]]>
</fx:Script>
<mx:UIComponent id="uicomponent" width="100%" height="100%" >
</mx:UIComponent>
</s:WindowedApplication>
-------------------------------------------------------------------------------------------------------------------
●remoteWeb.swf ※FlashBuilderでWebプロジェクトとして作成
-------------------------------------------------------------------------------------------------------------------
remoteWeb.mxml
-------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
click="onClick()"
>
<fx:Script>
<![CDATA[
private function onClick():void {
trace("Call onClick() !!!");
}
]]>
</fx:Script>
<s:Label text="これは remoteWeb.mxmlのラベル"/>
</s:Application>
-------------------------------------------------------------------------------------------------------------------
