- 浏览: 254879 次
- 性别:
- 来自: 福州
文章分类
最新评论
-
sflscar:
太好了,我搞了一下午,批量插入,第一个参数个数没对sql批量导 ...
redis pipe大数据量导入 -
赵青青:
那 entity.hbm.xml 文件中的主健策略怎么配置 ...
Hibernate 和 Access -
GapStar:
换成flash IconCellRenderer.as应该怎么 ...
DataGrid 中加入图标 -
binbinyouli:
不好意思。我把楼主注释掉得部分打开了。但是我看楼主有传递对象的 ...
Flex Flash 和JAVA 在Socket交互 -
binbinyouli:
不知道前两位评论人时怎么做得。我再做这个例子的时候出现了安全沙 ...
Flex Flash 和JAVA 在Socket交互
DataGrid组件适合显示包含多个属性的对象。可以通过内部或者外部的数据源把数 据绑定到DataGrid组件中。DataGrid组件有很多强大的功能,使我们在开发中很容易地实现某些代码,比如,按照特定的规则排序,在单元格中嵌 入其他组件等。DataGrid组件有很多属性、方法和事件。常用的属性如表15.1所示,常用的方法如表15.2所示。
表15.1 DataGrid组件常用的属性
属 性
|
说 明
|
columns
|
获取或设置一个DataGridColumn对象数组,每个可以显示的列为一个对象
|
editable
|
指示用户能否编辑数据提供者中的项目
|
editedItemPosition
|
获取或设置正在编辑的数据提供者项目的项目渲染器的列索引和行索引
|
editedItemRenderer
|
获取对当前正在编辑的项目所属的DataGrid组件中项目渲染器的引用
|
headerHeight
|
获取或设置DataGrid标题的高度,以像素为单位
|
horizontalScrollPolicy
|
获取或设置一个布尔值,指示水平滚动条是否始终打开
|
imeMode
|
获取或设置输入法编辑器(IME)的模式
|
itemEditorInstance
|
对项目编辑器的当前活动实例(如果有)的引用
|
labelFunction
|
获取或设置一个函数,确定各个项目的哪些字段要用作标签文本
|
minColumnWidth
|
获取或设置DataGrid组件列的最小宽度,以像素为单位
|
resizableColumns
|
指示用户能否更改列的尺寸
|
rowCount
|
获取或设置在列表中至少部分可见的行的行数
|
rowHeight
|
获取或设置DataGrid组件中每一行的高度以像素为单位
|
showHeaders
|
获取或设置一个布尔值,该值指示DataGrid组件是否显示列标题
|
sortableColumns
|
指示用户能否通过单击列标题单元格对数据提供者中的项目进行排序
|
sortDescending
|
获取当用户单击列标题时列的排序顺序
|
sortIndex
|
获取要排序的列的索引
|
表15.2 DataGrid组件常用的方法
方 法
|
说 明
|
addColumn
|
在columns数组的末尾添加列
|
addColumnAt
|
在column数组中的指定索引处插入列
|
createItemEditor
|
使用itemEditor属性指定的编辑器为位于editedItemPosition属性标识的列索引和行索引处的项目渲染器创建项目编辑器
|
destroyItemEditor
|
关闭当前在项目渲染器上打开的项目编辑器
|
editField
|
编辑DataGrid组件中的给定字段或属性
|
getCellRendererAt
|
获取DataGrid中指定位置的单元格渲染器的实例
|
getColumnAt
|
检索位于columns数组中指定索引处的列
|
getColumnCount
|
检索DataGrid组件中的列数
|
getColumnIndex
|
检索具有指定名称的列的索引;如果未找到匹配项,则为 -1
|
getStyleDefinition
|
检索当前组件的默认样式映射
|
itemToCellRenderer
|
DataGrid组件对任何给定项都有多个单元格,因此itemToCellRenderer方法始终返回null
|
removeAllColumns
|
删除DataGrid组件中的所有列
|
removeColumnAt
|
删除位于columns数组中指定索引处的列
|
scrollToIndex
|
将列表滚动至位于指定索引处的项目
|
spaceColumnsEqually
|
将可见列的宽度重置为相同大小
|
可以利用这些属性、方法和事件创建强大的DataGrid组件应用程序。在接下来的几节,会逐一介绍他们的使用方法。
15.2 使用DataGrid组件显示数据列表
显示数据列表是DataGrid组件最基本的应用,只有把数据显示出来,才可以实现其 他的功能。数据的来源大概有两种,一种是内部数据,即在程序内部自定义数据,然后绑定到DataGrid组件中;另一种是外部数据,通过读取外部文件或者 是数据库,绑定到DataGrid组件中。接下来,就这两种情况分别做介绍。
15.2.1 将内部数据绑定到DataGrid组件中
要在DataGrid组件中显示数据,首先就要建立数据源,建立数据源通常是通过DataProvider API类来实现。下面的示例说明如何在DataGrid组件中显示数据,示例的步骤如下所示。
创建一个ActionScript 3.0文件,命名为DataGrid_ShowData_Example.as,类名为DataGrid_ShowData_Example,导入将用到的类库,代码如下所示:
package
{
import fl.controls.DataGrid;
import fl.controls.ScrollPolicy;
import fl.data.DataProvider;
import flash.display.Sprite;
public class DataGrid_ShowData_Example extends Sprite
{
/*****************************************
* 构造函数
* */
public function DataGrid_ShowData_Example()
{
}
}
}
创建一个函数GetData1,在内部实现具体的功能。代码如下所示:
/*********************************
* 加载内部数据,绑定DataGrid组件
* */
private function GetData1():void
{
}
在函数的内部,利用DataProvider类创建一个数据模型,这个数据模型有4列及10行数据,代码如下所示:
// 数据模型
var dp1:DataProvider = new DataProvider();
dp1.addItem({Name:"Tom", Phone:23579086, QQ:77788899, Software:"Flash"});
dp1.addItem({Name:"Kelly", Phone:33579080, QQ:56788823, Software:"Flex"});
dp1.addItem({Name:"Jim", Phone:83579085, QQ:56788882, Software:"Java"});
dp1.addItem({Name:"Sam",Phone:73579084,QQ:78988811,Software:"Dreamweaver"});
dp1.addItem({Name:"Kaiven",Phone:33576681,QQ:32188897,Software:"Photoshop"});
dp1.addItem({Name:"Gray", Phone:23229086, QQ:12388900, Software:"Fireworks"});
dp1.addItem({Name:"Luar", Phone:23579087, QQ:24681899, Software:"DAEMON Tools"});
dp1.addItem({Name:"Kite", Phone:85579082, QQ:68080894, Software:"FlashDevelop"});
dp1.addItem({Name:"Polar", Phone:32579086, QQ:21586899, Software:"Beyond Compare"});
初始化DataGrid组件,并实例化,然后设置属性,包括位置、宽度、高度、滚动条的样式等。代码如下所示:
// 初始化DataGrid组件,并实例化
var dg1:DataGrid = new DataGrid();
// 设置位置
dg1.move(20,20);
// 设置宽和高
dg1.setSize(350, 150);
dg1.verticalScrollPolicy = ScrollPolicy.AUTO;
定义列的标题,然后把数据模型和DataGrid组件绑定在一起,放到舞台上,代码如下所示:
// 定义列的标题
dg1.columns = ["Name", "Phone", "QQ", "Software"];
// 绑定数据源
dg1.dataProvider = dp1;
addChild(dg1);
编译代码并运行,效果如图15.1所示。
图15.1 读取内部数据,在DataGrid中显示
15.2.2 将外部数据绑定到DataGrid组件中
外部数据通常指的是数据库、文本本件和XML文件。在实际开发中,与数据层传入数据大多是通过XML格式传输的。所以,下面就创建一个读取外部XML文件的数据,然后在DataGrid组件中显示的例子。步骤如下。
创建一个XML文件,命名为DataGrid_Data.xml,内容结构如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<node label="Flash">
<Name>Flash</Name>
<Company>Adobe</Company>
<Version>9.0</Version>
</node>
<node label="Java">
<Name>Java</Name>
<Company>Sun</Company>
<Version>6.0</Version>
</node>
<node label=".Net">
<Name>.Net</Name>
<Company>Microsoft</Company>
<Version>2.0</Version>
</node>
<node label="Flex">
<Name>Flex</Name>
<Company>Adobe</Company>
<Version>2.0</Version>
</node>
<node label="OICQ">
<Name>OICQ</Name>
<Company>腾讯</Company>
<Version>2007</Version>
</node>
</root>
继续使用15.2.1节的文件,在DataGrid_ShowData_Example.as文件中,创建一个名为GetData2的函数,在函数中读取刚才创建的XML文件,代码如下所示:
/*********************************
* 加载外部XML数据
* */
private function GetData2():void
{
// 加载外部XML文件
data_xml = new XML();
myXMLURL = new URLRequest("DataGrid_Data.xml");
myLoader = new URLLoader(myXMLURL);
}
在类的外部,引入刚才使用的命名空间,包括URLRequest和URLLoader,代码如下:
import flash.net.URLRequest;
import flash.net.URLLoader;
创建上面的全局变量,data_xml、myXMLURL和myLoader。代码如下所示:
private var data_xml:XML;
private var myXMLURL:URLRequest;
private var myLoader:URLLoader;
创建XML对象的加载文件事件,并且在GetData2函数中添加侦听事件的语句,添加的侦听语句代码如下:
myLoader.addEventListener("complete", xmlLoaded);
XML对象的加载文件事件函数代码如下:
/*********************************
* 绑定DataGrid组件
* */
function xmlLoaded(event:Event):void
{
data_xml = XML(myLoader.data);
//trace(data_xml.elements("node").toXMLString());
}
在侦听事件函数中,把从外部读取的数据文件绑定到DataGrid组件中,代码如下:
// DataProvider
var dp:DataProvider = new DataProvider(data_xml);
// 初始化DataGrid组件,并实例化
var dg2:DataGrid = new DataGrid();
// 设置宽和高
dg2.setSize(200, 300);
// 定义列的标题
dg2.columns = ["Name", "Company", "Version"];
// 绑定数据源
dg2.dataProvider = dp;
addChild(dg2);
最后,在构造函数中,调用GetData2函数,代码如下:
/*****************************************
* 构造函数
* */
public function DataGrid_ShowData_Example()
{
GetData2();
}
编译代码并运行,效果如图15.2所示。
图15.2 读取外部数据绑定DataGrid组件
15.3 定义DataGrid组件样式外观
在实际程序开发中,有时候需要对DataGrid组件可视化的外观进行修改,以满足功能需要。例如,修改数据显示格式、修改DataGrid的样式和外观、自定义单元格等。
15.3.1 修改数据显示格式
当DataGrid组件显示出数据后,有些数据格式可能不是我们所需要的。这个时候,就要修改数据格式,把数据修改成有意义的,可以使读者更容易读懂的格式。比如货币格式前面要加美元符号或者人民币符号,有时候从数据库中读出的是0或1的布尔值,再比如电话号码等。
下面就以15.2.1节的实例为例,把Phone列修改成前面有区号的电话号码,步骤如下。
修改GetData1函数,在绑定数据源的语句之后,增加格式化语句,增加的代码如下所示:
// 格式化数据
dg1.getColumnAt(1).labelFunction = phoneFormatter;
phoneFormatter是格式化数据的函数,把电话号码前面加上区号“0755”,代码如下所示:
/*********************************
* 格式化电话号码
* */
private function phoneFormatter(item:Object):String
{
return "0755-" + item.Phone;
}
再次编译代码并运行,效果如图15.3所示。
图15.3 格式化电话号码
15.3.2 自定义DataGrid组件的标题
在显示完DataGrid组件的数据之后,有时候列的标题是数据库中已经定义好的列名 称,对于用户来说,不容易读懂,需要重新定义,那就需要自定义DataGrid组件的标题了。自定义标题要用到的类是 HeaderRenderer,HeaderRenderer类在类dataGridClasses中。下面就利用HeaderRenderer类来实现 自定义标题的功能。
还是以15.2.1节的实例为基础,加一些代码。在GetData1函数中加入如下代码:
// 自定义标题
var dgc0:DataGridColumn = dg1.getColumnAt(0);
dgc0.headerText = "姓名";
var dgc1:DataGridColumn = dg1.getColumnAt(1);
dgc1.headerText = "电话";
var dgc3:DataGridColumn = dg1.getColumnAt(3);
dgc3.headerText = "软件名称";
代码的作用是把第一行的标题改成“姓名”,第二行的标题改为“电话”,第三行的标题改为“软件名称”。再次编译运行,最终效果如图15.4所示。
图15.4 自定义DataGrid组件标题
15.4 DataGrid组件的分页与排序
当DataGrid组件中的数据显示很多行的时候,使用者需要不停地下拉滚动条。这对 于用户的体验极为不便,分页显示数据的方式就可以很好地解决这个问题。在应用软件开发中,分页也是常用的操作。排序的作用是为了用户可以更好地按照自己的 方式排列数据,更加方便地阅读数据信息。
15.4.1 DataGrid组件的分页
在很多语言中,分页技术都是很常见的。每种技术都有自己的优势和特点,但是基本思路都 差不多。基本思路是,把全部数据一次性读到一个数据集中,然后,再与DataGrid组件关联,分页的读取显示。另外一种思路是,先从数据库中读取一页的 数据,在DataGrid组件中显示出来,然后再读取,再显示。
下面,用第一种思路设计一个分页的程序,数据集采用数组的形式,利用数组的slice()方法,读取一部分数据,然后分页显示。步骤如下。
创建一个ActionScript 3.0文件,命名为DataGridPageExample,类名为DataGridPage- Example,继承自Sprite类,导入用到的类库。代码如下:
package
{
import fl.controls.Button;
import fl.controls.DataGrid;
import fl.controls.ScrollPolicy;
import fl.data.DataProvider;
import flash.display.Sprite;
import flash.events.MouseEvent;
public class DataGridPageExample extends Sprite
{
}
}
创建构造函数。代码如下所示:
/************************
* 构造函数
* **********************/
public function DataGridPageExample()
{
CreateDataModel();
CreateDataGrid();
CreatePageButton();
}
创建数据模型。实际开发中,是从外部数据库或者文件读取数据的,这里只是模拟数据源,便于讲解。在这里,插入了9条数据,然后传递到数组中,代码如下所示:
private var dp:DataProvider;
private var array:Array;
/************************
* 创建数据模型
* **********************/
private function CreateDataModel():void
{
// 数据模型
dp = new DataProvider();
// 插入9条数据
dp.addItem({Name:"Tom", Phone:23579086, QQ:77788899, Software:"Flash"});
dp.addItem({Name:"Kelly", Phone:33579080, QQ:56788823, Software:"Flex"});
dp.addItem({Name:"Jim", Phone:83579085, QQ:56788882, Software:"Java"});
dp.addItem({Name:"Sam", Phone:73579084, QQ:78988811, Software:"Dreamweaver"});
dp.addItem({Name:"Kaiven", Phone:33576681, QQ:32188897, Software:"Photoshop"});
dp.addItem({Name:"Gray", Phone:23229086, QQ:12388900, Software:"Fireworks"});
dp.addItem({Name:"Luar",Phone:23579087,QQ:24681899, Software:"DAEMON Tools"});
dp.addItem({Name:"Kite", Phone:85579082, QQ:68080894, Software:"FlashDevelop"});
dp.addItem({Name:"Polar",Phone:32579086,QQ:21586899,Software:"BeyondCompare"});
array = dp.toArray();
}
创建DataGrid组件,封装在函数CreateDataGrid中,代码如下所示:
private var dg:DataGrid;
// 数据副本
private var array_page:Array;
/************************
* 创建DataGrid组件
* **********************/
private function CreateDataGrid():void
{
// 初始化DataGrid组件,并实例化
dg = new DataGrid();
// 设置位置
dg.move(20,20);
// 设置宽和高
dg.setSize(350, 125);
dg.verticalScrollPolicy = ScrollPolicy.AUTO;
// 定义列的标题
dg.columns = ["Name", "Phone", "QQ", "Software"];
// 初始化数据
array_page = array.slice(0, 5);
// 绑定DataGrid组件
BingDataGrid(array_page);
addChild(dg);
}
绑定数据源,先是移除DataGrid组件中的所有数据,然后遍历参数数组中的数据,增加到DataGrid组件中。最后封装在函数BingDataGrid中,便于分页时重复调用。代码如下所示:
/************************
* 绑定数据源
* **********************/
private function BingDataGrid(array:Array):void
{
// 绑定数据源
dg.removeAll();
var i:uint = 0;
for(i=0; i<array.length; i++)
{
dg.addItem(array[i]);
}
}
创建“上一页”和”下一页“按钮,封装在函数CreatePageButton中,代码如下:
/************************
* 创建“上一页”和”下一页“按钮
* **********************/
private function CreatePageButton():void
{
var btnPre:Button = new Button();
var btnNext:Button = new Button();
btnPre.move(30, 170);
btnNext.move(240, 170);
btnPre.label = "上一页";
btnNext.label = "下一页";
btnPre.addEventListener(MouseEvent.CLICK, btnPreClick);
btnNext.addEventListener(MouseEvent.CLICK, btnNextClick);
addChild(btnPre);
addChild(btnNext);
}
创建“上一页”按钮的单击事件的函数,读取前5条数据,命名为btnPreClick,代码如下:
/************************
* “上一页”按钮的单击事件
* **********************/
public function btnPreClick(e:MouseEvent)
{
array_page = array.slice(0, 5);
BingDataGrid(array_page);
}
创建“下一页”按钮的单击事件的函数,读取后面的4条数据,命名为btnNextClick,代码如下:
/************************
* “下一页”按钮的单击事件
* **********************/
public function btnNextClick(e:MouseEvent)
{
array_page = array.slice(5, 10);
BingDataGrid(array_page);
}
把三个创建组件的函数增加到构造函数中,代码如下所示:
/************************
* 构造函数
* **********************/
public function DataGridPageExample()
{
CreateDataModel();
CreateDataGrid();
CreatePageButton();
}
最后编译运行,效果如图15.5所示。
图15.5 DataGrid组件分页
15.2 自定义DataGrid组件的单元格
DataGrid组件显示完数据之后,有些数据是需要用户自己定义或者修改的。这个时候就需要把需要用户修改的单元格变成可编辑的,以便于用户自己编辑。
15.5.1 编辑DataGrid组件的单元格
本节主要介绍如何定义一个单元格的编辑状态,下面的例子跟15.2.1节的例子差不多,但不同的是,应用了DataGridColumn类定义每个列的基本属性,然后再添加到DataGrid组件中。具体步骤如下。
创建一个ActionScript 3.0文件,命名为DataGridCellEditorExample,类名为DataGridCellEditorExample,继承自Sprite类,并导入用到的类库。代码如下所示:
package
{
import fl.controls.DataGrid;
import fl.controls.dataGridClasses.DataGridCellEditor;
import fl.controls.TextInput;
import fl.data.DataProvider;
import flash.display.Sprite;
import flash.text.TextFormat;
import fl.controls.dataGridClasses.DataGridColumn;
import fl.controls.ComboBox;
public class DataGridCellEditorExample extends Sprite
{
}
}
创建构造函数。代码如下所示:
/************************
* 构造函数
* **********************/
public function DataGridCellEditorExample()
{
}
创建DataGrid组件,封装在函数CreateDataGrid中。首先在函数中创建数据模型,代码如下所示:
/************************
* 创建DataGrid组件
* **********************/
private function CreateDataGrid():void
{
dg = new DataGrid();
// 设置大小
dg.setSize(350,300);
// 设置单元格的编辑状态
dg.editable = true;
// 创建数据模型
var dp:DataProvider = new DataProvider();
dp.addItem({Name:"Tom",Sex:"male",Phone:23579086,QQ:77788899,Software:"Flash"});
dp.addItem({Name:"Kelly",Sex:"female",Phone:33579080,QQ:56788823,Software:"Flex"});
dp.addItem({Name:"Jim",Sex:"male",Phone:83579085,QQ:56788882,Software:"Java"});
dp.addItem({Name:"Sam",Sex:"male",Phone:73579084,QQ:78988811,Software:"Dreamweaver"});
dp.addItem({Name:"Kaiven",Sex:"male",Phone:33576681,QQ:32188897,Software:"Photoshop"});
dp.addItem({Name:"Gray",Sex:"male",Phone:23229086,QQ:12388900,Software:"Fireworks"});
dp.addItem({Name:"Luar",Sex:"male",Phone:23579087,QQ:24681899,Software:"DAEMON Tools"});
dp.addItem({Name:"Kite",Sex:"female",Phone:85579082,QQ:68080894,Software:"FlashDevelop"});
dp.addItem({Name:"Polar",Sex:"male",Phone:32579086,QQ:21586899,Software:"Beyond Compare"});
在函数中,定义每个列,将性别和电话列的单元格设置成可编辑状态,添加的代码如下所示:
// 增加列,定义每个列的属性
var cellEditor:DataGridCellEditor = GetCustomEditor();
var sexcellEditor:DataGridCellEditor = GetCustomEditor_List();
// 增加定义“名字”列
var dgc_name:DataGridColumn = new DataGridColumn();
dgc_name.editable = false;
dgc_name.dataField = "Name";
//dgc_name.itemEditor = CellEditor;
dgc_name.sortable = true;
dg.addColumn(dgc_name);
// 增加定义“性别”列
var dgc_sex:DataGridColumn = new DataGridColumn();
dgc_sex.editable = true;
/dgc_sex.itemEditor = sexcellEditor;
dgc_sex.dataField = "Sex";
dgc_sex.sortable = true;
dgc_sex.width = 90;
dg.addColumn(dgc_sex);
// 增加定义“电话”列
var dgc_phone:DataGridColumn = new DataGridColumn();
dgc_phone.editable = true;
dgc_phone.dataField = "Phone";
dgc_phone.itemEditor = cellEditor;
dgc_phone.sortable = true;
dg.addColumn(dgc_phone);
// 增加定义“QQ”列
var dgc_qq:DataGridColumn = new DataGridColumn();
dgc_qq.editable = false;
dgc_qq.dataField = "QQ";
dgc_qq.sortable = true;
dg.addColumn(dgc_qq);
// 增加定义“软件”列
var dgc_soft:DataGridColumn = new DataGridColumn();
dgc_soft.editable = false;
dgc_soft.dataField = "Software";
dgc_soft.sortable = true;
dg.addColumn(dgc_soft);
dg.dataProvider = dp;
把DataGrid组件添加到舞台中,代码如下所示:
addChild(dg);
使用DataGridCellEditor对象,定义DataGrid组件单元格的样式,代码如下所示:
/************************
* 定义单元格样式
* **********************/
private function GetCustomEditor():DataGridCellEditor
{
var dgce:DataGridCellEditor = new DataGridCellEditor();
dgce.textField.background = true;
dgce.textField.backgroundColor = 0xCC99FF;
dgce.maxChars = 2;
dgce.restrict = "1234567890";
return dgce;
}
编译代码并运行,效果如图15.6所示。
图15.6 编辑DataGrid单元格
(文章来自: 闪客居
(文章来自: 闪客居
发表评论
-
Flex中使用JSon
2009-10-10 19:58 1043这是我从一位网友里看的例子,发现用Json真的很方便。附件中是 ... -
Flex 预载界面美化 Flex's preloader is not so flex
2009-03-03 16:24 2989转自: http://riashanghai.com/zh-h ... -
Flex 嵌入资源
2009-03-03 16:22 1220http://www.adobe.com/cn/devnet/ ... -
Flex中的嵌入资源(Embedding Assets)
2009-03-03 16:19 1281转自:http://hi.baidu.com/sw ... -
如何监听Canvas上滚动条的出现或隐藏 Quick Tip: How to Monitor the
2009-03-03 15:41 1804转自:http://riashanghai.com/zh-ha ... -
Flex中Event与Bindable
2009-03-03 15:37 4051转自:http://liguoliang.com Event: ... -
ResourceBundle用法
2009-03-03 11:18 2961ResourceBundle 用于解释资源文件。 1.新建 ... -
用Point+Graphics画虚线
2009-03-03 10:57 1470Graphics为我们提供了moveTo/lineTo,dra ... -
一个flex例子(自定义download progress bar的)
2009-03-03 10:52 2358预览:http://www.onflex.org/flexap ... -
同一个Column,不同ItemEditor
2009-03-03 10:19 1220这类需求比较少见,不过还是被我碰上了,哈哈。AdvancedD ... -
自定义Flex的Loading界面
2009-02-25 17:37 4573这个方法网上已经有人写过例子... 在这里我只是自己做个实例并 ... -
Flex Metatag
2009-02-25 14:15 1395Have you ever used [Bindable] i ... -
flex:嵌入应用程序资源
2008-12-29 14:56 1099可以在 Adobe® Flex™ 应用程序中嵌入各种类型的资源 ... -
Flex开发自定义控件(基础篇)
2008-12-29 14:53 1332前期准备: 点击File菜单 -> New -> ... -
Flex Cookbook --13.11深度拷贝ArrayCollection
2008-12-29 14:51 215513.11 深度拷贝一个ArrayCollection集合13 ... -
Flex 中的元数据标签
2008-12-29 14:45 1314Flex 元数据标签——告诉编译器如何编译 虽然多数F ... -
Flex Flash 和JAVA 在Socket交互
2008-12-29 14:40 7059首要要了解.两种语言是 ... -
AS3的网页参数处理
2008-12-29 14:36 1202我们一般向网页swf文件传入参数有两种方式,一种是URL如: ... -
Cookie类
2008-12-29 14:36 946[AS3]Cookie类 [AS2]Flash版本的Cooki ... -
Flex学习笔记_09 数据绑定_晋级篇
2008-12-29 14:34 8679.2.1 函数和类级别的绑定 [Bindable]标签打使用 ...
相关推荐
2024-2030全球及中国控制膨胀合金箔行业研究及十五五规划分析报告
通信历年真题选择题汇总1.(DOC).doc
电子通信设计资料电子万年历设计与制作论文资料提取方式是百度网盘分享地址
前台框架基于Bootstrap这一HTML5响应式框架,能够自适应不同终端设备的屏幕大小,为用户提供良好的浏览体验。开发环境兼容myEclipse、Eclipse、Idea等多种工具,配合mysql数据库,实现数据的存储与管理。后台则采用SSM(SpringMVC + Spring + Mybatis)框架,保证系统的稳定与高效运行。 系统主要包括会员信息管理、员工信息管理、设备信息管理以及退出模块。会员信息管理模块详细记录了会员的基本信息、健身目标、消费记录以及健身习惯等,同时设有会员投诉管理模块,用于收集和处理会员的意见与建议。员工信息管理模块则涵盖了员工的基本信息、工资发放情况等,帮助俱乐部进行人事管理。设备信息管理模块则负责建立器械档案,跟踪维修情况,并合理安排器械摆放位置,以延长器械使用寿命。 数据库设计方面,会员表记录了会员的各项基本信息,包括姓名、性别、职业等;部门表与员工表则分别用于记录俱乐部的组织机构和员工信息;会员消费表记录了会员的消费详情;员工工资表则用于记录员工的工资发放情况;留言表用于收集会员的留言及回复;设备类别表与设备表则详细记录了会所内器械的分类与具
2024-2030全球及中国超级殷钢 32-5行业研究及十五五规划分析报告
行业分析报告
linux环境不能上网,用这个文件可以实现nginx免安装
“按点击量排序-基于内容的课程推荐网站的设计与实现(SSM+html)”是一个基于内容推荐概念的在线学习平台,旨在为用户提供个性化的课程推荐体验。系统的核心功能包括用户注册登录、课程浏览搜索、个性化推荐和热门课程按点击量排序展示。在技术架构方面,该系统采用SSM框架作为后端开发技术,包括Spring、Spring MVC和MyBatis,用于处理业务逻辑和数据持久化。前端界面则采用HTML设计实现,展示课程信息和用户交互界面。这样的技术选择不仅提供了稳定的后端支持,还保证了良好的前端用户体验。通过SSM框架以及HTML的结合,该课程推荐网站在功能性和性能方面表现优异。SSM框架提供了高效的业务处理和数据交互,HTML则赋予网站美观友好的用户界面,使用户能够轻松使用课程推荐功能。热门课程的点击量排序功能提高了用户浏览体验,使用户更快速地找到感兴趣的课程,从而提升整体用户满意度和学习效率。
行业分析报告
1:场景一主要有两个功能,第一个是控制左边图片,第二个是让右边文字逐一显示。 2:场景二功能简单一点,只控制左边人物出现,紧接着是文字显示。 3:场景三功能控制图片弹跳显示,我用for循环控制弹跳距离。 4:场景四控制图片从顶部往下滑落,停留1秒然后滑向右侧直至消失。 5:场景五慢慢显现,可点击进入婚礼。 6:场景六显现停留1.6秒,然后以碎片的形式向外散开。 7:场景七祝福贴纸随机排布,并且可拖动祝福贴纸。 8:添加祝福语中,需填写祝福语,否则不让提交。可提交的祝福语便随机散布在祝福墙中,可实现随意拖动功能,
AI论文体系建设是指建立一个完善的AI领域的论文研究框架和体系,以促进学术交流和知识积累。这一体系包括但不限于以下几个方面: 1. **研究主题界定**:明确AI领域的研究主题和范围,包括机器学习、深度学习、自然语言处理、计算机视觉等方向。 2. **文献综述**:对AI领域相关研究文献进行综述和分类,总结研究现状和发展趋势,为后续研究提供参考。 3. **研究方法论**:探讨AI研究的方法论,包括实验设计、数据采集、模型构建等方面的方法和技巧。 4. **实验验证**:强调实验验证在AI研究中的重要性,提倡开放数据和代码,以促进研究结果的可复现性和可验证性。 5. **学术交流**:倡导学术交流和合作,包括参加学术会议、发表论文、组织研讨会等方式,促进学术成果的传播和交流。 6. **学术评价**:建立科学的学术评价体系,包括SCI、EI等学术期刊和会议的评价标准,以及学术成果的评价指标和方法。 通过建设完善的AI论文体系,可以促进AI领域的学术研究和技术创新,推动人工智能技术的发展和应用。
行业分析报告
围绕着医疗安全与医疗机构管理精细化目标,借鉴HIMSS评级标准、JCI评审、等级医院评审标准规范,基于统一的技术平台架构下的医教研人财物六位一体的信息化管理解决方案,实现医疗卫生机构医务、护理、人力资源、科研、教学、医患关系、设备与物资供应链等日常管理运营信息化。 利用移动互联网技术构建专业的分享服务平台,以为会员提供相关知识、专家在线服务、法律咨询服务,并为医生、医疗机构和健康管理会所提供宣传服务等众多增值服务。 4 大目标: 高效诊疗、智慧医疗、精细管理、信息便民; 1 卡通: 一张诊疗卡。 1 个平台: 一个医院信息集成平台; 6 大应用: 医疗管理、临床信息、运营管理、移动物联、医疗协作、对外服务。
本项目是基于PHP的轻量级MVC框架设计源码,包含56个文件,其中主要包含50个php源代码文件。系统采用了PHP编程语言,实现了基于PHP7+的轻量级MVC框架。该框架适用于博客系统、新闻管理系统、企业官网和Api系统等多种应用场景,是这些系统的最佳选择。项目结构清晰,代码可读性强,易于理解和维护。
本Matlab程序的主要功能是实现飞行器的侧向和纵向的机动,通过设计横向和纵向的控制指令实现。系统状态(微分方程)的解算提供了两种方式,龙格库塔法和欧拉法。 主程序main_cexiang:实现飞行器的侧向机动; 主程序main_zongxiang:实现飞行器的纵向机动。
基于ssm+vue学生学籍管理系统源码数据库文档.zip
mybatis-plus-generato.jar 包,各个版本,免费下载。 mybatis-plus 代码生成器生成代码框架。各个版本,免费下载。 下载不了,关注我,评论区联系我。
springboot+vue“智慧食堂”设计与实现 系统主要包括首页,个人中心,用户管理,菜品分类管理,菜品信息管理,留言板管理,系统管理,订单管理等功能。 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7+ 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog
基于ssm+vue孩童收养信息管理系统源码数据库文档.zip
本文深入探讨了概率论在时尚产业中的应用,分析了如何利用统计学原理来预测和引导时尚潮流。内容涵盖了数据收集、市场趋势分析、消费者行为研究以及如何通过概率模型来优化设计和营销策略。文章适合时尚产业的设计师、市场分析师、品牌经理以及对时尚趋势感兴趣的学者和学生。无论是在设计新款服饰、制定市场推广计划,还是在学术研究中,本文都能提供有价值的见解和方法。 关键词 时尚产业