AS3 FLASH AIR - 装载机未找到网址

时间:2013-04-08 14:16:49

标签: actionscript-3 loader

我在使用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”

非常感谢任何帮助。 谢谢。

1 个答案:

答案 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)如果需要给它交互性。