- 浏览: 419074 次
- 性别:
- 来自: 济南
最新评论
-
nianshi:
slideDown就是show的滑动效果版本, slideUp ...
Jquery零碎代码收藏 -
nianshi:
以后编写JS代码,少写<div onclick=&quo ...
Jquery零碎代码收藏 -
nianshi:
获取匹配元素相对父元素的偏移var p = $("p ...
Jquery零碎代码收藏 -
nianshi:
获取匹配元素在当前窗口的相对偏移var p = $(" ...
Jquery零碎代码收藏 -
wuchu:
谢谢
Flex 读取XML配置文件总结
在
panel的titleBar上添加按钮,首先 override createChildren方法,
其中加入panel.rawChildren.addChild(Button),然后override
panel的layoutChrome方法定置按钮的位置。
例子如下:
001 package{
002 import mx.containers.Panel;
003 import mx.controls.Button;
004 import flash.events.Event;
005 import flash.events.MouseEvent;
006 import flash.display.DisplayObject;
007 import mx.effects.Resize;
008 import mx.controls.Alert;
009 import mx.controls.Label;
010
011 [Event(name="restore")]
012 [Event(name="maximize")]
013
014 public class FlexPanel extends Panel{
015 private var state:int = 0;
016
017 private var restoreBtn: Button;
018 private var minBtn: Button;
019 private var closeBtn: Button;
020
021 [Embed("../assets/minICON.png")] // 这里我自定义了按钮外观
022 private var minIcon:Class;
023 [Embed("../assets/minOverICON.png")]
024 private var minOverIcon:Class;
025
026 [Embed("../assets/restoreICON.png")]
027 private var restoreIcon:Class;
028 [Embed("../assets/restoreOverICON.png")]
029 private var restoreOverIcon:Class;
030
031 [Embed("../assets/closeICON.png")]
032 private var closeIcon:Class;
033 [Embed("../assets/closeOverICON.png")]
034 private var closeOverIcon:Class;
035
036 private var resize: Resize;
037 private var effectTime: Number = 400;
038
039 private static var _instance: FlexPanel;
040
041 public function FlexPanel(){
042 super();
043 _instance = this;
044 }
045
046 public override function initialize():void{
047 super.initialize();
048 this.maxHeight = this.height;
049 initEffect();
050 }
051
052 private function setState(state:int):void{
053 this.state=state;
054 if (state==0){
055 this.dispatchEvent(new Event('restore'));
056 } else {
057 this.dispatchEvent(new Event('maximize'));
058 }
059 }
060 /* ************************************************* */
061 protected override function createChildren(): void {
062 super.createChildren();
063
064 this.titleBar.addEventListener(MouseEvent.MOUSE_DOWN, doDrag);
065 this.titleBar.addEventListener(MouseEvent.MOUSE_UP, doDrop);
066
067 restoreBtn = new Button();
068 restoreBtn.addEventListener("click",doRestore);
069 restoreBtn.setStyle("overIcon",restoreOverIcon);
070 restoreBtn.setStyle("downIcon",restoreIcon);
071 restoreBtn.setStyle("upIcon",restoreIcon);
072 restoreBtn.visible=false;
073 rawChildren.addChild(restoreBtn);
074
075 minBtn = new Button();
076 minBtn.addEventListener("click",doMin);
077 minBtn.setStyle("overIcon",minOverIcon);
078 minBtn.setStyle("downIcon",minIcon);
079 minBtn.setStyle("upIcon",minIcon);
080 minBtn.visible = true;
081 rawChildren.addChild(minBtn);
082
083 closeBtn = new Button();
084 closeBtn.addEventListener("click",doClose);
085 closeBtn.setStyle("overIcon",closeOverIcon);
086 closeBtn.setStyle("downIcon",closeIcon);
087 closeBtn.setStyle("upIcon",closeIcon);
088 closeBtn.visible = true;
089 rawChildren.addChild(closeBtn);
090
091 }
092 /* ************************************************** */
093 protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{
094 super.updateDisplayList(unscaledWidth, unscaledHeight);
095 }
096
097 private function doMin(event:Event):void{
098 setState(1);
099 minBtn.visible= false;
100 restoreBtn.visible= true;
101 minEffect();
102 //Alert.show(this.verticalScrollBar.toString());
103 }
104
105 private function doRestore(event:Event) :void{
106 setState(0);
107 minBtn.visible= true;
108 restoreBtn.visible= false;
109 restoreEffect();
110 }
111
112 private function doClose(event:Event) :void{
113 this.visible = false;
114 this.parent.removeChild(this);
115 }
116
117 private function doDrag(event:Event):void{
118 this.startDrag();
119 }
120
121 private function doDrop(event:Event):void{
122 this.stopDrag();
123 }
124 /* ********************************************************************************* */
125 protected override function layoutChrome(unscaledWidth: Number, unscaledHeight:Number):void {
126 super.layoutChrome(unscaledWidth, unscaledHeight);
127
128 var margin:int = 0;
129 var pixelsFromTop:int = 6;
130 var pixelsFromRight:int = 12;
131 var buttonWidth:int = 18;
132 var buttonHeight:int = 17;
133 var distance:int = 7;
134 var x:Number = this.width - buttonWidth*2 - distance - pixelsFromRight;
135 var y:Number = pixelsFromTop;
136
137 restoreBtn.setActualSize(buttonWidth, buttonHeight);
138 restoreBtn.move(x,y);
139
140 minBtn.setActualSize(buttonWidth, buttonHeight);
141 minBtn.move(x,y);
142
143 closeBtn.setActualSize(buttonWidth, buttonHeight);
144 closeBtn.move(this.width - buttonWidth - pixelsFromRight,y);
145
146 }
147 /* ********************************************************************************* */
148 private function initEffect():void{
149 resize = new Resize(_instance);
150 resize.heightTo = this.titleBar.height;
151 resize.duration = effectTime;
152 }
153
154 private function minEffect():void{
155 resize.heightTo = this.titleBar.height;
156 resize.end();
157 resize.play();
158 }
159
160 private function restoreEffect():void{
161 resize.heightTo = this.maxHeight;
162 resize.end();
163 resize.play();
164 }
165 }
166 }
看到这么长的代码不要觉得可怕,这是我自己用的panel,懒得简化了干脆直接把代码全帖出来,你只需要注意开带*号的地方就可以了
发表评论
-
Flex小记录
2011-02-24 10:18 1303Flex读取XML: <mx:HTTPServic ... -
flex实现滑动显示隐藏效果
2010-12-30 15:30 1606鼠标划过的时候显示菜单栏 ,鼠标移开后隐藏菜单栏。比较常用 ... -
flex DataTimePicker时间控件
2010-12-27 11:54 1325两种DatatimePicker: 1.Datatim ... -
ActionScript 生成伪Guid
2010-12-24 09:52 1217在一个Flash制作的图片上传程序中(使用了FileRefer ... -
Flex中Image组件怎么才能非等比例拉伸图片
2010-12-23 15:49 1514Image组件怎么才能非等比例拉伸图片 设 ... -
Flex中Accordion用法
2010-12-23 11:45 3089<? xml version = & ... -
Flex(替代session过期)实现用户长时间不操作要求重新登录的处理
2010-12-23 11:08 1511flex(替代session过期)用户长时间不操作要求重新登录 ... -
ActionScript 3.0 Socket编程
2010-12-23 09:56 1181在使用ActionScript3.0进行编程 ... -
12个简单易用的flex函数
2010-12-21 10:10 11471.拷贝内容到剪贴板: ... -
Flex自定义控件——Pagebar分页控件
2010-12-20 09:41 5267开发时经常遇到用一个DataGrid分页显示 ... -
Flex资源,很全,很牛!
2010-12-20 09:30 14711、as3ebaylib http://code ... -
Flex 窗体 最大化、最小化实例
2010-12-20 09:28 2723---导入flexMdi.swc (http ... -
在Flex中复制文字到操作系统的剪贴板
2010-12-15 11:18 1248这个实例演示了怎么样使用System. ... -
Flex让Slider控件拖动时显示Tooltip
2010-12-14 16:10 1919格式化与自定义Slider中显示的Tooltip ... -
Flex给Alert加个Icon
2010-12-14 16:05 1288给Alert加个Icon 很简单只要先 Embed 一 ... -
在Flex中用Validator验证数字、字符串、Email、电话号码等
2010-12-14 09:54 4327mx.validators ... -
Flex中使用FileReference类下载文件
2010-12-14 09:47 1800下面的实例演示了Flex中的 File ... -
Flex使用ArrayCollection的filterFunction属性过滤DataGrid
2010-12-14 09:42 1808下面的实例演示了在Flex中怎样使用 ... -
Flex 树形控件(Tree )的使用
2010-12-13 16:24 3481一、树形控件的常用属性 1、dragMoveE ... -
FLEX3中应用CSS完全详解手册(下)
2010-12-13 11:40 886myTabs中的设置 cornerRadiusTab ...
相关推荐
1. **仅响应Panel事件**:在`Panel`内部的`Button`上添加了事件处理器`buttonClickHandler`,并通过`useCapture=true`设置在捕获阶段监听事件。因此,点击按钮时,`Panel`的事件处理器将被执行,而按钮自身的处理器...
这段代码将在按钮上设置工具提示,当鼠标悬停在按钮上时,会显示“这是一个示例按钮”。 **2. 处理换行** 如果工具提示的文本过长,可以通过添加`\n`(ActionScript中)或` `(MXML中)来实现换行。例如: ``...
在Flex框架中,延迟加载主要应用于组件的渲染和资源的加载上。例如,当一个Flex应用程序包含大量组件时,如果所有组件都在启动时加载并渲染,这将大大增加初始加载时间。通过采用延迟加载技术,可以让不立即可见或...
下面的示例展示了如何在一个简单的Flex应用中使用Flex-AjaxBridge技术与JavaScript进行交互。 ##### Flex端代码(main.mxml): ```xml <mx:Application xmlns:mx=...
{ text: '标题', dataIndex: 'title', flex: 2 }, { text: '发布时间', dataIndex: 'posttime', flex: 1 } ], dockedItems: [ // 定义停靠项 { xtype: 'pagingtoolbar', // 分页工具栏 store: store, // 绑定...
在 Flex 3 中,你可以通过调用静态方法 `Alert.show()` 来显示一个 `Alert` 对话框。例如: ```xml <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script> <![CDATA[ import mx.controls....
Canvas 是 Flex 中一个非常基础且重要的布局容器,它允许开发者通过精确控制子元素的位置来构建界面。Canvas 容器本身定义了一个矩形区域,可以在此区域内放置其他容器或控件。与大多数其他容器不同,Canvas 不会...
<mx:Panel layout="vertical" title="Enter Customer Information"> <mx:Form backgroundColor="white"> <mx:FormItem label="First Name"> <mx:TextInput id="firstName" width="150"/> </mx:FormItem> <mx:Form...
以上代码创建了一个包含三列(Name, Email, Phone)的Grid,并将其渲染到页面上。 在学习ExtJS控件时,理解这些基本组件的使用方法至关重要,因为它们构成了构建复杂应用的基础。无论是弹框用于用户交互,还是表格...
下面将逐步介绍如何在Flex环境中创建一个基本的登录界面。 **步骤 1:创建Flex项目** 1. 打开开发工具(例如Adobe Flash Builder),选择“文件” → “新建” → “Flex项目”命令。 2. 在出现的“新建Flex项目”...
本文档是基于阿树对Adobe Flex UI组件库的全面整理,并结合Adobe主页上提供的各种组件代码示例进行深度解析。Flex是一种用于构建高度交互式的Web应用的框架,尤其适用于创建丰富的互联网应用程序(RIA)。它包含了一...
- 在Flex中,应用容器通过`<mx:Application>`标记进行定义,该标记必须是MXML文件的第一个标记。 - `<mx:Application>`不仅充当容器的角色,还作为该文件中所有ActionScript代码的默认作用域,并定义了应用程序的...
例如,在一个相册应用中,当用户鼠标悬停在一张图片上时,系统可以显示与该图片相关的信息(如拍摄时间、地点等),而当鼠标移开时,这些额外信息消失,仅保留图片本身。这就是视图状态的一个典型应用场景。 #### ...
2. **GitHub**: ExtJS 的源代码也托管在 GitHub 上,可以通过访问其仓库获取最新版本。 示例引用代码: ```html <script type="text/javascript" src="path/to/ext-all-debug.js"></script> ``` **1.2 典型的 ...