flashswing关于list组件的使用
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});
通过自定义 CellRenderer 创建行高/宽不固定的列表。
首先,创建自定义单元格渲染器 MultiLineCellRenderer 类(继承于 ListCellRenderer)。
package
{import
flash
.text
.TextFieldAutoSize
;public
class
MultiLineCellRendererextends
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});