本篇内容为创建员工缩略图以及员工详细信息,如图。
1.在views.personnel包下创建一个名为EmployeeCatalogPanel的Panel组件,分别用【browse】和【details】两个state显示员工列表和员工详细信息。
<s:states>
<s:State name="details" />
<s:State name="browse" />
</s:states>
2. 在EmployeeCatalogPanel中创建一个BorderContainer,里面包含一个Cavas用于显示员工列表。
<s:BorderContainer width="100%" height="100%" >
<mx:Canvas id="thumbContent" width="100%" height="100%" horizontalScrollPolicy="off" />
<!--tetails-->
</s:BorderContainer>
3. 创建一个类型为ArrayCollection的变量_catalog,用于存放Employee List,重写其set和get。
private var _catalog:ArrayCollection = new ArrayCollection; // 用于存放employees
[Bindable]
public function set catalog(value:ArrayCollection):void{
_catalog = value;
createThumbnails(); // 创建缩略图
}
public function get catalog():ArrayCollection{
return _catalog;
}
4. 在views.personnel包下创建一个名为EmployeeCatalogThumbnail的BorderContainer组件,为其声明一个pubilc的Employee变量。
[Bindable]
public var employee:Employee;
5. 在EmployeeCatalogThumbnail中拖入一个Image用于显示Employee的头像,用两个label控件显示Employee的姓名和性别,参照附件。
6. 分别用【cols2】、【cols3】、【cols4】3个State显示EmployeeCatalogThumbnail在员工总数发生变化时的大小,总数大于9时,每行显示最多显示4名员工;总数在4~9之间,每行最多显示3名员工;否则显示2名员工。
width.cols4="{COL_WIDTH_4}" height.cols4="{COL_HEIGHT_4}"
width.cols3="{COL_WIDTH_3}" height.cols3="{COL_HEIGHT_3}"
width.cols2="{COL_WIDTH_3}" height.cols2="{COL_HEIGHT_3}"
7.为EmployeeCatalogThumbnail加入rollOver、rollOut、click的事件处理函数。
8.回到EmployeeCatalogPanel,创建一个Array对象,用于存放EmployeeCatalogThumbnails。
private var thumbnails:Array = new Array(); // 用于存放???CatalogThumbnail
private var filterCount:int; //
private var accepted:Dictionary = new Dictionary();
9.在createThumbnails()中,根据catalog逐个创建EmployeeCatalogThumbnail,在结束时调用layoutCatalog函数。
private function createThumbnails():void {
var i:int;
if (null != thumbnails) { // 清空缩略图
for (i=0; i < thumbnails.length; i++) {
thumbContent.removeElement(thumbnails[i]);
}
}
var row:int = 0;
var col:int = -1;
var n:int = catalog.length;
thumbnails = new Array(n);
filterCount = n;
// 创建CatalogThumbnails
for (i=0; i < n; i++) {
var thumb:EmployeeCatalogThumbnail = new EmployeeCatalogThumbnail();
thumbnails[i] = thumb;
thumbnails[i].showInAutomationHierarchy = true;
thumb.employee = catalog.getItemAt(i) as Employee;
accepted[thumb.employee] = true;
thumbContent.addElement(thumb);
thumb.addEventListener(EmployeeThumbEvent.DETAILS, employeeThumbEventHandler);
}
layoutCatalog(); // 布局
}
10. 员工管理的动画效果放在layoutCatalog中处理,请参照代码中的注释。
11. 在主应用程序中加入EmployeeCatalogPanel控件,并加入加载员工的方法,运行程序。
<personnel:EmployeeCatalogPanel id="catalogPanel" x="176" y="26" width="660" height="600"/>
<s:Button x="76" y="26" label="加载员工" click="employeeManager.queryEmployees(null)" />
12. 在views.personnel包下创建一个名为EmployeeDetails的BorderContainer组件,用于显示员工详细信息,其内容如图,代码参照附件。
13. 回到EmployeeCatalogPanel,在thumbContent下面加入EmployeeDetails。
<s:BorderContainer width="100%" height="100%" >
<mx:Canvas id="thumbContent" width="100%" height="100%" horizontalScrollPolicy="off" />
<personnel:EmployeeDetails id="details" visible="false" visible.details="true"
width="{EmployeeCatalogThumbnail.COL_WIDTH_4 * 3}" height="100%"
addEmployee="thumbEventHandler(event)"
browse="thumbEventHandler(event)"
updateEmployee="thumbEventHandler(event)"/>
</s:BorderContainer>
14. 在showDetails()中将显示detail,并将其余的thumbnail移动到右手边。
分享到:
相关推荐
【标题】"仿照Flexstroe3写的一个员工管理应用(三)"涉及的主要知识点是基于Flexstroe3框架开发的员工管理系统。Flexstroe3是一个流行的企业级应用框架,主要用于构建富互联网应用程序(Rich Internet Applications...
【标题】:“仿照Flexstroe3写的一个员工管理应用(二)” 在这个主题中,我们探讨的是如何基于Flexstore3的设计模式构建一个员工管理应用的第二个部分。Flexstore3是一个用于数据存储和管理的框架,它在JavaScript...
【描述】: "仿照Windows记事本的小程序是一个适合初学者实践的项目,它将帮助你掌握基础编程技巧。在这个过程中,你会遇到如何创建一个简单的图形用户界面(GUI),处理用户输入,读写文件,以及实现文本编辑功能的...
仿照wireshark写的一个网络流量监测应用,前端用的pyqt,界面还蛮好看的,具体功能包括抓包,_Network-monitoring
本项目“仿照淘宝做的一个ASP电子商务网站”旨在提供一个基于B2B(Business-to-Business)模式的在线交易平台。在ASP(Active Server Pages)技术的支持下,该网站实现了诸如商品浏览、购物车、订单处理、用户管理等...
在“仿照内核makefile写的一个测试小工程”中,我们可以找到一些关键的元素和概念: 1. **目标与依赖关系**:在Makefile中,每个目标(target)都有一个或多个依赖文件(dependency)。当依赖文件改变时,Makefile...
仿照MyBatis手写一个持久层框架对应源码,适用于文档学习下载使用
仿照知乎做的一个Java web项目,是一个sns+资讯的web应用。使用SpringBoot+Mybatis+velocity开发。数据库使用了redis和mysql,同时加入了异步消息等进阶功能,同时使用python爬虫进行数据填充。 软件开发设计:应用...
3. **删除应用**:删除操作通常涉及一个移除元素的过程。在Vue中,可以使用`v-if`或`v-show`指令根据数据模型的状态决定某个应用组件是否显示。当用户选择删除某个应用时,对应的模型数据会被移除,从而导致该应用...
仿照知乎做的一个Java web项目,是一个sns+资讯的web应用。使用SpringBoot+Mybatis+velocity开发。数据库使用了redis和mysql,同时加入了异步消息等进阶功能,同时使用python爬虫进行数据填充。 适合学习/练手、毕业...
【标题】"仿照微信界面写的app"是一个项目,旨在创建一个与微信用户界面高度相似的应用程序。这个项目的核心目标是复制微信的90%的UI设计,为开发者提供一个研究和学习移动应用界面设计的实例。 【描述】中提到,这...
在计算机操作系统中,任务管理器是一个至关重要的工具,它允许用户监控和控制正在运行的进程、查看系统性能信息以及管理启动项等。本项目是针对Windows任务管理器的一个仿制品,旨在提供类似的用户界面和功能,帮助...
使用c++基于Qt框架开发的任务管理器,UI仿照win10.zip 使用c++基于Qt框架开发的任务管理器,UI仿照win10.zip 使用c++基于Qt框架开发的任务管理器,UI仿照win10.zip 使用c++基于Qt框架开发的任务管理器,UI仿照win10....
直播课堂管理系统是一个基于MySQL数据库和JavaWeb技术构建的教育平台,用于实现在线教学的管理和交互。这个系统的主要功能包括课程管理、用户管理、查询操作、数据的增删改查等,旨在提供一个高效、便捷的教学环境。...
c++版本libevent,仿照libevent写的一个服务器框架,libevent的基本功能已实现,暂时不能在windows平台上使用,定时器是纯粹的timer wheel方式,与libevent的小根堆不一样,而且最大定时时间是固定的,暂时不支持...
【标题】"仿照知乎做的一个Java web项目"与【描述】中的"python项目"存在不一致,这可能是因为信息提供有误。但从标题来看,我们可以聚焦于Java Web项目的相关知识点。 Java Web项目通常指的是使用Java语言开发的、...
标题中的"C#写的记事本"指的是使用C#编程语言开发的一个文本编辑器,它旨在模仿Windows操作系统内置的记事本应用程序。C#是微软公司推出的一种面向对象的、现代的编程语言,常用于开发Windows桌面应用、Web应用以及...
在本项目中,"仿照github实现客户端"是开发者基于Android Studio使用MVP(Model-View-Presenter)架构模式创建的一个GitHub的安卓平台客户端应用,名为GitDroid。这个应用旨在提供与GitHub官方客户端类似的用户体验...
本项目是使用C#编写的一个仿照Windows资源管理器的小程序——File Explorer,它实现了浏览、操作文件和目录的基本功能,为用户提供了一种熟悉且便捷的文件管理体验。 1. **基础架构**: - File Explorer基于WPF...