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: Unhandled IOErrorEvent:. text=エラー #2035: URL が見つかりません。loader.contentLoaderInfo を使用して IOERROR.IO_ERROR をチェックすると、「静的型 flash.display:Loader を使用した参照を介して、未定義の可能性があるプロパティ IOERROR への 1119 アクセス」が表示されます。

私が間違っていることについて何か考えはありますか?また、同じフォルダーから .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 クラスには多くの余分な重みがあり、パフォーマンスを低下させる可能性があります。画像を表示する最も低いレベルの方法である代わりに使用し、対話性を与える必要がある場合は(または、Flex を使用している場合はビットマップとスプライトの代わりに使用Bitmapして) でラップします。SpriteImage

于 2013-04-08T16:05:06.677 に答える