2012-12-20 2 views
3

AIR의 작업자에게 문제가 있습니다. 기본 작업자가 아닌 파일에서 파일을 열려고하면 보안 오류가 발생합니다. 기본 코드에서 동일한 코드를 사용하면 잘 작동합니다. 다른 swf를로드하고 두 번째 작업자를 만들 때 바이트를 전달합니다.Adobe AIR : 작업자가 파일을로드 할 수 없습니다.

var file:File = File.applicationDirectory.resolvePath('config/generator/galaxy.xml'); 
var stream:FileStream = new FileStream(); 
stream.open(file, FileMode.READ); 
var xml:XML = XML(stream.readUTFBytes(stream.bytesAvailable)); 
stream.close(); 

그리고 :

[LOG]ERROR->Error #2048: Security sandbox violation: app:/SombresCieux.swf cannot load data from app:/config/generator/galaxy.xml. 

가 그럼 난 파일과 시도 :이 오류가

// Loading XML test 
var loader:URLLoader = new URLLoader(new URLRequest('app:/config/generator/galaxy.xml')); 
loader.addEventListener(Event.COMPLETE, function(evt:Event):void 
{ 
    // Trace 
    CEThreadDebugger.log(XML(loader.data).toString()); 
}); 
loader.addEventListener(IOErrorEvent.IO_ERROR, function(evt:IOErrorEvent):void 
{ 
    CEThreadDebugger.log(evt.text, CEThreadDebugger.ERROR); 
}); 
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function(evt:SecurityErrorEvent):void 
{ 
    CEThreadDebugger.log(evt.text, CEThreadDebugger.ERROR); 
}); 

:

첫째,은 URLLoader (2 근로자 코드)로 시도 이 오류가 발생합니다 (내 코드는 _mainToWorker 메서드에 있음) :

하지만, 그래서 원시 노동자 (주요 응용 프로그램)에서 작동

var file:File = File.applicationDirectory.resolvePath('config/generator/galaxy.xml'); 

하지 않는 스레드 ... 수 없습니다 노동자 액세스 :

[LOG]INFO->Error #0 : SecurityError -> file 
SecurityError: file 
    at flash.filesystem::File$/initAppResourceDir() 
    at flash.filesystem::File$/get appResourceDirectoryPath() 
    at flash.filesystem::File$/get applicationDirectory() 
    at generator::Generator/_mainToWorker() 
    at engine.generic.system.concurrency::CEThreadMain/Evt_mainToWorker() 

나는 오류가 혼자 라인에서 오는 것으로 나타났습니다 시스템 파일이나 파일을로드하지 않습니까? 꽤 큰 제한 사항입니다 ...

답장을 보내 주셔서 감사합니다!

답변

4

공공 기능 createWorker (SWF :이 ByteArray, giveAppPrivileges : 부울 = 거짓) : 근무

giveAppPrivileges : 부울 (default = false) - 해당 근로자가 응용 프로그램 샌드 박스 권한을 부여해야하는지 여부를 나타내는 공기 중에. 이 매개 변수는 Flash Player에서 무시됩니다.

+0

답장을 보내 주셔서 감사합니다. 알아 냈습니다. 직접 답변 해 드리겠습니다. ^^ – Akryum

관련 문제