- 浏览: 399369 次
- 性别:
- 来自: 青岛
博客专栏
-
wordpress步步高
浏览量:76164
-
Web前端开发之路
浏览量:92811
-
Flex/ActionSc...
浏览量:64014
-
Android/IOS 开...
浏览量:35387
-
PHP项目实战
浏览量:24517
文章分类
最新评论
-
u013810758:
editplus
个人觉得 SublimeText 目前最好用的 文本编辑器 -
u010189889:
poll.zip (13.7 KB) 这个文件是干什么的?
手把手做一个PHP 投票系统 -
freerambo:
不错 赞一个
完美的 登录注册框 含漂亮的过渡、转换效果 -
uule:
不错不错,楼主好屌
国外经典JS、Jquery 各种资源集合 -
zyl324:
真心不错,学习了
用jquery都弱爆了 纯css 实现焦点图的 动态绚丽效果
本程序实现了对XML的增、删、改、查操作,并同步到xml数据库中
用到的技术:
1.Flex基本布局技术,常用控件操作
2.基本事件的触发、自定义事件的触发
3.flex读写更改 操作XML对象
4.基本数据库知识
<?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="720" height="600" creationComplete="initApp()" xmlns:s="library://ns.adobe.com/flex/spark" viewSourceURL="srcview/index.html"> <mx:Script> <![CDATA[ import event.*; import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.events.IndexChangedEvent; import mx.modules.Module; import mx.utils.StringUtil; import tree.*; //set bindable [Bindable] internal var currentPeople:people=new people; public var peopledata:XML; public var path:File=File.documentsDirectory.resolvePath("D:/peoples.xml"); public var n:Number; public var warning:String="填写信息不全"; public var warningtitle:String="警告"; public var searchwarning:String="填写内容不全"; /** * InitApp function handler * */ internal function initApp():void{ var peoples:FileStream=new FileStream; peoples.open(path,FileMode.READ); peopledata=XML(peoples.readUTFBytes(peoples.bytesAvailable)); peoples.close(); var users:Object=peopledata.user; n=0; for(var i:* in users){ var newPeople:peopleItem=new peopleItem(); var peopleInfo:people=new people; peopleInfo.setpeople(users[i]); newPeople.p=peopleInfo; holder_user.addChild(newPeople); newPeople.addEventListener(selectPeopleEvent.CLICK_PEOPLE,selectHandler); newPeople.y=n*newPeople.height; n++; } } /** * writedata **/ public function writedata():void{ var writedata:FileStream=new FileStream; writedata.open(path,FileMode.WRITE); writedata.writeUTFBytes(peopledata.toString()); writedata.close(); } /** * * match * */ public function match(selectedone:people):int{ var index:int=new int; var conter:int; for(conter=n-1;conter>=0;conter--){ if(selectedone.id==peopledata.user[conter].id){ index=conter; }else{ continue; } } return index; } /** * * * */ internal function selectHandler(evt:selectPeopleEvent):void{ currentPeople=evt.selectedUser; } /** * * * */ public function clearHandler():void{ addname.text=""; addotherinfo.text=""; addphone.text=""; addotherinfo.text = ""; addmale.selected=false; addfemale.selected=false; } /** * * * */ public function addHandler():void{ var addcontent:XML; if(addname.text==""||addotherinfo.text==""||addphone.text==""||(!(addmale.selected||addfemale.selected))){ Alert.show(warning,warningtitle,Alert.OK); } else if(addmale.selected){ addcontent = <user> <id>{n}</id> <name>{addname.text}</name> <sex>male</sex> <phonenum>{addphone.text}</phonenum> <otherinfo>{addotherinfo.text}</otherinfo> </user>; peopledata.appendChild(addcontent); writedata(); holder_user.removeAllChildren(); initApp(); Alert.show("添加成功!"); } else{ addcontent = <user> <id>{n}</id> <name>{addname.text}</name> <sex>female</sex> <phonenum>{addphone.text}</phonenum> <otherinfo>{addotherinfo.text}</otherinfo> </user>; peopledata.appendChild(addcontent); writedata(); holder_user.removeAllChildren(); initApp(); Alert.show("添加成功!"); } clearHandler(); } public function textChangeHandler(modified:people):void { var num:int=match(modified); peopledata.user[num].name=peoplename.text; peopledata.user[num].otherinfo=peopleotherinfo.text; peopledata.user[num].phonenum=peoplephone.text; writedata(); holder_user.removeAllChildren(); initApp(); if(male.selected){ peopledata.user[num].sex="male"; } else{ peopledata.user[num].sex="female"; } } /** * * * */ public function modifyHandler(modified:people):void{ if(this.ModifyBtn.selected) { peoplename.enabled = true; peoplesex.enabled = true; peopleotherinfo.enabled = true; peoplephone.enabled = true; this.ModifyBtn.label = "保存信息"; } else { var num:int=match(modified); /* if(peoplename.text==""||peoplephone.text==""||peopleid.text==""||(!(male.selected||female.selected))){ Alert.show(warning,warningtitle,Alert.OK); } */ peopledata.user[num].name=StringUtil.trim(peoplename.text); peopledata.user[num].phonenum=StringUtil.trim(peoplephone.text); peopledata.user[num].otherinfo=StringUtil.trim(peopleotherinfo.text); writedata(); holder_user.removeAllChildren(); initApp(); if(male.selected){ peopledata.user[num].sex="male"; } else{ peopledata.user[num].sex="female"; } Alert.show("修改成功"); selectPeopleEvent.userItemClicked = false; this.ModifyBtn.label = "修改此客户"; } } /** * * * */ public function deleteHandler(deleted:people):void{ var num:int=match(deleted); delete peopledata.user[num]; writedata(); holder_user.removeAllChildren(); n--; //Alert.show("Delete success!"); initApp(); selectPeopleEvent.userItemClicked = false; } /** * Search Handler * search a user by its name or phone(part of its name or phonenum) * */ public function searchHandler():void{ var aim:int=new int; aim=n-1; if(searchname.text==""&&searchphone.text==""){ Alert.show(searchwarning,warningtitle,Alert.OK); }else{ for(aim;aim>=0;aim--){ if(peopledata.user[aim].name.indexOf(StringUtil.trim(searchname.text)) != -1 || peopledata.user[aim].phonenum.indexOf(StringUtil.trim(searchphone.text)) != -1 || peopledata.user[aim].name == StringUtil.trim(searchname.text) || peopledata.user[aim].phonenum == StringUtil.trim(searchphone.text) || peopledata.user[aim].name.search(StringUtil.trim(searchname.text)) != -1 || peopledata.user[aim].phonenum.search(StringUtil.trim(searchphone.text)) != -1 ){ break; } } currentPeople.setname(peopledata.user[aim].name); currentPeople.setsex(peopledata.user[aim].sex); currentPeople.setphone(peopledata.user[aim].phonenum); currentPeople.setotherInfo(peopledata.user[aim].otherinfo); } holder_user.removeAllChildren(); initApp(); } ]]> </mx:Script> <mx:Panel width="200" layout="absolute" cornerRadius="15" title="客户列表" left="10" top="10" height="540"> <mx:Canvas id="holder_user" width="100%" height="100%"> </mx:Canvas> </mx:Panel> <mx:Panel id="userInfo" width="435" layout="absolute" height="540" title="客户详细信息" cornerRadius="15" top="10" left="218"> <s:VGroup paddingTop="10" paddingLeft="20" id="manageUser"> <s:HGroup gap="10" width="100%" height="25"> <s:Label text="客户信息管理" paddingTop="5" fontSize="14" fontWeight="bold" toolTip="点击左边的用户即可"/> <s:HGroup gap="10" width="100%" height="30" paddingLeft="10" visible="{selectPeopleEvent.userItemClicked}" includeInLayout="{selectPeopleEvent.userItemClicked}" > <s:ToggleButton label="修改此客户" width="100" id="ModifyBtn" change="modifyHandler(currentPeople)"/> <mx:Button label="删除此客户" width="100" click="deleteHandler(currentPeople)"/> </s:HGroup> </s:HGroup> <s:HGroup gap="10" width="400" height="30" paddingTop="5"> <mx:Label text="姓名:"/> <mx:TextInput text="{currentPeople.name}" id="peoplename" enabled="{!selectPeopleEvent.userItemClicked}" /> </s:HGroup> <s:HGroup gap="10" width="400" height="30" paddingTop="5"> <mx:Label text="性别:"/> <mx:TextInput text="{currentPeople.sex}" id="peoplesex" enabled="{!selectPeopleEvent.userItemClicked}" /> <mx:RadioButton label="男" id="male"/> <mx:RadioButton label="女" id="female"/> </s:HGroup> <s:HGroup gap="10" width="400" height="30" paddingTop="5"> <mx:Label text="手机:"/> <mx:TextInput text="{currentPeople.phonenum}" id="peoplephone" enabled="{!selectPeopleEvent.userItemClicked}" /> </s:HGroup> <s:HGroup gap="10" width="400" height="30" paddingTop="5"> <mx:Label text="其他:"/> <mx:TextInput text="{currentPeople.otherinfo}" id="peopleotherinfo" enabled="{!selectPeopleEvent.userItemClicked}" /> </s:HGroup> </s:VGroup> <s:VGroup gap="2" width="100%" paddingTop="200" horizontalAlign="left" paddingLeft="20" id="searchUser"> <mx:HRule width="80%" height="4" /> <s:Label text="搜索客户 (请输入要查询的客户姓名 或 客户手机号码)" fontSize="14" fontWeight="bold" paddingTop="5"/> <s:HGroup gap="10"> <mx:Label text="客户姓名:" /> <mx:TextInput id="searchname"/> <mx:Button label="搜索" click="searchHandler()"/> </s:HGroup> <s:HGroup gap="10"> <mx:Label text="手机号码:" /> <mx:TextInput id="searchphone"/> <mx:Button label="搜索" click="searchHandler()"/> </s:HGroup> <s:HGroup paddingTop="10"/> <mx:HRule width="80%" height="4"/> </s:VGroup> <s:VGroup gap="2" width="100%" paddingTop="300" paddingLeft="20" id="addUser"> <s:Label text="添加新客户信息" fontSize="14" fontWeight="bold" paddingTop="5"/> <s:HGroup gap="10" paddingTop="5" width="400" height="30"> <mx:Label text="姓名:" /> <mx:TextInput id="addname"/> </s:HGroup> <s:HGroup width="400" height="30" paddingTop="5"> <mx:Label text="性别:" /> <mx:RadioButton label="男" id="addmale"/> <mx:RadioButton label="女" id="addfemale"/> </s:HGroup> <s:HGroup gap="10" width="400" height="30" paddingTop="5"> <mx:Label text="手机:" /> <mx:TextInput id="addphone"/> </s:HGroup> <s:HGroup gap="10" width="400" height="30" paddingTop="5"> <mx:Label text="其他:" /> <mx:TextInput id="addotherinfo"/> </s:HGroup> <s:HGroup gap="10" width="400" height="40" paddingLeft="10" paddingTop="10"> <s:Button label="添加" click="addHandler()"/> <s:Button label="取消" click="clearHandler()"/> </s:HGroup> </s:VGroup> </mx:Panel> </mx:WindowedApplication>
完整源码 待续……
发表评论
-
FlashBuilder4.5 下载 及破解方法
2011-10-21 12:14 6565FB4.5 官网下载: (http://tria ... -
与大家分享一下Flex 学习资料 (续)
2011-10-11 13:08 1867Flex as3 资源共享 包括以下内容 1.as3.0学 ... -
与大家分享一下 我的Flex学习 参考资料
2011-10-06 07:09 2039以下资料 为在下 再学习Flex 和AS3的过程中 曾经看过的 ... -
自定义 修改Flex DataGrid的 Header Style
2011-10-04 14:32 2449mx|DataGrid.MarketMoversDataGri ... -
深入理解Flash Player重绘
2011-10-04 13:00 49Flash Player 会以SWF内容的帧频速度来刷新需要变 ... -
Flex DataGrid HeaderRender 实例
2011-10-04 10:33 2470<mx:DataGridColumn id=" ... -
Flex 设置模式窗口 不可移出 当前窗口外
2011-10-03 09:19 1471<?xml version="1.0&quo ... -
flex 巧用dataGrid实现 复杂格式 数据 显示
2011-09-29 12:37 1687<mx:DataGrid id="dg&qu ... -
Flex dataGrid 用measureHeightOfItems 去掉竖直滚动条
2011-09-29 12:22 2155当数据很多的时候 Flex Datagrid 会自动给表格 ... -
Flex中 给图片添加倒影效果
2011-09-26 10:47 1171首先到 http://code.google.com/p/go ... -
Flex 4 打印预览 实例
2011-09-26 08:21 1393http://blogs.soph-ware.com/post ... -
Flex 4 打印预览
2011-09-26 08:20 1783<?xml version="1.0&quo ... -
Flex4 切换States实现3D旋转效果
2011-07-29 09:01 3173<?xml version="1.0" ... -
Flex AS3 --连接字符串
2011-07-20 14:55 1388多个字符串连接成一个解决办法…… 解决办法1: 使用 ... -
AS 中创建成员属性
2011-07-20 09:48 1000问题: 我要创建public成员属性 ... -
带图标的Combox、Dropdownlist
2011-05-03 14:17 2141SKin <?xml version="1. ... -
Flex导航菜单
2011-04-19 09:03 3246<?xml version="1.0" ... -
Flex中禁用Combobox的可编辑属性和添加prompt属性
2011-04-19 08:50 1806Flex中禁用Combobox的可编辑属性和添加prompt属 ... -
我的Flex成长之路 2011.3.23
2011-03-23 17:03 0我学习Flex有大半年的时间了,渐渐地从菜鸟到了入门阶段吧, ... -
Flex TabBar ViewStack综合实例
2011-03-14 16:03 2662<?xml version="1.0" ...
相关推荐
### Flex的Adobe AIR快速入门知识点解析 #### 一、处理文件和数据 1. **构建目录搜索应用程序** - **异步读取文件**: 在构建目录搜索应用程序时,使用`getDirectoryListingAsync()`方法来异步获取目录列表,这样...
例如,如果选择使用 Flex Builder,则需确保已正确安装并配置 Flex Builder 对 AIR 的支持。如果是使用 Flex SDK,则需要完成相应的安装和配置步骤。 #### 三、创建 AIR 应用程序 - **使用 Flex Builder 创建 AIR ...
综合以上信息,我们可以得出,这个“flex air sqlite客户端安装软件”是一个使用Flex和AIR技术开发的桌面应用程序,专门用来方便地管理和测试SQLite数据库。用户通过下载安装文件,双击Lita.swf来启动程序,利用其...
7. **响应式设计**:如果你的仪表盘需要适应不同的屏幕尺寸,可以利用Flex的布局管理器和条件语句来实现响应式设计,确保在桌面、平板和移动设备上都能良好显示。 8. **性能优化**:对于大量数据的处理,要注意性能...
AIR允许开发者将Web技术应用于桌面环境,这意味着名片管理系统不仅可以在Web浏览器上运行,还可以作为一个独立的应用程序在用户的电脑上离线使用。 5. **数据存储**:虽然源代码没有注释,但可以推测系统可能使用了...
5. **数据存储与本地化**:学习如何使用AIR的本地文件系统接口和SQLite数据库进行数据持久化,以及如何实现多语言支持和资源文件的管理。 6. **性能优化**:源代码可能包含了针对Android设备性能优化的技巧,如减少...
标题 "使用Restfulx框架开发AIR程序" 暗示了我们要探讨的是如何利用Restfulx框架来构建Adobe Integrated Runtime (AIR)应用程序。Restfulx是一个用于构建RESTful API客户端的开源库,它使得在AIR应用中与远程服务器...
"Air finance源代码"指的是利用Adobe AIR开发的一个金融应用的源代码,可能是用于财务管理或者金融服务的示例程序。这个程序展示了如何在Adobe AIR平台上构建自定义组件和功能。 在深入探讨源代码之前,我们先了解...
6. **AJAX集成**:虽然Flex GBook是基于Flash技术,但可能也利用了AJAX(异步JavaScript和XML)来实现部分页面的动态更新,提高用户体验。 7. **安全性**:由于涉及用户交互和数据存储,Flex GBook必须考虑安全性...
FLEX全称为Flex Builder,是一款基于Adobe AIR的开发工具,主要用于构建富互联网应用程序(RIA)。它使用MXML和ActionScript语言,结合Flex SDK,能创建交互性强、用户体验良好的桌面和Web应用程序。Flex框架提供了...
Flex是一种用于构建富互联网应用程序(RIA)的开源框架,它基于ActionScript编程语言和MXML标记语言,能够创建交互性强、用户体验优良的Web应用。 在这款系统中,Flex的强项在于它的图形用户界面(GUI)设计和组件...
Flex可以与Java后端服务进行交互,以实现对数据库的操作。这种交互通常通过HTTP请求完成,Flex发送JSON或XML格式的数据到Java服务器,服务器端再通过JDBC连接数据库执行SQL语句,处理完数据后再返回给Flex客户端。 ...
从给定的文件信息来看,这是一本名为《AdvancED Flex3》的电子书,出版于2008年10月,作者包括Shashank Tiwari、Jack Herrington、Elad Elrom和Joshua Mostafa。本书由多个编辑、技术审稿人以及项目管理团队共同协作...
- **使用Flex生成数据**: Flex应用程序收集所有必要的数据,这些数据通常包括文本、图像等元素,这些元素将被用于构建最终的PDF文档。 - **发送数据到PHP**: 通过Ajax或者其他异步通信方式,将收集到的数据发送到PHP...
Flex应用程序通常运行在Adobe Flash Player或Adobe AIR之上,能够提供桌面应用般的交互体验。开发者可能会使用MXML和ActionScript来编写Flex代码,构建包括员工信息录入、查询、编辑等功能的界面。 在网站建设方面...
26.1.3ActionScript与桌面程序交互 567 26.2网页脚本交互示例 568 26.3桌面应用交互示例 571 26.4小结 573 第27章ActionScript打印控制 574 27.1使用打印作业对象 574 27.1.1创建与启动打印作业 574 27.1.2设置打印...
9. **发布与部署**:了解发布设置,如何生成SWF或AIR应用,以及部署到不同平台,如Web、桌面或移动设备。 10. **优化与性能**:探讨性能优化技巧,如何减少内存占用,提高应用程序运行速度。 压缩包中的"Flash ...