代码如下:

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" verticalAlign="top" applicationComplete="init()">

    <mx:Script>

        <!--[CDATA[

            import mx.events.ItemClickEvent;

            import mx.collections.ArrayCollection;

            import mx.controls.Alert;

            [Bindable]

            public    var dataColl:ArrayCollection=new ArrayCollection();

            //ID编号

            var k=1;

            //联系人对象

            var userobj:Object;

            //性别默认状态

            var sexobj:String="男";

            //右键删除菜单

            var menucont:ContextMenu;

            //初始化行数

            var p:int=0;

            public function init():void{

                menucont=new ContextMenu();

                addMenuItems();

            }

            //添加右键菜单项

            public function addMenuItems():void{

                var item:ContextMenuItem = new ContextMenuItem("删除");

        menucont.customItems.push(item);

        item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemHandler);

        menucont.hideBuiltInItems();

userdata.contextMenu = menucont;

            }

            //菜单右键事件处理

            public function menuItemHandler(event:ContextMenuEvent):void{

                var CaptionString:String=event.target.caption;

                if(CaptionString=="删除"){

             //确定鼠标所在行数

                var findex:Number = Math.floor(userdata.contentMouseY/userdata.rowHeight)-1 + userdata.verticalScrollPosition;

             if (findex<0 || findex>=userdata.verticalScrollPosition+userdata.rowCount-1) //行号小于0时和大于datagrid行总数时的 错误处理

             {

                 Alert.show("请选择要删除的行","提示");

             } else {

                 p=findex;

                 dataColl.removeItemAt(p);

         Alert.show("删除成功","提示");

             }

                }

            }

            public function checkuser(event:MouseEvent):void{

                var gname=uname.text;

                var gphone=uphone.text;

                if(gname!="" && gphone!=""){

                    dataprovider();

                }else{

                    Alert.show("请输入用户名或电话号码","提示");

                }

            }

            //单选按钮触发事件

            public function changsex(event:ItemClickEvent):void{

                if(event.currentTarget.selectedValue=="f"){

                    sexobj= "女";

                }else{

                    sexobj= "男";

                }

            }

            //重置

            public function resetvalue(event:MouseEvent):void{

                uname.text="";

                uphone.text="";

                male.selected=true;

            }

            //创建联系人信息

            public function dataprovider():Object{

                    userobj=new Object();

                    userobj["uid"]=k;

                    userobj["uname"]=uname.text;

                    userobj["uphone"]=uphone.text;

                    userobj["usex"]=sexobj;

                    dataColl.addItem(userobj);

                    k++;

                    return userobj;

            }

        ]]-->

    </mx:Script>

    <mx:Form>

        <mx:Text text="联系簿" fontWeight="bold" fontSize="14" textAlign="center" width="233" color="#1B78C6"/>

        <mx:FormItem label="姓名" fontSize="12" fontWeight="bold" horizontalAlign="left">

            <mx:TextInput id="uname"/>

        </mx:FormItem>

            <mx:RadioButtonGroup id="sexgroup" itemClick="changsex(event)"/>

            <mx:FormItem label="性别" horizontalAlign="center" fontSize="12" fontWeight="bold">

            <mx:HBox>

            <mx:RadioButton id="male" label="男性" groupName="sexgroup" selected="true" value="m"/>

            <mx:RadioButton id="female" label="女性" groupName="sexgroup" value="f"/>

            </mx:HBox>

        </mx:FormItem>

        <mx:FormItem label="电话号码" fontWeight="bold" fontSize="12" horizontalAlign="center">

        <mx:TextInput id="uphone"/>

        </mx:FormItem>

        <mx:HBox width="232" height="35" verticalAlign="middle" horizontalAlign="center">

            <mx:Button id="go" label="添加" fontSize="12" fontWeight="normal" click="checkuser(event)" textAlign="center" height="30" width="60"/>

            <mx:Button id="reset" label="重置" fontWeight="normal" fontSize="12" height="30" width="60" click="resetvalue(event)"/>

        </mx:HBox>

    </mx:Form>

    <mx:DataGrid dataProvider="{dataColl}" width="400" id="userdata"

        fontSize="12" borderStyle="inset" fontWeight="bold" textAlign="center" alternatingItemColors="[#F1B6B6, #F2EB37]" height="210" editable="true">

        <mx:columns>

            <mx:DataGridColumn headerText="ID" dataField="uid"/>

            <mx:DataGridColumn headerText="联系人" dataField="uname"/>

            <mx:DataGridColumn headerText="性别" dataField="usex"/>

            <mx:DataGridColumn headerText="电话号码" dataField="uphone"/>

        </mx:columns>

    </mx:DataGrid>

</mx:Application>

北京动点软件长年承接FLEX、FLASH、AS、Android外包。

QQ:372900288

电话:13911652504

邮箱:SLTeam@vip.qq.com

更多案例欢迎联系咨询。
我们将为您公司提供免费的项目评估。

