2013-04-08 20 views
1

我遇到了使用Loader类加载图像的问题。 有人可以看到我做错了什么吗?AS3 FLASH AIR - 装载程序未找到url

// get file folder location 
var file = new File(File.applicationStorageDirectory.nativePath); 

// convert to string 
var fileString:String = file.url.toString(); 

// remove string characters 
    fileString = fileString.split('file:///').join(''); 

// create loader 
var loader:Loader = new Loader(); 

// create request 
var urlReq:URLRequest = new URLRequest(fileString+'/logo.jpg'); 

// load request 
    loader.load(urlReq); 

当我测试它给了我一个错误#2044:未处理的IOErrorEvent :.文本=错误#2035:未找到URL。'如果我使用loader.contentLoaderInfo检查IOERROR.IO_ERROR,它会给我'1119通过带有静态类型的引用访问可能未定义的propety IOERROR flash.display:Loader'

对于我在做什么错误的想法?我也试着刚刚从同一文件夹中加载.JPG

var urlReq = new URLRequest('logo.jpg'); 

,测试应用程序是,但仍然获得了“找不到网址”

任何帮助将不胜感激。 谢谢。

回答

0

这很简单:不要使用Loader,而应使用FileStream。由于该文件保存在应用程序存储目录中(或者我认为它至少是),所以可以直接读取它,而不是使用Loader。

var file:File = File.applicationStorageDirectory.resolvePath("logo.jpg"); 
var fs:FileStream = new FileStream(); 
fs.open(file, FileMode.READ); 
var bmp:Bitmap = fs.readObject(); 
fs.close(); 

this.addChild(bmp); 

您应尽量避免使用Loader。 Loader类有很多额外的重量,这会增加性能。使用Bitmap代替显示图像的最低级别方法,并将其包装在Sprite(或使用Image代替位图和Sprite(如果使用Flex)),如果您需要赋予其交互性。

相关问题