2012-09-28 2 views
4

Это моя основная структура папок: http://i.stack.imgur.com/l1YnV.jpgFlash Builder URLRequest локальный путь не решения

Мой код выглядит следующим образом:

private var xmlLoader:URLLoader=new URLLoader(); 
private var url:URLRequest=new URLRequest("../src/NPClist.xml"); 

xmlLoader.load(url); 

я получаю следующее:

Error #2044: Unhandled ioError:. text=Error #2032: Stream Error. URL: app:/src/NPClist.xml 

Независимо от того, сколько «../» я вставляю в конструктор URLRequest, он работает только в том случае, если NPClist.xml находится в той же папке, что и .swf (bin-debug), и я даже попытался скопировать его aroun д. Похоже, что он игнорирует/не разрешает «../». Я также попытался экспортировать сборку релиза, но это не сработало. Интересно, что аналогичная работа с Embeds (папка с ресурсами находится на том же уровне, что и src и bin-debug).

[Embed(source="assets/mainmenu/somefile.png")] 

Вот как я получил его на работу:

var xmlFile:File=new File(File.applicationDirectory.nativePath).resolvePath("../src/NPClist.xml"); 
var url:URLRequest=new URLRequest(xmlFile.url); 

«../» не работал изначально, но это работает, если вы используете его, как это.


Возвращаясь к нему, это кажется неправильным. Вот как это, безусловно, работает, как ожидалось:

I включены активы с установщиком, и я использую

imgFile=File.applicationDirectory.resolvePath("assets/folder/file"); 
urlReq=new URLRequest(imgFile.nativePath); 
ldr.load(urlReq); 

ответ

-3

Вы не можете использовать URLRequest для доступа к локальной файловой системе ресурсов - URLRequest использует протокол HTTP, чтобы получить Ресурсы.

URLRequest может иметь доступ только к интернет-ресурсам, для которых применяется защита от перекрестного доступа.

Если вы хотите, чтобы открыть локальный файл, вы должны:

  • либо явно заставить пользователя открыть файл использовать Open File Dialog (http://help.adobe.com/en_US/FlashPlatform /reference/actionscript/3/flash/net/FileReference.html)

  • или использовать среду выполнения AIR (с AIR вы можете открывать локальные файлы, но не с URLRequest, а с классом File).

+0

На самом деле, я использовал AIR, а не класс File. У меня все еще возникали проблемы, но [эта ссылка] (http://taytay.com/?p=53) помогла. – manabk

+3

Я думаю, что это неправильно, я часто использую URLRequest для локальных ресурсов. –

0

Вы должны держать свои локальные активы внутри папки HTML-шаблон, то она будет загружать ваши активы из IOError для веб-приложения в противном случае используйте файл: /// для загрузки локальных активов в случае применения AIR

Смежные вопросы