代码如下:

<?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. vlan之间的通信-单臂路由与三层交换之间的互通

    注:本试验基于单臂路由通信,三层交换通信,请完成以上两个实验,并保证能够通信 熟练掌握单臂路由的配置 熟练掌握三层交换的配置 三层交换与单臂路由的互通 实验原理 三层交换机在原有二层交换机的基础之上增 ...

  2. [No0000152]C#基础之IL,轻松读懂IL

    先说说学IL有什么用,有人可能觉得这玩意平常写代码又用不上,学了有个卵用.到底有没有卵用呢,暂且也不说什么学了可以看看一些语法糖的实现,或对.net理解更深一点这些虚头巴脑的东西.其实IL本身逻辑很清 ...

  3. 安装ipa文件

    https://www.jianshu.com/p/419a35f9533a 1.通过iTunes直接拖动到左侧的侧边栏(未尝试) 2.通过Xcode点击进入Devices管理,添加ipa文件进行安装 ...

  4. Docker入门1------概念和安装

    关于docker的介绍: https://www.cnblogs.com/neptunemoon/p/6512121.html docker入门教程:http://www.docker.org.cn/ ...

  5. python练习题-day11

    1.编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件), 要求:登录成功一次,后续的函数都无需再输入用户名和密码 flag=False def wrapper(fun): def inn ...

  6. spring拦截器-过滤器的区别

    1.  理解 拦截器 :是在面向切面编程的时候,在你的 service 或者一个方法前调用一个方法,或者在方法后调用一个方法:比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业 ...

  7. Android字符串判断是否包含中文

    // 判断一个字符是否是中文 public boolean isChinese(char c) { return c >= 0x4E00 && c <= 0x9FA5;// ...

  8. Docker:从引擎和运行框架理解Docker(3)

    Docker是GO语言编写的. 1.Docker发挥的作用: 1.快速.一致.标准化的交付应用.从开发.测试.到部署交付到成产环境都可以使用docker命令处理image到不同的环境 2.部署和扩展: ...

  9. windows程序设计 vs2012 新建win32项目

    1.文件->新建->项目 2.选择win32项目,确定 3.下一步 4.选择windows应用程序,选中空项目,安全开发生命周期不选.点击完成. 5.空项目建好了.

  10. windows将文件夹映射为虚拟磁盘

    subst X: e:123 将e盘下的123文件夹映射为x盘,123的容量即x盘容量 subst X: /t 删除映射的x盘