我买了本《完全手册Flash/Flex ActionScript 3.0 交互式开发详解:语法基础、典型应用、视频网站实例》但是里面一些例子看不懂,去他们的论坛提问,又没人回答我,所以请好心人回答一下:
从该书169页的下拉列表例子中,他们用了DataProvider类,以及之后的List、TitleList都用到了这个类,从书上的解释,我只知道这个是项目列表的数据模型,但是这个类具体怎么用,用的时候哪些属性,分别用来干什么和哪些参数是必须有的,我都不知道!
private function SetupComboBox():void
{
cb = new ComboBox();
//设置可编辑属性
cb.editable = true;
cb.move(150,150);
cb.width = 150;
cb.prompt = "请选择一个银行:";
// 数据列表
var dp

ataProvider = new DataProvider();
dp.addItem({BankName:"中国建设银行", BankID:"0"});
dp.addItem({BankName:"中国工商银行", BankID:"1"});
dp.addItem({BankName:"中国农业银行", BankID:"2"});
dp.addItem({BankName:"中国银行", BankID:"3"});
dp.sortOn(["BankID"]);
cb.dataProvider = dp;
cb.labelField = "BankName";
cb.addEventListener(Event.CHANGE, BankSelected);
addChild(cb);
}
上面是他们光盘上ExampleComboBox.as里的一个代码段,其中
dp.addItem({BankName:"中国建设银行", BankID:"0"});
这句代码中的参数,我看不懂,而且我查API的时候,发现完全可以直接写成下面的代码也可以达到想要的效果
cb.addItem("中国农业银行");
那么为什么还要用DataProvider呢?!
还有这句代码,我也看不懂:cb.labelField = "BankName";
还请解释下
还有,下面是他们TitleList的例子:
public function ExampleTitleList()
{
// 构造函数,初始化
var dp

ataProvider = new DataProvider();
dp.addItem({label:"Image1",source:"http://www.helpexamples.com/flash/images/image1.jpg"});
dp.addItem({label:"Image2",source:"http://www.helpexamples.com/flash/images/image2.jpg"});
dp.addItem({label:"Image3",source:"http://www.helpexamples.com/flash/images/image3.jpg"});
dp.addItem({label:"Image4",source:"http://www.helpexamples.com/flash/images/image1.jpg"});
dp.addItem({label:"Image5",source:"http://www.helpexamples.com/flash/images/image2.jpg"});
dp.addItem({label:"Image6",source:"http://www.helpexamples.com/flash/images/image3.jpg"});
var tileList

ileList = new TileList();
// 绑定数据源
tileList.dataProvider = dp;
tileList.direction = ScrollBarDirection.VERTICAL;
// 设置列表的高和宽
tileList.columnWidth = 200;
tileList.rowHeight = 134;
// 设置列表显示的列数
tileList.columnCount = 2;
tileList.rowCount = 2;
tileList.move(10, 10);
// 把列表组件增加到舞台
addChild(tileList);
}
中间他们又用了DataProvider类,但是这次的参数又不一样
dp.addItem({label:"Image1",source:"http://www.helpexamples.com/flash/images/image1.jpg"});
花括号中逗号分开的两个参数,类型又不一样!以及这句代码的作用: tileList.direction = ScrollBarDirection.VERTICAL;
还有TitleList中如何设置单元格的大小呢?!
最后,总结下,我要问的问题吧:
1.DataProvider 有什么用?!
2.在使用列表组件的时候为什么要用DataProvider ,不用的话会有哪些不方便,或者程序性能上有什么损失?!
3.DataProvider .addItem({"这里究竟要写些什么参数,又可以写什么参数?!"})
4.使用了DataProvider来添加数据以后,原来的List,TitleList,ComboBox以及其他一些我还没学到的组件中要添加哪些代码来和DataProvider 进行关联呢?!