Проблема с доступом к локальному изображению (не в рабочей области приложения) из локального файла HTML (в рабочей области приложения) - PullRequest
0 голосов
/ 12 марта 2011

У меня есть окно HTML и я загружаю локальный файл html из проекта.В этом HTML-файле я использую jquery и хочу загрузить изображение из моего пользовательского каталога.Я вижу изображение из своего пользовательского каталога, но jquery не работает.Я получаю эту ошибку:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at crop/onLoaded()[/Flex Bundle/workspace/crop/src/crop.mxml:119]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at flash.html::HTMLLoader/onCompleteTimer()
    at flash.utils::Timer/_timerDispatch()
    at flash.utils::Timer/tick()

Но если я загружаю изображение из рабочей области приложения, все работает нормально (я вижу изображение и Jquery).

Это проблема политики?Ошибка говорит о том, что это проблема «ссылки на нулевой объект», но это не может быть правдой ...

Есть идеи?

Дамиан

Ответы [ 2 ]

0 голосов
/ 23 мая 2011

Мое решение для копирования файла из каталога приложения в самоопределяемый каталог:

Варс:

private var fileName:String = 'config.xml';
private var workingDirectory:String = 'MyNewAppDir';
  1. Коротко и просто:
var f:File = File.applicationDirectory.resolvePath(this.fileName );
f.copyTo( File.documentsDirectory.resolvePath(this.workingDirectory+"/"+this.fileName));

ИЛИ 2. Длинный и сложный:

/**
 * read content
 */
var file:File = File.applicationDirectory.resolvePath( this.fileName );
var read:FileStream = new FileStream();
read.open(file, FileMode.READ);
var content:String = read.readMultiByte( read.bytesAvailable, "utf-8") ;
read.close();

/**
 * save content
 */
var write:FileStream = new FileStream();
write.open( File.documentsDirectory.resolvePath( this.workingDirectory + "/" + this.fileName ), FileMode.WRITE );
write.writeMultiByte( content, "utf-8" );
write.close();
0 голосов
/ 13 марта 2011

Помогает ли это вообще, если вы помещаете изображение в другой каталог?

Вы можете поместить файл изображения в Мои документы / myairapp или / home / user / Documents / myairapp, а затем открыть его с помощью:

var original = air.File.documentsDirectory.resolvePath("myairapp/test.jpg");

У вас могут быть проблемы с правами доступа в зависимости от каталога, в котором находится файл?

...