- 浏览: 647393 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
ssxszt:
...
解决PopUpManager弹出窗口RangeError: Error #2006: 提供的索引超出范围 -
lijiajia:
木子佳 写道楼主,想要源码学习,谢谢。kajiamuzi@16 ...
DataGrid和AdvancedDataGrid CheckBox全选功能 -
juedi:
很好,是我需要的东东
Flex异常处理设计 -
暖暖fh:
大神,我想要源码,这个功能我折腾了好我啊 fuhan247@1 ...
DataGrid和AdvancedDataGrid CheckBox全选功能 -
chenzi:
一样的代码,两台机器上面,完全不同的报错。。Flex实现htt ...
Flex使用Https协议
MDIWindow本身的最小化到任务栏的功能用着很不方便,因此自己丰衣足食重写了最小化事件。先截个图让大家看看效果,项目组没有美工MM,因此界面比较丑请大家见谅。
思路如下:
1.在MDICanvas的下面添加一个HorizontalList
2.给MDICanvas的中添加MDIManagerEvent.WINDOW_MINIMIZE和MDIManagerEvent.WINDOW_CLOSE事件。
WINDOW_MINIMIZE:最小化时屏蔽MDIwindow自身的最小化事件。
WINDOW_CLOSE:点击窗口关闭按钮时,从HorizontalList中移除该窗口。
3.MDICanvas中添加MDIwindow时向HorizontalList中添加数据
最小化和最小化按钮事件的代码如下:
/** * 点击窗口的最小化按钮 最小化到任务栏 * */ private function windowMinimizeHandler(event:MDIManagerEvent):void { if(event is MDIManagerEvent) { var mgrEvent:MDIManagerEvent=event as MDIManagerEvent; mgrEvent.window.visible=false; event.stopPropagation(); } } /** * 关闭窗口事件 * */ private function windowCloseHandler(event:MDIManagerEvent):void{ if(event is MDIManagerEvent) { var mgrEvent:MDIManagerEvent=event as MDIManagerEvent; for(var index:int;index<tbl.ac.length;index++){ var item:TaskBarItem=tbl.ac.getItemAt(index) as TaskBarItem; if(mgrEvent.window==item.window){ tbl.ac.removeItemAt(tbl.ac.getItemIndex(item)); } } event.stopPropagation(); } }
HorizontalList组件的代码如下:
<?xml version="1.0" encoding="utf-8"?> <mx:HorizontalList xmlns:mx="http://www.adobe.com/2006/mxml" dataProvider="{ac}" backgroundColor="#22668B" width="100%" height="35" borderStyle="outset" borderThickness="5"> <mx:Script> <![CDATA[ import flexmdi.events.MDIWindowEvent; import mx.collections.ArrayCollection; [Bindable] public var ac:ArrayCollection=new ArrayCollection(); public function itemClick(obj:Object):void{ var item:TaskBarItem=obj as TaskBarItem; if(item.window.visible){ item.window.visible = false; item.window.dispatchEvent(new MDIWindowEvent(MDIWindowEvent.MINIMIZE,item.window)); }else{ item.window.visible = true; item.window.dispatchEvent(new MDIWindowEvent(MDIWindowEvent.MAXIMIZE,item.window)); //把窗口置为顶层 item.window.windowManager.bringToFront(item.window); //显示窗口上的最小化 最大化 正常按钮 记住一定要加这句 因为默认是隐藏的,只有鼠标点击顶部时才显示出来 item.window.showControls=true; } } public function closeWindow(obj:Object):void{ var item:TaskBarItem=obj as TaskBarItem; item.window.visible = false; item.window.dispatchEvent(new MDIWindowEvent(MDIWindowEvent.CLOSE,item.window)); } ]]> </mx:Script> <mx:itemRenderer> <mx:Component> <mx:HBox height="30" width="120" paddingRight="5" backgroundColor="#ADD6FB" click="changeStyle('inset')" mouseOver="changeStyle('outset')" borderStyle="outset" verticalScrollPolicy="off" horizontalScrollPolicy="off"> <mx:Script> <![CDATA[ import mx.states.SetStyle; import mx.controls.Alert; private function changeStyle(borderStyle:String):void{ this.setStyle("borderStyle",borderStyle); } ]]> </mx:Script> <mx:HBox height="30" width="80" click="outerDocument.itemClick(data)" paddingTop="0" paddingLeft="0"> <mx:Image source="{data.icon}" includeInLayout="{data.icon==null?false:true}"/> <mx:Label text="{data.title}"/> </mx:HBox> <mx:HBox height="30" width="20" paddingTop="0" paddingLeft="0"> <mx:Image source="img/ResizableTitleWindow/close.png" alpha="0.2" toolTip="关闭该窗口" mouseOver="delImg.alpha=1" mouseOut="delImg.alpha=0.2" id="delImg" click="outerDocument.closeWindow(data)" /> </mx:HBox> </mx:HBox> </mx:Component> </mx:itemRenderer> </mx:HorizontalList>
以上给出了实现最小化到任务栏的大部分代码,希望能和大家一起交流Flex的开发经验。
评论
8 楼
jacky66zjx
2012-08-17
楼主,TaskBarItem这个的定义可以给出吗?谢谢。
急需要zhangjinxiong1986@gmail.com谢谢
急需要zhangjinxiong1986@gmail.com谢谢
7 楼
yedehu476556126
2012-06-13
请楼主共享下源码 急切需要中,鞠躬感谢:476556126@qq.com
6 楼
yunzhongxia
2011-12-20
demojava 写道
我改过mdi的源码代码就添加了一个ApplicationControlBar
我断定,你代码你代码在浏览器大小切换的时候会走形,在添加到一定数目的时候,是后面的不会显示。。。。
不过唯一不美观的是,不能做到打开一个window.就在地址栏添加一个当前的window缩小的应用,,希望交流
我断定,你代码你代码在浏览器大小切换的时候会走形,在添加到一定数目的时候,是后面的不会显示。。。。
不过唯一不美观的是,不能做到打开一个window.就在地址栏添加一个当前的window缩小的应用,,希望交流
谢谢你的答复,上面只是一个简单的例子,在项目中也添加了最小化按钮。
5 楼
demojava
2011-12-19
我改过mdi的源码代码就添加了一个ApplicationControlBar
我断定,你代码你代码在浏览器大小切换的时候会走形,在添加到一定数目的时候,是后面的不会显示。。。。
不过唯一不美观的是,不能做到打开一个window.就在地址栏添加一个当前的window缩小的应用,,希望交流
我断定,你代码你代码在浏览器大小切换的时候会走形,在添加到一定数目的时候,是后面的不会显示。。。。
不过唯一不美观的是,不能做到打开一个window.就在地址栏添加一个当前的window缩小的应用,,希望交流
4 楼
alexfhq
2011-07-27
可以把代码共享下吗?愿意一齐交流,谢谢, 40463600@qq.com
3 楼
lasimmm
2011-01-15
可以共享一下这个源码呢??
Email:lasienjoy@gmail.com
thanks。。急需要··谢谢
Email:lasienjoy@gmail.com
thanks。。急需要··谢谢
2 楼
orangfavor
2010-09-14
楼主辛苦,方便的话share下源码:orangfavor@yahoo.com.cn
1 楼
orangfavor
2010-09-13
TaskBarItem,这个声明可以麻烦楼主给解释一下么,代码很好
发表评论
-
图片背景使用九宫格
2012-07-24 10:20 0[Embed(source="../ass ... -
Flex弹出窗口做为Module
2012-07-23 18:00 0今天才知道原来TitleWindow也可以单独编译 ... -
Repeater使用简介
2012-05-09 19:26 1658mx组件中的Repeater类似与sprak中的Da ... -
Flex失效机制
2012-02-29 17:19 3018一、什么是失效机 ... -
Image倒影效果
2012-02-20 10:11 1725利用spark的BitmapImage实现倒影效果 ... -
Flex设置z轴的index
2012-02-13 14:58 4796flex4的UIComponent新增了dept ... -
得到一个字符的Unicode编码
2012-02-09 12:59 2014ActionScript 3.0String类中函数charC ... -
解决PopupManager.createPopup报错:状态“inactive”未定义
2012-02-04 21:27 2243出现这种的场景是在Module中使用弹出窗口Pop ... -
用chrome浏览器调试flex程序
2012-02-04 18:55 6921开发flex程序难免需要debug,但是IE8浏 ... -
Flash Player11不能输入中文,请谨慎升级
2011-12-18 01:04 2701很多时候,Flash的程序需要集成到其他系统中 ... -
优化Flash Builder
2011-12-18 00:54 2670Flash Builder4中新增了一个ASDO ... -
设置DataGrid的DataGridColumn的width
2011-12-18 00:42 5199DataGrid的column的width属性不 ... -
RollOver和MouseOver的不同
2011-12-12 15:03 3037共同点:都是针对鼠标的进入和进出事件。 ... -
转 Adobe移动战略失败的幕后
2011-12-08 15:56 1368最近一段时间,Adobe和Apple两个昔日的好伙 ... -
Flash Builder该这样编译,希望adboe的人能看到
2011-12-06 12:17 0从3.0开始使用flash builder,对f ... -
List或DataGrid可变行高
2011-11-29 21:57 3169默认情况下List组件是每行的行高是固定的,但 ... -
访问flex sdk版本和Flash player版本
2011-11-16 15:52 1359下面的代码将flex sdk的版本号和Fla ... -
设置TitleWindow的closeButton的mode
2011-11-16 15:42 1214默认情况下,TitleWindow的closeBu ... -
DataGrid header显示tooltip
2011-11-15 17:18 2541有时需要在DataGrid的header上显示 ... -
flash右键菜单项关键字
2011-11-15 16:26 1244有时需要在flash的右键菜单中添加 删除 ...
相关推荐
为了模拟MDI子窗体的效果,你需要将`ChildWindow`添加到主窗口的某个容器控件(如`Grid`或`Canvas`)中。这可以通过设置`ChildWindow`的`Parent`属性来实现: ```csharp childWindow.Parent = this; // 'this'代表主...
1. **MDI容器窗口**:提供一个可以承载多个子窗口的主框架窗口,用户可以在同一个应用程序界面下切换和操作多个子窗口,提升多任务处理能力。 2. **子窗口管理**:支持创建、显示、隐藏、关闭和排列子窗口。开发者...
而MDIChild窗体是在MDIParent内部打开的窗口,它们可以被最大化、最小化、移动和关闭,但始终不会脱离MDIParent的控制范围。 要创建一个MDI应用,首先在Visual Studio中新建一个Windows Forms Application项目,...
JavaScript开发框架是为了加速前端开发进程,通过预定义的函数库和结构,简化DOM操作、事件处理、动画效果、异步通信等常见任务。它们通常提供一套统一的API,使得代码更简洁、可维护性更强。myJSFrame可能是这样一...
3. **消息处理**:MDI应用程序需要处理来自子窗口的消息,如关闭、最大化、最小化等。支持库可能包含了一套完整的消息处理机制,使开发者无需深入了解底层细节就能实现这些功能。 4. **例程示例**:描述中提到...
修改MDIWindow.as文件的 onWindowMove 添加两个属性 只有在 windowManager.enforceBoundaries =false时候可用 1. floatInCanvas 是否停靠 2.floatSize 停靠边界露出部分的宽度或者高度 默认为 30px 这样 窗体就...
但我们的目标是确保只有一个MDIChild处于活动状态,新的打开请求会切换到已存在的窗口,而非创建新的。 以下是实现此功能的一般步骤: 1. **监听子窗口创建事件**:你需要监听MDIParent窗口的MdiChildActivate事件...
然后,你可以利用DevExpress的`MdiWindow`类或者`XtraForm`类,这些类是专门为MDI应用程序设计的,提供了一流的用户体验和定制选项。 在布局方面,DevExpress提供了一系列的布局管理器,如`DockPanel Suite`和`...