ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
フォーラム一覧   -   トピック一覧
   Flex 4 SDK
     HorizontalListに画像を表示したい
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
Chicken
投稿日時: 2015-12-10 16:33
やや お馴染みさん
登録日: 2015-12-10
居住地:
投稿: 5
HorizontalListに画像を表示したい
画像を読み込んで、画像をビットマップに変換し、大きさを変えたり、適当に色を加工などして、
HorizontalListに元画像と、並べて表示させようと考えています。

画像の加工のところは、今回は置いといて、ビットマップ画像をリストに表示させる方法がわかりません。

埋め込みの元画像のgif画像はHorizontalListに表示するところまではわかりました。
ですが、ビットマップのデータ画像が表示できません。

どうすれば、表示できるでしょうか?

また、実行はブラウザでおこなっています。

アドバイスよろしくお願いします。

<?xml version="1.0" encoding="utf-8"?>
<s:Application
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.*;
import flash.display.*;
import flash.display.Bitmap;
import flash.display.BitmapData;

[Embed(source = "./logo1.gif")] private var image1:Class;

//logo1.gif 画像は、w100×h100の適当な画像です。

private function On_Tuika_Button_Click():void
{
//Alert.show("test", "", Alert.NO, this, function(e:CloseEvent):void{});

//(1)これで元画像はHorizontalListに表示される。が、埋め込み元画像である。
var obj1:Object = new Object();
obj1.myIcon = image1;
list1.dataProvider.addItem(obj1);


//(2)これではなにも表示されない。
//i1は下のほうにある<mx:Image id="i1" x="0" y="130" source="{image1}"/>である。

//var bitData : BitmapData = i1.content as BitmapData;
//list1.dataProvider.addItem(bitData.getPixels(new Rectangle(0,0,100,100)));


//(3)これではなにも表示されない。
//var bitData : BitmapData = i1.content as BitmapData;
//var obj1:Object = new Object();
//obj1.myIcon = bitData.getPixels(new Rectangle(0,0,100,100));
//list1.dataProvider.addItem(obj1);

//(4)これでもobject objectと文字が表示されて、画像が表示されない。
//var bitData : BitmapData = i1.content as BitmapData;
//var obj1:Object = new Object();
//obj1.myIcon = new Bitmap(bitData);
//list1.dataProvider.addItem(obj1);

//他にどういうやり方があるのでしょうか??

}

private function On_Left_Button_Click():void
{
var i:int = 0;
i = list1.horizontalScrollPosition -1;
if( i < 0 ){i = 0;}
list1.horizontalScrollPosition = i;
}
private function On_Right_Button_Click():void
{
var i:int = 0;
i = list1.horizontalScrollPosition +1;
if( i >= list1.columnCount ){i = list1.columnCount-1;}
list1.horizontalScrollPosition = i;
}

//下の y1.gif と y2.gif 画像は、w30×h100の適当な矢印画像です。
]]>
</fx:Script>
<s:Panel title="My Application" id="pane1" horizontalCenter="0" verticalCenter="0">


<s:layout>
<s:BasicLayout />
</s:layout>

<s:Button id="left_button" icon="y1.gif" height="100" width="30" x="0" y="0" click="On_Left_Button_Click()"/>
<mx:HorizontalList id="list1" height="100" width="200" x="30" y="0"
horizontalScrollPolicy="off" verticalScrollPolicy="off"
selectionColor="#FFCC00" liveScrolling="false" showScrollTips="false"
iconField="myIcon"
>
<mx:ArrayCollection>

</mx:ArrayCollection>
</mx:HorizontalList>
<s:Button id="right_button" icon="y2.gif" height="100" width="30" x="230" y="0" click="On_Right_Button_Click()"/>
<s:Button id="tuika_button" label="追加" height="20" width="200" x="30" y="100" click="On_Tuika_Button_Click()"/>
<mx:Image id="i1" x="0" y="130" source="{image1}"/>
</s:Panel>
</s:Application>
Chicken
投稿日時: 2015-12-11 10:43
やや お馴染みさん
登録日: 2015-12-10
居住地:
投稿: 5
Re: HorizontalListに画像を表示したい
itemRendererを使えばよいということは、わかってきたのですが・・
今のところ使い方がよくわかりません。
下のようにしてみました。

<mx:HorizontalList id="list1" height="100" width="200" x="30" y="0"
horizontalScrollPolicy="off" verticalScrollPolicy="off"
selectionColor="#FFCC00" liveScrolling="false" showScrollTips="false"
scrollTipFunction="scrollTipFunc"
itemRenderer="mx.controls.Image"
>
<mx:ArrayCollection>

</mx:ArrayCollection>
</mx:HorizontalList>


こうして、スクリプトの部分は前のままでやってみたのですが、
空のイメージが表示されるだけで、画像が表示されません。
Chicken
投稿日時: 2015-12-12 17:21
やや お馴染みさん
登録日: 2015-12-10
居住地:
投稿: 5
Re: HorizontalListに画像を表示したい
また気づいたことは、
http://help.adobe.com/en_US/flex/using/WS77c1dbb1bd80d3836ecbb5ec129ec77b1e1-8000.html

こういうページを見つけました。
IDataRenderer と IItemRendererのインタフェースを、
Bitmapやその親の、BitmapAssetは、どうやら、これらのインタフェースを実装してないので、
直接描画させられないのかな・・?
詳しい方、意見をおねがいしま〜す。

Imageのdataあたりなら、表示できるのかな・・
Bitmapをイメージに変換ってどうやるんだ・・ろう。

sparkのコンポーネントは、だいたい直接描画できるみたいですが、なぜ、ビットマップは・・でけないんだ〜
できるのかな??
Chicken
投稿日時: 2015-12-24 15:06
やや お馴染みさん
登録日: 2015-12-10
居住地:
投稿: 5
Re: HorizontalListに画像を表示したい
http://www.fxug.net/modules/xhnewbb/viewtopic.php?topic_id=5672
どうやら過去の質問にあったみたいです^^;お騒がせいたしました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を