这个是采用as3编程的flash例子。其中代码如下:
由此例子可见,as3,和一般编程没有什么2样了,可以说未来,ria的编程也可基于as3.
1
2
3import fl.controls.*;
4import fl.data.DataProvider;
5
6/**//*
7 listA_ls是个列表实例,其属性dataProvider是一个DataProvider类。
8 DataProvider 类提供一些方法和属性,这些方法和属性允许您查询和修改任何
9 基于列表的组件(例如,List、DataGrid、TileList 或 ComboBox 组件)中的数据。
10 下面的对list的sort以及addItem都是该类的方法或属性。
11*/
12listA_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
27fromAtoB_btn.addEventListener(MouseEvent.CLICK, aToBClickHandler);
28
29
30/**//*
31 当点击fromAtoB 按钮,则移动 listA_ls 中选项到listB_ls
32
33 其中List中包含类属性。和通常编程类似。
34*/
35function 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*/
49fromBtoA_btn.addEventListener(MouseEvent.CLICK, bToAClickHandler);
50
51/**//*
52 如上
53*/
54function 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/**//* 排序动作 */
65sortA_btn.label = "Sort";
66sortA_btn.addEventListener(MouseEvent.CLICK, sortAClickHandler);
67
68/**//*
69 sortByMonth是自定义排序函数。
70*/
71function sortAClickHandler(event:MouseEvent):void {
72 listA_ls.sortItems(sortByMonth);
73}
74
75
76/**//* 排序动作 */
77sortB_btn.label = "Sort";
78sortB_btn.addEventListener(MouseEvent.CLICK, sortBClickHandler);
79function sortBClickHandler(event:MouseEvent):void {
80 listB_ls.sortItems(sortByMonth);
81}
82
83/**//*
84 这个自定义函数,规范必须有2个参数。
85 返回1,0,-1
86*/
87function 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}