2011-03-12 59 views
0

我有一個HTML框,並從項目中加載本地html文件。 在這個HTML文件我使用jquery,我想從我的用戶目錄加載圖像。 我從我的用戶目錄看到圖像,但jquery不起作用。 我得到這個錯誤:從本地HTML文件(在應用程序工作區中)訪問本地圖像(不在應用程序工作區中)時出現的問題

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

我拷貝從應用程序目錄中的文件到自定義目錄解決方案:

瓦爾:

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)); 

OR 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

所做的是幫助所有,如果你把圖像中的另一個目錄?

你可以把圖像文件在我的文檔/ myairapp或/家庭/用戶/文件/ myairapp然後打開它:

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

該文件是你可以有取決於目錄的權限問題?

+0

這是行不通的。我從documentsDirectory打開html文件和圖像。我將新圖像保存在同一個目錄中。這工作沒有任何權限問題。 – Damian 2011-03-17 18:38:39

相關問題