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()
나는 오류가 혼자 라인에서 오는 것으로 나타났습니다 시스템 파일이나 파일을로드하지 않습니까? 꽤 큰 제한 사항입니다 ...
답장을 보내 주셔서 감사합니다!
답장을 보내 주셔서 감사합니다. 알아 냈습니다. 직접 답변 해 드리겠습니다. ^^ – Akryum