0

Flex 4.5.1 を使用しています。フレックスアプリケーションに画像があります。http 要求を作成し、プロジェクト ワークスペースの assets フォルダーにある画像のファイル パスを取得します。画面にもラベルがあり、画像を更新すると同時に更新しました。通常は同時に更新する必要がありますが、ラベルが更新されてから 1 ~ 2 秒後にイメージが更新されます。

次のコードは、イメージとその ID と初期ソース ファイルです。

<s:BitmapImage id="personImage" visible="true" left="10" right="10" top="10" bottom="10"
                               fillMode="scale" scaleMode="stretch" source="assets/TT.jpg"
                               verticalAlign="bottom" verticalCenter="10"/>

次のように画像を設定しました。

if(fileExist){
        personImage.source=lastEntranceService.lastResult.person.image;
        personImage.validateNow();
}else{
     personImage.source = "assets/TT.jpg";
      personImage.validateNow();
  }

lastEntranceService.lastResult.person.image; //is the filepath of the image file

私も検証機能を使用していますが、フォーラムのどこかでフレックスイメージが非同期で読み込まれることを読んだことを覚えています。ラベルが更新されるとすぐに画面に画像を表示する方法はありますか? 時間の制約があるため、画像が更新されるのを待ってからラベルを更新することはできません。画像は寸法が異なり、アセット フォルダー内の画像が異なることを意味します。画面に表示されると、画像(表示する必要がある)は一定のサイズにサイズ変更されます。

ご清聴ありがとうございました。

4

1 に答える 1

0

ビットマップ ソースとラベル テキストを設定する前に、最初にロードする必要があります。

private var timStart :uint;

private function click()  {
    bitmapLoader = new Loader();
    bitmapLoader.load(new URLRequest(lastEntranceService.lastResult.person.image));
    bitmapLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);  

    timStart = getTimer();
} 

...

private function loaded(e :Event) {

    var timeNeedToLoad:uint = getTimer() - timStart;

    personImage.source = bitmapLoader;
    label.text = 'Bitmap: '+ lastEntranceService.lastResult.person.image;
}

編集:

読み込みに必要な時間を確認してください。

于 2013-06-05T12:32:31.820 に答える