これが私の問題です。mx:DataGrid列内にmx:Imageがあります。画像の幅と高さを特に設定しないと、画像がグリッドに読み込まれるときに、画像の一部のみが表示されます。
レクリエーションの手順:
- 新しいFlexプロジェクトの作成(デスクトップ)
- Haloテーマを使用するようにプロジェクトを構成します。
それぞれの場所に次のコードを追加します*注:windowedApplicationのcreationCompleteイベントが割り当てられていることを確認してください。また、インポートステートメントなどの調整が必要になる場合があります。申し訳ありません。*
これは私が抱えている問題の簡単な例です。プログラムを起動すると、画像の一部が表示されます。[再バインド]をクリックすると、画像全体が表示されます。
MXMLでサイズを設定せずに、2番目のバインドではなく、最初のバインドで完全な画像を表示しようとしています。なんらかのユーザー操作を行わずに、ActionScriptを介して完全な画像を表示することに成功していません。
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
protected function windowedapplication1_creationCompleteHandler(event:FlexEvent):void
{
BindData();
}
private function BindData():void
{
var objOrderItem:Object = new Object();
var items:ArrayCollection = new ArrayCollection(new Array(objOrderItem));
dgMain.dataProvider = new ArrayCollection(items.source);
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<mx:VBox width="100%">
<mx:Button label="Rebind" click="BindData()" />
<mx:DataGrid id="dgMain" resizableColumns="false" draggableColumns="false"
sortableColumns="false" rowCount="1">
<mx:columns>
<mx:DataGridColumn headerText="Thumb" sortable="false" width="60">
<mx:itemRenderer>
<fx:Component>
<mx:HBox horizontalGap="0" verticalScrollPolicy="off" horizontalScrollPolicy="off" width="100%">
<mx:Image source="https://encrypted-tbn1.google.com/images?q=tbn:ANd9GcTTuc9n_oweh-dv4LUljzh0Lxzn1AvZchODUoSAeGePaDwPqUuw"
width="60" maintainAspectRatio="true" />
</mx:HBox>
</fx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
<mx:Label text="Text After Grid" />
</mx:VBox>
前もって感謝します!