flex3高分求助!!请大家说具体点,谢谢了!

flex3高分求助!!请大家说具体点,谢谢了!,第1张

分三个文件,Baiduzd.mxml是主界面,AddStuInfo.mxml是d出窗口,StuInfo.as是vo类,存储学生信息。

Baiduzd:

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

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="12">

<mx:Script>

<![CDATA[

import mx.controls.Alert

import mx.managers.PopUpManager

import mx.collections.ArrayCollection

[Bindable]

public var stuInfo:Array = new Array

private var addMod:AddStuInfo = new AddStuInfo

//添加学生信息

private function addStu():void{

//用PopUpManagerd出一个添加信息的窗口

addMod = AddStuInfo(PopUpManager.createPopUp(this,AddStuInfo,true))

//居中d出

PopUpManager.centerPopUp(addMod)

//添加时间监听器,触发方法为add()

addMod.addEventListener("addstu",add)

}

//事件“addstu”的触发方法

private function add(event:Event):void{

//将学生信息加入数据源

stuInfo.push(addMod.stuinfo)

//刷新数据源

dg.dataProvider = stuInfo

}

]]>

</mx:Script>

<mx:VBox height="100%" width="100%">

<!--存储用户信息的表格,数据源为stuInfo -->

<mx:DataGrid id="dg" width="100%" height="80%" dataProvider="{stuInfo}">

<mx:columns>

<mx:DataGridColumn headerText="姓名" dataField="name"/>

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

<mx:DataGridColumn headerText="班级" dataField="classNo"/>

<mx:DataGridColumn headerText="年龄" dataField="age"/>

</mx:columns>

</mx:DataGrid>

<!--添加学生的按钮,点击后触发方法addStu() -->

<mx:Button label="添加学生" id="bt" click="addStu()"/>

</mx:VBox>

</mx:Application>

AddStuInfo

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

<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="300" fontSize="12" showCloseButton="true" close="close()">

<mx:Script>

<![CDATA[

import mx.managers.PopUpManager

import mx.controls.Alert

public var stuinfo:StuInfo = new StuInfo

//检测年龄输入是否正确的开关

public var flag:Boolean = false

private function add():void{

if(flag){

//获取textinput中的值,存入对象stuinfo中

stuinfo.name = nameinput.text

stuinfo.sex = man.selected?true:false

stuinfo.classNo = classinput.text

stuinfo.age = ageinput.text

//分发addstu事件,这是一个自定义事件,调用dispatchEvent分发后,会在主页面被主页面捕捉,主页面捕捉到该事件后调用相关方法处理

this.dispatchEvent(new Event("addstu"))

//关闭这个窗口

this.close()

}

else

mx.controls.Alert.show("年龄填写有误")

}

private function close():void{

//调用PopUpManager关闭这个窗口

PopUpManager.removePopUp(this)

}

]]>

</mx:Script>

<mx:VBox height="100%" width="100%">

<mx:HBox>

<mx:Label text="请输入姓名:"/>

<mx:TextInput id="nameinput" />

</mx:HBox>

<mx:HBox>

<mx:Label text="请选择性别:"/>

<mx:RadioButton label="男" id="man" selected="true"/><mx:RadioButton label="女" id="woman"/>

</mx:HBox>

<mx:HBox>

<mx:Label text="请输入班级:"/>

<mx:TextInput id="classinput" />

</mx:HBox>

<mx:HBox>

<mx:Label text="请输入年龄:"/>

<mx:TextInput id="ageinput" />

</mx:HBox>

<mx:Button id="bt" click="add()" label="添加"/>

</mx:VBox>

<!-- 这是一个校验器,用于校验年龄输入是否合法,其中的属性的含义自己查吧,你要的话我可以吧flex的API文档发给你 -->

<mx:NumberValidator id="nv" source="{ageinput}" property="text" domain="int" allowNegative="false"

maxValue="30" minValue="15" trigger="{ageinput}" triggerEvent="focusOut" invalid="{flag = false}" valid="{flag = true}"

exceedsMaxError="年龄不能超过30" integerError="请输入整数" lowerThanMinError="年龄不能小于15" negativeError="年龄不能为负数"

invalidCharError="请输入数字"/>

</mx:TitleWindow>

StuInfo:

package

{

public class StuInfo

{

public function StuInfo()

{

}

public var name:String

public var age:String

public var sex:Boolean

public var classNo:String

}

}

具体的流程就是,在主页面点击添加学生按钮后d出一个添加信息的窗口,用户填入信息后点击确定则分发一个事件让主页面捕捉,捕捉到后在主页面中将学生信息存放在表格的数据源中。性别我用的radiobutton,你问题没写明用什么,如果你要下拉框改用combobox就是了。代码里有注释如果还不明白再问吧

import mx.managers.PopUpManager

private var add:addname//你要转到的页面名称

private function add():void

{

add = new addname()

PopUpManager.addPopUp(add, this, true)// 这句是打开页面

PopUpManager.centerPopUp(add)

}

private function close():void

{

PopUpManager.removePopUp(this) //这是关闭当前页面

}

你再用按钮调用这些方法就行了。

主要是PopUpManager.addPopUp(add, this, true)

点击右上角的加号手动配置,也可以点击左上角的方框扫描电脑或者android上的shadowsock二维码进行配置。添加好配置点击Not Connected后面的开关就可以了,第一次使用要指纹验证

回答不容易,希望能帮到您,满意请帮忙采纳一下,谢谢 !


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11608602.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存