2013-05-27 41 views
0

我正在開發一個加載SWF文件的AIR應用程序。我想補充從加載的SWF文件的符號到FLEX-帆布:單擊另一個符號內的符號時出現「Actionscript Security Sandbox Violation」

//... 
_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-file example

+0

我不明白您的SWF文件示例如何與問題相關。我無法點擊/拖動任何內容。 – JeffryHouser

+0

這是一個文件示例,我將其加載到我的應用程序中。 – mpMelnikov

回答

1

如果你想從一個SWF文件的AIR應用程序加載類,你必須將其加載到兩個步驟。

  1. 負載SWF文件作爲字節用的URLLoader
  2. 創建正常裝載機
  3. 創建一個裝載機上下文類
  4. 設置屬性allowCodeImport =真
  5. 負載loadbytes數據

編輯: 找到答案AIR Loading server hosted swf into same sandbox

+0

謝謝!有用! – mpMelnikov

相關問題