FLEX外包团队:Flex例子DEMO源码的更多相关文章

  1. Go Mobile 例子 basic 源码分析

    OpenGL ES(OpenGL for Embedded Systems)是 OpenGL 三维图形API的子集,针对手机.PDA和游戏主机等嵌入式设备而设计.该API由Khronos集团定义推广, ...

  2. 如何在Exe和BPL插件中实现公共变量共享及窗口溶入技术Demo源码

    如何在Exe和BPL插件中实现公共变量共享及窗口溶入技术Demo源码 1.Delphi编译方式介绍: 当我们在开发一个常规应用程序时,Delphi可以让我们用两种方式使用VCL,一种是把VCL中的申明 ...

  3. [c#]asp.net开发微信公众平台(7)前6篇的整体框架demo源码

    这里给出的demo是具备整体框架的微信公众平台源码, 所谓demo就是拿过去就可以直接演示使用的东西,  当然不会具备非常详细的具体到业务层面.数据层面的东西, 每个人都可以在此基础上自由发挥,  只 ...

  4. Asp.net MVC集成Google Calendar API(附Demo源码)

    Asp.net MVC集成Google Calendar API(附Demo源码) Google Calendar是非常方便的日程管理应用,很多人都非常熟悉.Google的应用在国内不稳定,但是在国外 ...

  5. 实现简单的手写涂鸦板(demo源码)

    在一些软件系统中,需要用到手写涂鸦的功能,然后可以将涂鸦的结果保存为图片,并可以将"真迹"通过网络发送给对方.这种手写涂鸦功能是如何实现的了?最直接的,我们可以使用Windows提 ...

  6. 实现类似QQ自拍头像的功能(demo源码)

    在很多软件系统中,都允许用户设置自己的头像,甚至可以直接使用摄像头照相作为自己的头像,就像QQ的自拍头像功能一样. 这种功能是如何实现的了?最直接的,我们可以使用Windows提供的VFW技术或Dir ...

  7. 近期热门微信小程序demo源码下载汇总

    近期微信小程序demo源码下载汇总,乃小程序学习分析必备素材!点击标题即可下载: 即速应用首发!原创!电商商场Demo 优质微信小程序推荐 -秀人美女图 图片下载.滑动翻页 微信小程序 - 新词 GE ...

  8. winserver的consul部署实践与.net core客户端使用(附demo源码)

    winserver的consul部署实践与.net core客户端使用(附demo源码)   前言 随着微服务兴起,服务的管理显得极其重要.都知道微服务就是”拆“,把臃肿的单块应用,拆分成多个轻量级的 ...

  9. (原)阅读Android-Camera2Video的demo源码和调试心得

    转载请注明出处:http://www.cnblogs.com/lihaiping/p/6142512.html   最近因为项目需要使用到camera的功能,所以针对官方的demo源码进行一番阅读,并 ...

随机推荐

  1. Access无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开

    使用SQL Server导入有密码的Access数据库内容,连接时出现错误提示: Access无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开 参考百度信息,可以点上图中的高级,在 ...

  2. jdbc--取大量数据

    最近使用jdbc方式查询数据,保存为csv文件中.当然你可以在pl/sql中直接查出来,copy to excel就好了.但我想通过程序实现 @Test public void test() thro ...

  3. swagger:API在线文档自动生成框架

    传统的API从开发测试开始我们经常借用类似Postman.fiddle等等去做接口测试等等工具:Swagger 为API的在线测试.在线文档提供了一个新的简便的解决方案: NET 使用Swagger ...

  4. 函数作用域之闭包与this!

    函数基础友情链接:http://speakingjs.com/es5/ch01.html#_functions 作用域链图解   var x = 1; function foo(){     var ...

  5. wingIDE Pro6 破解教程

    亲测wingIDE pro6.0.6-1激活成功 算号器下载 激活的时候选择第三项 打开算号器,获得license id 把算号器里的license id输入到第一步的输入框里 continue得到r ...

  6. CentOS 7 DR模式LVS搭建

    调度器LB : 192.168.94.11 真实web服务器1 : 192.168.94.22 真实web服务器2 : 192.168.94.33 VIP : 192.168.94.111 脚本如下 ...

  7. linux tail命令及其它日志查看命令的用法

    当日志文件存储日志很大时,我们就不能用vi直接进去查看日志,需要Linux的命令去完成我们的查看任务. Log位置: /var/log/message 系统启动后的信息和错误日志,是Red Hat L ...

  8. flask_mail发送163邮件,报553错误的原因

    最近在练习用flask_mail发送163邮件时报错: reply: '553 authentication is required,163 smtp9,DcCowAD3eEQZ561caRiaBA- ...

  9. vue不通过路由直接获取url中参数的方法示例

    vue不通过路由直接获取url中参数的方法示例 vuejs取得URL中参数的值地址:http://localhost:3333/#/index?id=128console.log(this.$rout ...

  10. vscode菜单栏、工具栏不见了

    按alt可以出来菜单栏: 命令行切换出来 关键字 menu F1 or shift+ctrl+p 切换出命令行,然后输入menu 有个view:toggle Menu bar 的功能,没文档这个确实要 ...