我在使用Loader类加载图像时遇到问题。 有人能看出我做错了吗?
// 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:。 text =错误#2035:找不到网址。如果我使用loader.contentLoaderInfo来检查IOERROR.IO_ERROR它通过带有静态类型flash.display的引用'1119访问可能未定义的propety IOERROR:Loader'
对我做错了什么的想法?我也试过从同一个文件夹加载.jpg
var urlReq = new URLRequest('logo.jpg');
测试应用程序已进入,但仍然显示“未找到URL”
非常感谢任何帮助。 谢谢。
答案 0 :(得分:0)
这很简单:请勿使用Loader
,而是使用FileStream
。由于文件保存在app存储目录中(或者我认为至少是这样),因此您可以直接读取它而不是使用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
中(如果使用Flex,则使用Image
代替Bitmap和Sprite)如果需要给它交互性。