flashswing關于list組件的使用

Clare 12年前發布 | 12K 次閱讀 開源項目提交群組

List 組件是一個可滾動的單選或多選列表框。

List 組件使用基于零的索引,其中索引為 0 的項目就是顯示在頂端的項目。當使用 List 類的方法和屬性添加、刪除或替換列表項時,您可能需要指定該列表項的索引。

在單擊列表或按 Tab 鍵切換到列表時,列表獲得焦點,然后您可使用以下鍵控制它:



注意 Page Up 鍵和 Page Down 鍵使用的頁的大小比可以顯示的項數少一項。例如,在一個十行的下拉列表中向下翻頁,將會依次顯示第 0-9 項、第 9-18 項、第 18-27 項等等,每頁都會有一個重疊項

以下示例演示列表的屬性,以及監聽用戶交互操作的結果。

從"庫"面板中拖動相關組件到舞臺(或直接通過 ActionScript 代碼創建組件實例),并對實例命名。

在主時間軸中選擇第一幀,打開"動作"面板,然后輸入以下代碼:

import flash.events.Event;

my_list.addEventListener(Event.CHANGE, function(evt:Event){ selectedIndex_txt.text = my_list.getSelectedIndex().toString(); selectedIndices_txt.text = "[" + my_list.getSelectedIndices() + "]"; }); my_list.addItem({label:"Sunday",data:0}); my_list.addItem({label:"Monday",data:1}); my_list.addItem({label:"Tuesday",data:2}); my_list.addItem({label:"Wednesday",data:3}); my_list.addItem({label:"Thursday",data:4}); my_list.addItem({label:"Friday",data:5}); my_list.addItem({label:"Saturday",data:6});</pre> 

通過自定義 CellRenderer 創建行高/寬不固定的列表。

首先,創建自定義單元格渲染器 MultiLineCellRenderer 類(繼承于 ListCellRenderer)。

package {
    import flash.text.TextFieldAutoSize;
    public class MultiLineCellRenderer extends ListCellRenderer {
        public override function getAutoSize():Boolean {
            return true;
        }
        public override function repaint():void {
            textField.autoSize = TextFieldAutoSize.LEFT;
            textField.width = _width - textField.x * 2;
            textField.htmlText = getLabel();
            textField.textColor = getData().data;
            skin.width = _width;
            skin.height = textField.y * 2 + textField.height;
        }
    }
}

同上例,在主時間軸中選擇第一幀,打開"動作"面板,然后輸入以下代碼:

my_list.setCellRenderer(MultiLineCellRenderer);
my_list.addItem({label:"Brown,  0xA52A2A",data:0xA52A2A});
my_list.addItem({label:"DarkSlateGray,  0x2F4F4F",data:0x2F4F4F});
my_list.addItem({label:"MediumAquamarine,  0x66CDAA",data:0x66CDAA});
my_list.addItem({label:"DeepSkyBlue,  0x00BFFF",data:0x00BFFF});
my_list.addItem({label:"MediumVioletRed,  0xC71585",data:0xC71585});
my_list.addItem({label:"Purple,  0x800080",data:0x800080});
my_list.addItem({label:"YellowGreen,  0x9ACD32",data:0x9ACD32});

相關資料來源于:http://www.shinater.com/FlashSwing/Help/List.html

[本話題由 Clare 于 2012-12-08 12:02:03 編輯]

 本文由用戶 Clare 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!