SWF ファイルをロードする AIR アプリケーションを開発しています。ロードした SWF ファイルから FLEX キャンバスにシンボルを追加します。
//...
_loader = new Loader();
var urlReq:URLRequest = new URLRequest(_file);
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, swfLoadCompleted);
_loader.load(urlReq);
//...
private function swfLoadCompleted(loadEvent:Event):void
{
var swfApplicationDomain:ApplicationDomain = (loadEvent.target.applicationDomain as ApplicationDomain);
var symbolNames:Vector.<String> = swfApplicationDomain.getQualifiedDefinitionNames();
for each (var symbolName:String in symbolNames)
{
var clazz:Class = swfApplicationDomain.getDefinition(symbolName) as Class;
var symbol:Object = new clazz();
if (symbol is MovieClip)
{
canvas.addChild(symbol);
}
}
}
別のシンボルに配置されたシンボルの一部をクリックすると、次のエラーが表示されます。
*** Security Sandbox Violation ***
SecurityDomain 'file:///C:/Users/user1/Desktop/Symbol_in_symbol_example.swf' tried to access incompatible context 'app:/MyProgram.swf'
このエラーのため、この種のシンボルのドラッグ アンド ドロップを実装できません。この問題の原因は何ですか?
SWFファイルの例を添付します