- 浏览: 54245 次
- 性别:
- 来自: 天津
最近访客 更多访客>>
最新评论
-
shuiyunbing:
单元格样式怎么处理?
将flex页面数据导出到excel -
gaoyide:
啥破玩意!!
FLEX alive pdf 打印pdf -
zhong_pro:
关于博主的问题点,做如下修改就可以达到不需要属性isSelec ...
Flex 4通过重写DataGridColumn和CheckBox类给DataGrid添加选择列-CheckBoxColumn -
zhenxingzzx:
看不到附件的 !!
Adobe AIR右键菜单和系统托盘(Tray)功能以及实现方法 -
pangxin12345:
dingdingdingdingding
Adobe AIR右键菜单和系统托盘(Tray)功能以及实现方法
首先,我们开始建设一个基本的界面结构,一个带有“Notes"标题的Panel,一个DataGrid,以及一个用于提交数据的按钮。
Xml代码
1. <?xml version="1.0" encoding="utf-8"?>
2. <mx:Application
3. xmlns:mx="http://www.adobe.com/2006/mxml"
4. layout="absolute"
5. width="500" height="300">
6. <mx:Panel title="Notes"
7. width="100%" height="100%"
8. layout="vertical" horizontalAlign="right"
9. paddingTop="3" paddingLeft="3" paddingRight="3" paddingBottom="3">
10. <mx:DataGrid width="100%" height="100%">
11. <mx:columns>
12. <mx:DataGridColumn headerText="Author" dataField="author" width="80"/>
13. <mx:DataGridColumn headerText="Topic" dataField="topic" width="100"/>
14. <mx:DataGridColumn headerText="Description" dataField="description"/>
15. </mx:columns>
16. </mx:DataGrid>
17. <mx:Button label="Add Note"/>
18. </mx:Panel>
19. </mx:Application>
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
width="500" height="300">
<mx:Panel title="Notes"
width="100%" height="100%"
layout="vertical" horizontalAlign="right"
paddingTop="3" paddingLeft="3" paddingRight="3" paddingBottom="3">
<mx:DataGrid width="100%" height="100%">
<mx:columns>
<mx:DataGridColumn headerText="Author" dataField="author" width="80"/>
<mx:DataGridColumn headerText="Topic" dataField="topic" width="100"/>
<mx:DataGridColumn headerText="Description" dataField="description"/>
</mx:columns>
</mx:DataGrid>
<mx:Button label="Add Note"/>
</mx:Panel>
</mx:Application>
这些代码看起来并不陌生,DataGrid三个列的数据对应我们Note类的三个属性,我们定义Note类如下:
Xml代码
1. package
2. {
3. public class Note
4. {
5. public var author:String;
6. public var topic:String;
7. public var description:String;
8. }
9. }
package
{
public class Note
{
public var author:String;
public var topic:String;
public var description:String;
}
}
要真正使得我们的数据开始运转,我们还需要一个脚本块:需要一个数据结构来保存我们的Note信息。这里我们使用 notes:ArrayCollection来记录我们要添加和已经添加的数据。这些数据能够在DataGrid中显示,是因为我们要把它设置成为 DataGrid的provider.接下来我们先定义和初始化这个notes.
Js代码
1. <mx:Script>
2. <![CDATA[
3. import mx.collections.ArrayCollection;
4.
5. [Bindable]
6. private var notes:ArrayCollection = new ArrayCollection();
7. ]]>
8. </mx:Script>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
private var notes:ArrayCollection = new ArrayCollection();
]]>
</mx:Script>
然后在把它设置成为datagrid的provider.
Xml代码
1. <mx:DataGrid dataProvider="{notes}" width="100%" height="100%">
2. <mx:columns>
3. <mx:DataGridColumn headerText="Author" dataField="author" width="80"/>
4. <mx:DataGridColumn headerText="Topic" dataField="topic" width="100"/>
5. <mx:DataGridColumn headerText="Description" dataField="description"/>
6. </mx:columns>
7. </mx:DataGrid>
<mx:DataGrid dataProvider="{notes}" width="100%" height="100%">
<mx:columns>
<mx:DataGridColumn headerText="Author" dataField="author" width="80"/>
<mx:DataGridColumn headerText="Topic" dataField="topic" width="100"/>
<mx:DataGridColumn headerText="Description" dataField="description"/>
</mx:columns>
</mx:DataGrid>
接下来,我们就要创建一个弹出的窗口,这里使用的是Flex组件TitleWindow.我们起名为AddNote.mxml.它将用于输入界面,通过它,可以输入与datagrid三列属性对应的数据。它还包含两个按钮:cancel和save.
Xml代码
1. <?xml version="1.0" encoding="utf-8"?>
2. <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
3. layout="absolute" width="348" height="218"
4. title="Add A Note">
5. <mx:Label text="Author" x="35" y="10"/>
6. <mx:TextInput id="author" width="150" x="84" y="8"/>
7. <mx:Label text="Topic" y="36" x="42"/>
8. <mx:TextInput id="topic" width="150" x="84" y="34"/>
9. <mx:Label text="Description" y="62" x="10"/>
10. <mx:TextArea id="description" width="234" height="77" x="84" y="61"/>
11. <mx:Button label="Cancel" x="193" y="146"/>
12. <mx:Button label="Save" x="264" y="146"/>
13. </mx:TitleWindow>
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" width="348" height="218"
title="Add A Note">
<mx:Label text="Author" x="35" y="10"/>
<mx:TextInput id="author" width="150" x="84" y="8"/>
<mx:Label text="Topic" y="36" x="42"/>
<mx:TextInput id="topic" width="150" x="84" y="34"/>
<mx:Label text="Description" y="62" x="10"/>
<mx:TextArea id="description" width="234" height="77" x="84" y="61"/>
<mx:Button label="Cancel" x="193" y="146"/>
<mx:Button label="Save" x="264" y="146"/>
</mx:TitleWindow>
好了,我们已经拥有一个可以作为数据输入的界面,我们还要在我们的主程序中设定在某个合适的时间初始化并且显示这个窗口,这个任务就交给了 Application的creation complete事件。即在Application 创建的时候执行:
Xml代码
1. <mx:Application
2. xmlns:mx="http://www.adobe.com/2006/mxml"
3. layout="absolute"
4. width="500" height="300"
5. creationComplete="init()">
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
width="500" height="300"
creationComplete="init()">
在这个init()函数中,我们创建了AddNote的一个实例,并设置监听来自save按钮的saveNote事件
Js代码
1. private var addNoteScreen:AddNote;
2.
3. private function init():void
4. {
5. addNoteScreen = new AddNote();
6. addNoteScreen.addEventListener("SaveNote", saveNote);
7. }
private var addNoteScreen:AddNote;
private function init():void
{
addNoteScreen = new AddNote();
addNoteScreen.addEventListener("SaveNote", saveNote);
}
Xml代码
1. <mx:Button label="Add Note" click="addNote()"/>
<mx:Button label="Add Note" click="addNote()"/>
当用户点击addNoe按钮的时候就要弹出刚才创建的窗口。这里我们使用PopManager来简单管理窗口的创建和关闭。
Js代码
1. private function addNote():void
2. {
3. PopUpManager.addPopUp(addNoteScreen, this, true);
4. PopUpManager.centerPopUp(addNoteScreen);
5. addNoteScreen.author.text = "";
6. addNoteScreen.topic.text = "";
7. addNoteScreen.description.text = "";
8. }
private function addNote():void
{
PopUpManager.addPopUp(addNoteScreen, this, true);
PopUpManager.centerPopUp(addNoteScreen);
addNoteScreen.author.text = "";
addNoteScreen.topic.text = "";
addNoteScreen.description.text = "";
}
这里有两个方法,方法一addPopUp,就是弹出窗口,这里我们传输了三个参数,addNoteScreen为AddNote的一个实例,this为当前窗口,true为是否设是否只有弹出的窗口可被点击,即是否只有弹出的窗口处于Active状态。第二个方法,就是设置弹出窗口的位置。
当窗口弹出来的时候,我们可以做两件事情,一提交保存用户输入数据,二是简单的关闭窗口。如果关闭窗口,我们也使用PopManager管理器:
Js代码
1. <mx:Script>
2. <![CDATA[
3. import mx.managers.PopUpManager;
4.
5. private function close():void
6. {
7. PopUpManager.removePopUp(this);
8. }
9. ]]>
10. </mx:Script>
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
private function close():void
{
PopUpManager.removePopUp(this);
}
]]>
</mx:Script>
Xml代码
1. <mx:Button label="Cancel" click="close()" x="193" y="146"/>
<mx:Button label="Cancel" click="close()" x="193" y="146"/>
若要保存用户提交的数据,我们需要调度一个自定义的事件.我们使用Event metadata tag来创建我们的自定义事件,而这个<metadata>标记将在TitleWindow中创建。
Java代码
1. <mx:Metadata>
2. [Event(name="SaveNote")]
3. </mx:Metadata>
<mx:Metadata>
[Event(name="SaveNote")]
</mx:Metadata>
要调度这个时间,我们必须和按钮save挂钩起来:
Xml代码
1. <mx:Button label="Save" click="save()" x="264" y="146"/>
<mx:Button label="Save" click="save()" x="264" y="146"/>
这个方法将添加到脚本中,这个方法就是简单调度SaveNoe事件:
Js代码
1. private function save():void
2. {
3. this.dispatchEvent(new Event("SaveNote"));
4. }
private function save():void
{
this.dispatchEvent(new Event("SaveNote"));
}
下面是TitleWindow所有代码:
Xml代码
1. <?xml version="1.0" encoding="utf-8"?>
2. <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
3. layout="absolute" width="348" height="218"
4. title="Add A Note">
5. <mx:Metadata>
6. [Event(name="SaveNote")]
7. </mx:Metadata>
8. <mx:Script>
9. <![CDATA[
10. import mx.managers.PopUpManager;
11.
12. private function close():void
13. {
14. PopUpManager.removePopUp(this);
15. }
16.
17. private function save():void
18. {
19. this.dispatchEvent(new Event("SaveNote"));
20. }
21. ]]>
22. </mx:Script>
23. <mx:Label text="Author" x="35" y="10"/>
24. <mx:TextInput id="author" width="150" x="84" y="8"/>
25. <mx:Label text="Topic" y="36" x="42"/>
26. <mx:TextInput id="topic" width="150" x="84" y="34"/>
27. <mx:Label text="Description" y="62" x="10"/>
28. <mx:TextArea id="description" width="234" height="77" x="84" y="61"/>
29. <mx:Button label="Cancel" click="close()" x="193" y="146"/>
30. <mx:Button label="Save" click="save()" x="264" y="146"/>
31. </mx:TitleWindow
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" width="348" height="218"
title="Add A Note">
<mx:Metadata>
[Event(name="SaveNote")]
</mx:Metadata>
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
private function close():void
{
PopUpManager.removePopUp(this);
}
private function save():void
{
this.dispatchEvent(new Event("SaveNote"));
}
]]>
</mx:Script>
<mx:Label text="Author" x="35" y="10"/>
<mx:TextInput id="author" width="150" x="84" y="8"/>
<mx:Label text="Topic" y="36" x="42"/>
<mx:TextInput id="topic" width="150" x="84" y="34"/>
<mx:Label text="Description" y="62" x="10"/>
<mx:TextArea id="description" width="234" height="77" x="84" y="61"/>
<mx:Button label="Cancel" click="close()" x="193" y="146"/>
<mx:Button label="Save" click="save()" x="264" y="146"/>
</mx:TitleWindow
要把弹出窗口中用户输入的数据显示在Application 中的datagrid中,其实也很简单,就是要数据绑定。前面的[Bindable]中的notes:ArrayCollecton就要与我们弹出窗口中的用户输入数据绑定起来。这个方法由save按钮触发后执行:
Js代码
1. private function saveNote(e:Event):void
2. {
3. var note:Note = new Note();
4. note.author = addNoteScreen.author.text;
5. note.topic = addNoteScreen.topic.text;
6. note.description = addNoteScreen.description.text;
7. notes.addItem(note);
8. PopUpManager.removePopUp(addNoteScreen);
9. }
private function saveNote(e:Event):void
{
var note:Note = new Note();
note.author = addNoteScreen.author.text;
note.topic = addNoteScreen.topic.text;
note.description = addNoteScreen.description.text;
notes.addItem(note);
PopUpManager.removePopUp(addNoteScreen);
}
在绑定之后,即显示在Application datagrid中之后,我们要把弹出的窗口关闭,即removePopUp。这里就是全部的介绍了,下面是Application的代码:
Xml代码
1. <?xml version="1.0" encoding="utf-8"?>
2. <mx:Application
3. xmlns:mx="http://www.adobe.com/2006/mxml"
4. layout="absolute"
5. width="500" height="300"
6. creationComplete="init()">
7. <mx:Script>
8. <![CDATA[
9. import mx.managers.PopUpManager;
10. import mx.collections.ArrayCollection;
11.
12. [Bindable]
13. private var notes:ArrayCollection = new ArrayCollection();
14.
15. private var addNoteScreen:AddNote;
16.
17. private function init():void
18. {
19. addNoteScreen = new AddNote();
20. addNoteScreen.addEventListener("SaveNote", saveNote);
21. }
22.
23. private function addNote():void
24. {
25. PopUpManager.addPopUp(addNoteScreen, this, true);
26. PopUpManager.centerPopUp(addNoteScreen);
27. addNoteScreen.author.text = "";
28. addNoteScreen.topic.text = "";
29. addNoteScreen.description.text = "";
30. }
31.
32. private function saveNote(e:Event):void
33. {
34. var note:Note = new Note();
35. note.author = addNoteScreen.author.text;
36. note.topic = addNoteScreen.topic.text;
37. note.description = addNoteScreen.description.text;
38. notes.addItem(note);
39. PopUpManager.removePopUp(addNoteScreen);
40. }
41. ]]>
42. </mx:Script>
43. <mx:Panel title="Notes"
44. width="100%" height="100%"
45. layout="vertical" horizontalAlign="right"
46. paddingTop="3" paddingLeft="3" paddingRight="3" paddingBottom="3">
47. <mx:DataGrid dataProvider="{notes}" width="100%" height="100%">
48. <mx:columns>
49. <mx:DataGridColumn headerText="Author" dataField="author" width="80"/>
50. <mx:DataGridColumn headerText="Topic" dataField="topic" width="100"/>
51. <mx:DataGridColumn headerText="Description" dataField="description"/>
52. </mx:columns>
53. </mx:DataGrid>
54. <mx:Button label="Add Note" click="addNote()"/>
55. </mx:Panel>
56. </mx:Application>
Xml代码
1. <?xml version="1.0" encoding="utf-8"?>
2. <mx:Application
3. xmlns:mx="http://www.adobe.com/2006/mxml"
4. layout="absolute"
5. width="500" height="300">
6. <mx:Panel title="Notes"
7. width="100%" height="100%"
8. layout="vertical" horizontalAlign="right"
9. paddingTop="3" paddingLeft="3" paddingRight="3" paddingBottom="3">
10. <mx:DataGrid width="100%" height="100%">
11. <mx:columns>
12. <mx:DataGridColumn headerText="Author" dataField="author" width="80"/>
13. <mx:DataGridColumn headerText="Topic" dataField="topic" width="100"/>
14. <mx:DataGridColumn headerText="Description" dataField="description"/>
15. </mx:columns>
16. </mx:DataGrid>
17. <mx:Button label="Add Note"/>
18. </mx:Panel>
19. </mx:Application>
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
width="500" height="300">
<mx:Panel title="Notes"
width="100%" height="100%"
layout="vertical" horizontalAlign="right"
paddingTop="3" paddingLeft="3" paddingRight="3" paddingBottom="3">
<mx:DataGrid width="100%" height="100%">
<mx:columns>
<mx:DataGridColumn headerText="Author" dataField="author" width="80"/>
<mx:DataGridColumn headerText="Topic" dataField="topic" width="100"/>
<mx:DataGridColumn headerText="Description" dataField="description"/>
</mx:columns>
</mx:DataGrid>
<mx:Button label="Add Note"/>
</mx:Panel>
</mx:Application>
这些代码看起来并不陌生,DataGrid三个列的数据对应我们Note类的三个属性,我们定义Note类如下:
Xml代码
1. package
2. {
3. public class Note
4. {
5. public var author:String;
6. public var topic:String;
7. public var description:String;
8. }
9. }
package
{
public class Note
{
public var author:String;
public var topic:String;
public var description:String;
}
}
要真正使得我们的数据开始运转,我们还需要一个脚本块:需要一个数据结构来保存我们的Note信息。这里我们使用 notes:ArrayCollection来记录我们要添加和已经添加的数据。这些数据能够在DataGrid中显示,是因为我们要把它设置成为 DataGrid的provider.接下来我们先定义和初始化这个notes.
Js代码
1. <mx:Script>
2. <![CDATA[
3. import mx.collections.ArrayCollection;
4.
5. [Bindable]
6. private var notes:ArrayCollection = new ArrayCollection();
7. ]]>
8. </mx:Script>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
private var notes:ArrayCollection = new ArrayCollection();
]]>
</mx:Script>
然后在把它设置成为datagrid的provider.
Xml代码
1. <mx:DataGrid dataProvider="{notes}" width="100%" height="100%">
2. <mx:columns>
3. <mx:DataGridColumn headerText="Author" dataField="author" width="80"/>
4. <mx:DataGridColumn headerText="Topic" dataField="topic" width="100"/>
5. <mx:DataGridColumn headerText="Description" dataField="description"/>
6. </mx:columns>
7. </mx:DataGrid>
<mx:DataGrid dataProvider="{notes}" width="100%" height="100%">
<mx:columns>
<mx:DataGridColumn headerText="Author" dataField="author" width="80"/>
<mx:DataGridColumn headerText="Topic" dataField="topic" width="100"/>
<mx:DataGridColumn headerText="Description" dataField="description"/>
</mx:columns>
</mx:DataGrid>
接下来,我们就要创建一个弹出的窗口,这里使用的是Flex组件TitleWindow.我们起名为AddNote.mxml.它将用于输入界面,通过它,可以输入与datagrid三列属性对应的数据。它还包含两个按钮:cancel和save.
Xml代码
1. <?xml version="1.0" encoding="utf-8"?>
2. <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
3. layout="absolute" width="348" height="218"
4. title="Add A Note">
5. <mx:Label text="Author" x="35" y="10"/>
6. <mx:TextInput id="author" width="150" x="84" y="8"/>
7. <mx:Label text="Topic" y="36" x="42"/>
8. <mx:TextInput id="topic" width="150" x="84" y="34"/>
9. <mx:Label text="Description" y="62" x="10"/>
10. <mx:TextArea id="description" width="234" height="77" x="84" y="61"/>
11. <mx:Button label="Cancel" x="193" y="146"/>
12. <mx:Button label="Save" x="264" y="146"/>
13. </mx:TitleWindow>
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" width="348" height="218"
title="Add A Note">
<mx:Label text="Author" x="35" y="10"/>
<mx:TextInput id="author" width="150" x="84" y="8"/>
<mx:Label text="Topic" y="36" x="42"/>
<mx:TextInput id="topic" width="150" x="84" y="34"/>
<mx:Label text="Description" y="62" x="10"/>
<mx:TextArea id="description" width="234" height="77" x="84" y="61"/>
<mx:Button label="Cancel" x="193" y="146"/>
<mx:Button label="Save" x="264" y="146"/>
</mx:TitleWindow>
好了,我们已经拥有一个可以作为数据输入的界面,我们还要在我们的主程序中设定在某个合适的时间初始化并且显示这个窗口,这个任务就交给了 Application的creation complete事件。即在Application 创建的时候执行:
Xml代码
1. <mx:Application
2. xmlns:mx="http://www.adobe.com/2006/mxml"
3. layout="absolute"
4. width="500" height="300"
5. creationComplete="init()">
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
width="500" height="300"
creationComplete="init()">
在这个init()函数中,我们创建了AddNote的一个实例,并设置监听来自save按钮的saveNote事件
Js代码
1. private var addNoteScreen:AddNote;
2.
3. private function init():void
4. {
5. addNoteScreen = new AddNote();
6. addNoteScreen.addEventListener("SaveNote", saveNote);
7. }
private var addNoteScreen:AddNote;
private function init():void
{
addNoteScreen = new AddNote();
addNoteScreen.addEventListener("SaveNote", saveNote);
}
Xml代码
1. <mx:Button label="Add Note" click="addNote()"/>
<mx:Button label="Add Note" click="addNote()"/>
当用户点击addNoe按钮的时候就要弹出刚才创建的窗口。这里我们使用PopManager来简单管理窗口的创建和关闭。
Js代码
1. private function addNote():void
2. {
3. PopUpManager.addPopUp(addNoteScreen, this, true);
4. PopUpManager.centerPopUp(addNoteScreen);
5. addNoteScreen.author.text = "";
6. addNoteScreen.topic.text = "";
7. addNoteScreen.description.text = "";
8. }
private function addNote():void
{
PopUpManager.addPopUp(addNoteScreen, this, true);
PopUpManager.centerPopUp(addNoteScreen);
addNoteScreen.author.text = "";
addNoteScreen.topic.text = "";
addNoteScreen.description.text = "";
}
这里有两个方法,方法一addPopUp,就是弹出窗口,这里我们传输了三个参数,addNoteScreen为AddNote的一个实例,this为当前窗口,true为是否设是否只有弹出的窗口可被点击,即是否只有弹出的窗口处于Active状态。第二个方法,就是设置弹出窗口的位置。
当窗口弹出来的时候,我们可以做两件事情,一提交保存用户输入数据,二是简单的关闭窗口。如果关闭窗口,我们也使用PopManager管理器:
Js代码
1. <mx:Script>
2. <![CDATA[
3. import mx.managers.PopUpManager;
4.
5. private function close():void
6. {
7. PopUpManager.removePopUp(this);
8. }
9. ]]>
10. </mx:Script>
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
private function close():void
{
PopUpManager.removePopUp(this);
}
]]>
</mx:Script>
Xml代码
1. <mx:Button label="Cancel" click="close()" x="193" y="146"/>
<mx:Button label="Cancel" click="close()" x="193" y="146"/>
若要保存用户提交的数据,我们需要调度一个自定义的事件.我们使用Event metadata tag来创建我们的自定义事件,而这个<metadata>标记将在TitleWindow中创建。
Java代码
1. <mx:Metadata>
2. [Event(name="SaveNote")]
3. </mx:Metadata>
<mx:Metadata>
[Event(name="SaveNote")]
</mx:Metadata>
要调度这个时间,我们必须和按钮save挂钩起来:
Xml代码
1. <mx:Button label="Save" click="save()" x="264" y="146"/>
<mx:Button label="Save" click="save()" x="264" y="146"/>
这个方法将添加到脚本中,这个方法就是简单调度SaveNoe事件:
Js代码
1. private function save():void
2. {
3. this.dispatchEvent(new Event("SaveNote"));
4. }
private function save():void
{
this.dispatchEvent(new Event("SaveNote"));
}
下面是TitleWindow所有代码:
Xml代码
1. <?xml version="1.0" encoding="utf-8"?>
2. <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
3. layout="absolute" width="348" height="218"
4. title="Add A Note">
5. <mx:Metadata>
6. [Event(name="SaveNote")]
7. </mx:Metadata>
8. <mx:Script>
9. <![CDATA[
10. import mx.managers.PopUpManager;
11.
12. private function close():void
13. {
14. PopUpManager.removePopUp(this);
15. }
16.
17. private function save():void
18. {
19. this.dispatchEvent(new Event("SaveNote"));
20. }
21. ]]>
22. </mx:Script>
23. <mx:Label text="Author" x="35" y="10"/>
24. <mx:TextInput id="author" width="150" x="84" y="8"/>
25. <mx:Label text="Topic" y="36" x="42"/>
26. <mx:TextInput id="topic" width="150" x="84" y="34"/>
27. <mx:Label text="Description" y="62" x="10"/>
28. <mx:TextArea id="description" width="234" height="77" x="84" y="61"/>
29. <mx:Button label="Cancel" click="close()" x="193" y="146"/>
30. <mx:Button label="Save" click="save()" x="264" y="146"/>
31. </mx:TitleWindow
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" width="348" height="218"
title="Add A Note">
<mx:Metadata>
[Event(name="SaveNote")]
</mx:Metadata>
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
private function close():void
{
PopUpManager.removePopUp(this);
}
private function save():void
{
this.dispatchEvent(new Event("SaveNote"));
}
]]>
</mx:Script>
<mx:Label text="Author" x="35" y="10"/>
<mx:TextInput id="author" width="150" x="84" y="8"/>
<mx:Label text="Topic" y="36" x="42"/>
<mx:TextInput id="topic" width="150" x="84" y="34"/>
<mx:Label text="Description" y="62" x="10"/>
<mx:TextArea id="description" width="234" height="77" x="84" y="61"/>
<mx:Button label="Cancel" click="close()" x="193" y="146"/>
<mx:Button label="Save" click="save()" x="264" y="146"/>
</mx:TitleWindow
要把弹出窗口中用户输入的数据显示在Application 中的datagrid中,其实也很简单,就是要数据绑定。前面的[Bindable]中的notes:ArrayCollecton就要与我们弹出窗口中的用户输入数据绑定起来。这个方法由save按钮触发后执行:
Js代码
1. private function saveNote(e:Event):void
2. {
3. var note:Note = new Note();
4. note.author = addNoteScreen.author.text;
5. note.topic = addNoteScreen.topic.text;
6. note.description = addNoteScreen.description.text;
7. notes.addItem(note);
8. PopUpManager.removePopUp(addNoteScreen);
9. }
private function saveNote(e:Event):void
{
var note:Note = new Note();
note.author = addNoteScreen.author.text;
note.topic = addNoteScreen.topic.text;
note.description = addNoteScreen.description.text;
notes.addItem(note);
PopUpManager.removePopUp(addNoteScreen);
}
在绑定之后,即显示在Application datagrid中之后,我们要把弹出的窗口关闭,即removePopUp。这里就是全部的介绍了,下面是Application的代码:
Xml代码
1. <?xml version="1.0" encoding="utf-8"?>
2. <mx:Application
3. xmlns:mx="http://www.adobe.com/2006/mxml"
4. layout="absolute"
5. width="500" height="300"
6. creationComplete="init()">
7. <mx:Script>
8. <![CDATA[
9. import mx.managers.PopUpManager;
10. import mx.collections.ArrayCollection;
11.
12. [Bindable]
13. private var notes:ArrayCollection = new ArrayCollection();
14.
15. private var addNoteScreen:AddNote;
16.
17. private function init():void
18. {
19. addNoteScreen = new AddNote();
20. addNoteScreen.addEventListener("SaveNote", saveNote);
21. }
22.
23. private function addNote():void
24. {
25. PopUpManager.addPopUp(addNoteScreen, this, true);
26. PopUpManager.centerPopUp(addNoteScreen);
27. addNoteScreen.author.text = "";
28. addNoteScreen.topic.text = "";
29. addNoteScreen.description.text = "";
30. }
31.
32. private function saveNote(e:Event):void
33. {
34. var note:Note = new Note();
35. note.author = addNoteScreen.author.text;
36. note.topic = addNoteScreen.topic.text;
37. note.description = addNoteScreen.description.text;
38. notes.addItem(note);
39. PopUpManager.removePopUp(addNoteScreen);
40. }
41. ]]>
42. </mx:Script>
43. <mx:Panel title="Notes"
44. width="100%" height="100%"
45. layout="vertical" horizontalAlign="right"
46. paddingTop="3" paddingLeft="3" paddingRight="3" paddingBottom="3">
47. <mx:DataGrid dataProvider="{notes}" width="100%" height="100%">
48. <mx:columns>
49. <mx:DataGridColumn headerText="Author" dataField="author" width="80"/>
50. <mx:DataGridColumn headerText="Topic" dataField="topic" width="100"/>
51. <mx:DataGridColumn headerText="Description" dataField="description"/>
52. </mx:columns>
53. </mx:DataGrid>
54. <mx:Button label="Add Note" click="addNote()"/>
55. </mx:Panel>
56. </mx:Application>
发表评论
-
[转]构建Flex应用的10大误区
2011-05-31 23:29 749原文地址:http://www.infoq ... -
转:flex滤镜:聚光灯效果、放大镜效果、缩放模糊效果、浮雕效果和水波效果
2011-05-30 21:30 1751可惜提供的源代码没有相应的libs包 1:聚光灯效果: 实 ... -
Air File类使用方法
2010-09-06 10:24 2259air file 系统中文件或目 ... -
Flex air修改外部xml文件
2010-09-06 09:35 2103AIR的文件操作不难,看完教程应该可以满足你对文件的所有基本操 ... -
air 读取服务器端文件
2010-09-03 13:44 1022import flash.events.Event; ... -
air下载文件
2010-09-02 10:43 830http://www.code-design.cn/blogd ... -
三维程序/游戏制作基本常识
2010-08-25 13:19 910Furry/DDM君: 很多flash3d初 ... -
FLEX的RIA应用程序中配置文件(*-app.xml)的说明
2010-06-22 16:53 882<?xml version="1.0" ... -
Adobe AIR右键菜单和系统托盘(Tray)功能以及实现方法
2010-05-31 17:21 2125AIR教程 Adobe AIR右键菜单和系统托盘(Tray ... -
Flash Bulider4注册码生成器
2010-05-18 11:03 1820Flash Builder 4正式版发布,很高兴还有简体中文 ... -
FLex视图模式与视图转换
2010-05-10 14:13 18263.2 视图模式与视图转换 3.2.1 视图模式 Fle ... -
FusionCharts中文乱码问题
2010-05-06 11:17 2885从 http://www.infosoftglobal.com ... -
Flex ShareObject简单应用
2010-04-26 17:47 1064[size=medium]Share object一般用来保存 ... -
FLEX问题总汇(1)
2010-04-23 15:17 874论坛一直有些问题有人重复的发帖,今天有空就做了点总结,希望和大 ... -
Flex 开发: 类的反射
2010-04-23 10:34 1038Flex 反射简介 在很多时候反射为程序的动态性提供了一种可 ... -
Flex 3 体验:AdvancedDataGrid的使用(第一部分)
2010-04-22 17:14 1413今天我们要说的是官方文档中用了整章介绍的AdvancedDat ... -
FLEX alive pdf 打印pdf
2010-04-22 10:33 1945FLEX alive pdf 打印pdf ,废话不多说了,代码 ... -
FLEX AIR 连接local SQL database
2010-04-22 10:19 1315FLEX AIR 连接本地LocalSQL实现增删改查,废话不 ... -
将flex页面数据导出到excel
2010-04-20 10:07 1625本例实现将flex中的数据 ... -
FLEX TEXTINPUT restrict(正则表达式,约束,限定)
2010-04-19 16:28 2085通常要对输入TextInput中 ...
相关推荐
`PopUpManager`被用来管理这些窗口,确保它们作为弹出窗口正确显示。 在`fx:Declarations`部分,我们看到了两个数组(`gridColumns1`和`gridColumns2`),它们分别定义了列的信息,包括列代码(`colCode`)和列类型...
4. **显示自定义组件**:根据需要,你可以使用`PopUpManager`类将自定义组件以弹出窗口的形式显示出来: ```actionscript var customComponent:CustomComponent = new CustomComponent(); PopUpManager.addPopUp...
例如,如果我们想要在新的弹出窗口中编辑选定的记录,可以这样做: ```actionscript private function handleDoubleClick(event:MouseEvent):void { var selectedItem:Object = dataGrid.selectedItem; var ...
1. 增加:你可以通过在DataGrid下方添加一个Button,点击后弹出一个新窗口或对话框让用户输入新数据,然后将新数据添加到数据源中。DataGrid会自动反映出数据源的变化。 2. 删除:在每一行上添加一个删除按钮,监听...
### 做Flex项目的小技巧详解 #### 一、弹出新窗口 ...这些技巧涵盖了Flex开发中的常见问题,包括弹出窗口、多视图切换、服务器交互、数据处理等方面,对于提升Flex应用程序的质量和性能具有重要意义。
第十二章“弹出窗口入门”和第十三章“视图状态”分别介绍了如何在Flex应用程序中添加弹出窗口以及如何管理和切换不同视图状态。这些功能对于增强应用程序的交互性和可用性至关重要。 #### 数据服务与XML 第十四章...
- **弹出窗口**:使用`PopupManager`类可以创建弹出窗口。 - **TitleWindow组件**:一个带有标题栏的窗口,可以移动和关闭。 - **ViewStack组件**:用于实现多个视图之间的切换。 - **表单Form**:提供了一种结构化...
例如,ComboBox列可能需要根据数据源动态填充选项,Button列可能需要打开一个弹出窗口,而Checkbox列可能需要实现全选/全不选的功能。 为了实现这些功能,你可能需要熟悉Flex的MXML和ActionScript,包括组件的声明...
- Flex提供了`PopupManager`类,可以轻松创建弹出窗口或对话框,增强用户交互体验。 #### 7. **TitleWindow组件** - `TitleWindow`组件是一个带有标题栏的小型窗口,非常适合用作浮动的工具提示或小对话框。 ###...
弹出窗口的显示和位置 2.13节. 自定义弹出式窗口边框 2.14节. 处理focusIn和focusOut事件 第三章容器(65) 3.1 节使用布局管理器布置子组件 3.2 节通过百分比方式配置容器的布局和尺寸 3.3节. 以不同的坐标系统...
- **弹出窗口**:了解如何使用Flex内置的弹出窗口组件来显示模态对话框或提示信息。 - **视图状态管理**:通过管理视图的状态来优化用户体验,例如保存用户的设置或偏好。 综上所述,《Flex 3 in Action》这本书...
- Flex支持创建弹出窗口,这可以通过 `PopupManager` 类实现。 - 示例代码: ```xml ``` #### 9. TitleWindow组件 - **TitleWindow** 是一个具有标题栏的窗口组件,常用于创建对话框或模态窗口。 - 可以设置其 ...
Flex的Alert类默认不支持直接展示图片,但可以通过自定义Alert组件或者使用更高级的弹出窗口类(如ModalWindow)来实现这一需求。 ### 17. 解释Flex的单例模式和静态模式的区别,以及在AS中如何实现? 单例模式...
4. **弹出窗口**: 可以通过`PopupManager`类创建。 5. **TitleWindow组件**: 用于创建具有标题栏的窗口。 6. **ViewStack组件**: 用于展示多个视图中的一个。 7. **表单Form**: 用于收集用户输入。 8. **基本组件**:...
4. **弹出窗口**:如 `PopupManager`,用于显示模态或非模态的弹出窗口。 5. **TitleWindow组件**:类似于面板,但具有更丰富的外观和行为选项。 6. **ViewStack组件**:允许开发者在一个区域内切换不同的视图。 7. ...