我有一个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工作)。
这是政策问题吗?错误说这是一个“空对象引用”问题,但这不可能是真的......
有什么想法吗?
达米安
答案 0 :(得分:0)
如果将图像放在另一个目录中,是否有帮助?
您可以将图像文件放在My Documents / myairapp或/ home / user / Documents / myairapp中,然后打开它:
var original = air.File.documentsDirectory.resolvePath("myairapp/test.jpg");
根据文件所在的目录,您可能会遇到权限问题吗?
答案 1 :(得分:0)
我将文件从应用程序目录复制到自定义目录的解决方案:
瓦尔:
private var fileName:String = 'config.xml';
private var workingDirectory:String = 'MyNewAppDir';
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();