1

我在使用 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:。文本=错误 #2035:找不到 URL。如果我使用 loader.contentLoaderInfo 来检查 IOERROR.IO_ERROR,它会给我“1119 通过静态类型 flash.display:Loader 的引用访问可能未定义的属性 IOERROR”

对我做错了什么有任何想法吗?我也试过从同一个文件夹中加载 .jpg

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

测试应用程序在但仍然得到“找不到 URL”

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

4

1 回答 1

0

这很简单:不要使用LoaderFileStream而是使用。由于文件保存在应用程序存储目录中(或者我认为至少是这样),因此您可以直接读取它,而不是使用加载器。

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(或使用而不是位图和 Sprite,如果使用 Flex)。Image

于 2013-04-08T16:05:06.677 回答