ホーム >> 左脳Script >> Adobe Flash >> Action Script >> Action Script 3 で 自作ListBox

Action Script 3 で 自作ListBox


リストボックス。
内部構造としては、独自にコンテナクラス(Htmlのdiv要素のoverflow:autoスタイルを適応したときの用に、大きいコンテンツを 一定の範囲に抑えるもの。parts.containerクラス。)を作り、それを継承しています。
TextFieldをアイテムの数だけ並べ、それを内包するように表示します。アイテムの数に応じ、垂直スクロールバーが自動で出ます。 しかし、横方向(長い文字列のアイテム)があっても、水平スクロールバーは出ません。
そのようなアイテムから選択しなければならない場合は、リストボックスの配置を工夫し、リストボックスの横幅を稼いでください。

ShiftキーCtrlキーによる複数の選択が可能です。
以下用法仕様。

仕様

コンポーネント使用に当っての仕様。ListBox 継承の大本はSpriteです。
ListBox 仕様
コンストラクタ
アイテム:Array配列を指定。中身は何でも良い。要素の文字列変換(toString)にて得られた文字列をリストの表示文字列とする。
幅:Numbeコンポーネント幅。デフォルトは100。
高さ:Numberコンポーネント高さ。デフォルトは80。
プロパティ
items:Array配列を指定。中身は何でも良い。要素の文字列変換(toString)にて得られた文字列をリストの表示文字列とする。
enable:Boolean有効/無効指定。無効にすると表示はグレーアウトされ、イベントが抑制される。
width:Numberコンポーネント幅。
height:Numberコンポーネント高さ。
関数
clear():void選択のクリア。
selected():Array選択しているアイテムの配列。何も選択していないと、長さ0のArrayが返る。
イベント
Event.CHANGEアイテム選択時にイベント。


デモサンプル

"This is ListBox Sample Flash."
上部の Enable チェックで、リストボックスの有効/無効を制御できます。
マウスクリックで列挙されているアイテムを選択します。右スクロールバーで、画面外のアイテムを画面内に移動出来ます。

Ctrlキーを押しながら選択すると、既にある選択に追加できます
Shiftキーを押しながら選択すると、一つ前に選択したアイテムまでを一括選択できます
CtrlキーShiftキーの同時押しも可能です。



以下、デモ用コード。

//  ListBoxデモ
private var cb:CheckBox;
//
private var lsb:ListBox;
private var tfl:TextField;
//
private function demo():void 
{
    cb  =   new CheckBox( < font size = "12" > Enable</font>.toXMLString(),true);
    addChild(cb);
    cb.addEventListener(Event.CHANGE, listBox_enable);
    //
    tfl =   new TextField();
    tfl.x   =   0;
    tfl.y   =   100;
    tfl.width   =   200;
    tfl.height  =   100;
    addChild(tfl);
    //
    var list:Array  =   [
        "xxxx@aaa"
    ,   "abcdefghijklmnopqrstuvwxyz"
    ,   "012345678901234567890123456789"
    ,   "千葉"
    ,   "滋賀"
    ,   "佐賀"
    ,   "ンジャメナ"
    ,   "アンパン"
    ,   "こまねち!"
    ];
    //
    lsb =   new ListBox(list, 200, 80);
    lsb.y   =   20;
    addChild(lsb);
    lsb.addEventListener(Event.CHANGE, listBox_change);
}
private function listBox_enable(e:Event):void 
{   //  コントロールの有効/無効
    lsb.enable  =   cb.check;
}
private function listBox_change(e:Event):void 
{   //  イベント:選択したアイテムを列挙する
    var s:String    =   "";
    var l:Array =   lsb.selected();
    for (var i:int = 0; i < l.length; i++)
    {
        s = s + l[i] + "\n";
    }
    tfl.text    =   s;
}


ソース

デモを含めたコンポーネントパッケージのソースはこちらで公開しています。
>> Action Script 3 の U/Iコンポーネント



トラックバック(0)

トラックバックURL: http://n-yagi.0r2.net/sanoupulurun/mt-tb.cgi/135

コメントする

ホーム >> 左脳Script >> Adobe Flash >> Action Script >> Action Script 3 で 自作ListBox

アーカイブ

このブログ記事について

このページは、n-yagiが2009年6月 1日 19:58に書いたブログ記事です。

ひとつ前のブログ記事は「Action Script 3 で 自作ScrollBar」です。

次のブログ記事は「Google Chrome バージョン2 アンインストール」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。