这个是采用as3编程的flash例子。其中代码如下:
由此例子可见,as3,和一般编程没有什么2样了,可以说未来,ria的编程也可基于as3.
1
2
3
import fl.controls.*;
4
import fl.data.DataProvider;
5
6
/**//*
7
listA_ls是个列表实例,其属性dataProvider是一个DataProvider类。
8
DataProvider 类提供一些方法和属性,这些方法和属性允许您查询和修改任何
9
基于列表的组件(例如,List、DataGrid、TileList 或 ComboBox 组件)中的数据。
10
下面的对list的sort以及addItem都是该类的方法或属性。
11
*/
12
listA_ls.dataProvider = new DataProvider(
13
[
{data:0, label:"January"},
14
{data:1, label:"February"},
15
{data:2, label:"March"},
16
{data:3, label:"April"},
17
{data:4, label:"May"},
18
{data:5, label:"June"},
19
{data:6, label:"July"},
20
{data:7, label:"August"},
21
{data:8, label:"September"},
22
{data:9, label:"October"},
23
{data:10, label:"November"},
24
{data:11, label:"December"}
25
]);
26
27
fromAtoB_btn.addEventListener(MouseEvent.CLICK, aToBClickHandler);
28
29
30
/**//*
31
当点击fromAtoB 按钮,则移动 listA_ls 中选项到listB_ls
32
33
其中List中包含类属性。和通常编程类似。
34
*/
35
function aToBClickHandler(event:MouseEvent):void
36

{
37
var listA:List = listA_ls; //listA_ls 是界面上的实例名
38
var listB:List = listB_ls;
39
40
if ((listA.length > 0) && (listA.selectedItem != null))
{
41
listB.addItem(listA.selectedItem);
42
listA.removeItemAt(listA.selectedIndex);
43
}
44
}
45
46
/**//*
47
加入处理事件
48
*/
49
fromBtoA_btn.addEventListener(MouseEvent.CLICK, bToAClickHandler);
50
51
/**//*
52
如上
53
*/
54
function bToAClickHandler(event:MouseEvent):void
{
55
var listA:List = listA_ls;
56
var listB:List = listB_ls;
57
if ((listB.length > 0) && (listB.selectedItem != null))
{
58
listA.addItem(listB.selectedItem);
59
listB.removeItemAt(listB.selectedIndex);
60
}
61
}
62
63
64
/**//* 排序动作 */
65
sortA_btn.label = "Sort";
66
sortA_btn.addEventListener(MouseEvent.CLICK, sortAClickHandler);
67
68
/**//*
69
sortByMonth是自定义排序函数。
70
*/
71
function sortAClickHandler(event:MouseEvent):void
{
72
listA_ls.sortItems(sortByMonth);
73
}
74
75
76
/**//* 排序动作 */
77
sortB_btn.label = "Sort";
78
sortB_btn.addEventListener(MouseEvent.CLICK, sortBClickHandler);
79
function sortBClickHandler(event:MouseEvent):void
{
80
listB_ls.sortItems(sortByMonth);
81
}
82
83
/**//*
84
这个自定义函数,规范必须有2个参数。
85
返回1,0,-1
86
*/
87
function sortByMonth(a:Object, b:Object):Number
{
88
var aVal:Number = int(a.data);
89
var bVal:Number = int(b.data);
90
if (aVal > bVal)
{
91
return 1;
92
} else if (aVal < bVal)
{
93
return -1;
94
} else
{
95
return 0;
96
}
97
}