- 浏览: 506066 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
wang1352083:
正在搭建tomcat源码.一会儿参照楼主经验搭建spring源 ...
Eclipse中阅读开源项目代码 -
w123456789zzzz:
谢谢你,问题解决了,楼主万岁!!
eclipse中如何安装插件 -
xiaoLee:
...
软件性能测试论文草稿 -
铃儿响叮当:
...
使用firefox调试js -
gogopengyou:
很细心啊
eclipse中如何安装插件
1、 指定组件的相对高度可以使用percentWidth和percentHeight。
^_^ ^_^ 记得以往我曾非常傻B地使用this.width*0.8这样的方式
2、 MyDashBoard例子启示录
往TitleWindow上添加最大化、最小化按钮图标可以采用样式的方式来实现,而非一定得是直接嵌入图片的方式。
参考方式: Pod.as
var maxmizeButton:Button = new Button();
var maxmizeButton.styleName="maximizeButton";
定义有样式表:
.maxminizeButton{
up-skin: Embed("a.jpg");
... ...
}
3、 对于Flex3中的layoutChrome方法可以使用Flex4中的updateDisplay进行替换
4、 发现网上关于最大化、最小化的例子采取的方式基本上都是在titleBar中添加相应的图标,而如今到了Flex4中已经没有titleBar这个属性了(titleBar是作为一个独立的空间而非像FLex3那样作为panel的一个属性)。——改如何解决呢?
Flex3中控制”关闭按钮“是否显示的方式为: showCloseButton = false;
Flex4中 closeButton.visiable = false;
注意: 如果titleWindow组件是动态添加的,必须在该组件初始化完成后再调closeButton.visiable=false,否则会出错。
附:隐藏titleDisplay.parent.visiable = false;//不显示标题栏
(拖动的效果点击区域为标题栏)
5、 addChild和rawChildren.addChild的区别?
将一个sprite放入一个容器内,调用容器的addChild方法,结果运行时报错,说不是UIComponent的子类,而使用rawChildren.addChild却成功?
————————相关知识拓展
mx.core.Container是“组件容器”,用来管理其中子组件(UIComponent)的布局
Application就是组件容器,Flex中的组件无法脱离容器而独立显示;Flex组件必须在容器中才能工作。
mx.core.Container同时也是一个“显示对象容器(DisplayObject)。注意:组件与显示对象不是同一个概念
Container自身也是一个组件,它也有自己的内部对象,Container的内部对象及自组建都是显示对象容器的子显示对象。
而通过Container的rawChildren属性可以获得访问容器的显示所有子对象的接口
————Flex中组建一般组件的继承关系(此处以Panel为例):
Panel——Container——UIComponent——FlexSprite——Sprite——DisplayObjectContainer——InteractiveObject——DisplayObject——EventDispatcher——Object。
6、 Flex中当怎么调整XY属性都无效时则要考虑是否是组件布局所导致的。
7、 深入Flex4,了解Element和Child的异同
.element 实现了IVisualElement接口类型的任意型别
.child 扩展了DisplayObject类的任意型别
UIComponent既实现了IVisualElement接口,也扩展了DisplayObject;
容器中的DisplayObject对象,无疑是该容器的child,而只有当DisplayObject对象也同时实现了IVisualElement接口时才是该容器的element。
参考:http://bigt.iteye.com/blog/764430
8、 Flex Image通过as的方式动态地加载图片
Embed支持的类型为String和Class
尝试:
A、 function initial():void{
photoArray = new Array();
photoArray.push("xx.jpg");
... ...
for(循环){
var url:String = photoArray[i];
var image:Image = new Image();
image.load(url);
}
}//结果不行
分析:load(url), url参数可引用GIF,JPEG,PNG,SWF等文件,无法使用此方法加载SVG文件,且必须对source属性使用Embed语句才能加载。
B、 <mx:Image source="{getImage('')} .../>
function getImage(state:String):String{
if(state==xxx){
return 1.jpg;
}
}
//仍然无效,然而在datagrid中的ItemRender中如此使用却有效。
C、 适用的方式
[Embed("图片路径")]
private var maxIcon:Class;
图片id.source = maxIcon;
附译文解决方案:
EnhancedTitleWindow.as
样式文件:
使用方式:
^_^ ^_^ 记得以往我曾非常傻B地使用this.width*0.8这样的方式
2、 MyDashBoard例子启示录
往TitleWindow上添加最大化、最小化按钮图标可以采用样式的方式来实现,而非一定得是直接嵌入图片的方式。
参考方式: Pod.as
var maxmizeButton:Button = new Button();
var maxmizeButton.styleName="maximizeButton";
定义有样式表:
.maxminizeButton{
up-skin: Embed("a.jpg");
... ...
}
3、 对于Flex3中的layoutChrome方法可以使用Flex4中的updateDisplay进行替换
4、 发现网上关于最大化、最小化的例子采取的方式基本上都是在titleBar中添加相应的图标,而如今到了Flex4中已经没有titleBar这个属性了(titleBar是作为一个独立的空间而非像FLex3那样作为panel的一个属性)。——改如何解决呢?
Flex3中控制”关闭按钮“是否显示的方式为: showCloseButton = false;
Flex4中 closeButton.visiable = false;
注意: 如果titleWindow组件是动态添加的,必须在该组件初始化完成后再调closeButton.visiable=false,否则会出错。
附:隐藏titleDisplay.parent.visiable = false;//不显示标题栏
(拖动的效果点击区域为标题栏)
5、 addChild和rawChildren.addChild的区别?
将一个sprite放入一个容器内,调用容器的addChild方法,结果运行时报错,说不是UIComponent的子类,而使用rawChildren.addChild却成功?
————————相关知识拓展
mx.core.Container是“组件容器”,用来管理其中子组件(UIComponent)的布局
Application就是组件容器,Flex中的组件无法脱离容器而独立显示;Flex组件必须在容器中才能工作。
mx.core.Container同时也是一个“显示对象容器(DisplayObject)。注意:组件与显示对象不是同一个概念
Container自身也是一个组件,它也有自己的内部对象,Container的内部对象及自组建都是显示对象容器的子显示对象。
而通过Container的rawChildren属性可以获得访问容器的显示所有子对象的接口
————Flex中组建一般组件的继承关系(此处以Panel为例):
Panel——Container——UIComponent——FlexSprite——Sprite——DisplayObjectContainer——InteractiveObject——DisplayObject——EventDispatcher——Object。
6、 Flex中当怎么调整XY属性都无效时则要考虑是否是组件布局所导致的。
7、 深入Flex4,了解Element和Child的异同
.element 实现了IVisualElement接口类型的任意型别
.child 扩展了DisplayObject类的任意型别
UIComponent既实现了IVisualElement接口,也扩展了DisplayObject;
容器中的DisplayObject对象,无疑是该容器的child,而只有当DisplayObject对象也同时实现了IVisualElement接口时才是该容器的element。
参考:http://bigt.iteye.com/blog/764430
8、 Flex Image通过as的方式动态地加载图片
Embed支持的类型为String和Class
尝试:
A、 function initial():void{
photoArray = new Array();
photoArray.push("xx.jpg");
... ...
for(循环){
var url:String = photoArray[i];
var image:Image = new Image();
image.load(url);
}
}//结果不行
分析:load(url), url参数可引用GIF,JPEG,PNG,SWF等文件,无法使用此方法加载SVG文件,且必须对source属性使用Embed语句才能加载。
B、 <mx:Image source="{getImage('')} .../>
function getImage(state:String):String{
if(state==xxx){
return 1.jpg;
}
}
//仍然无效,然而在datagrid中的ItemRender中如此使用却有效。
C、 适用的方式
[Embed("图片路径")]
private var maxIcon:Class;
图片id.source = maxIcon;
附译文解决方案:
EnhancedTitleWindow.as
package xxx { import flash.events.MouseEvent; import mx.core.UIComponent; import mx.events.CloseEvent; import spark.components.Button; import spark.components.Group; import spark.components.TitleWindow; import spark.layouts.supportClasses.LayoutBase; [Style(name="titleBarHeight", type="Number", inherit="no", theme="spark")] [Style(name="showExpandIndicator", type="Boolean", inherit="no", theme="spark")] public class EnhancedTitleWindow extends TitleWindow { public static const EXPANDED:String = "EnhancedTitleWindow:expanded"; public static const COLLAPSED:String = "EnhancedTitleWindow:collapsed"; public var headerClickable:Boolean; [Bindable] public var collapsible:Boolean; [Bindable] public var showCloseButton:Boolean; [SkinPart(required="false")] public var expandIndicator:UIComponent; [SkinPart(required="false")] public var topGroup:Group; [SkinPart(required="false")] public var titleBarContentGroup:Group; protected var expandedChanged:Boolean; protected var _expanded:Boolean = true; protected var _titleBarContent:Array; protected var _titleBarLayout:LayoutBase; public function EnhancedTitleWindow() { super(); } [Bindable] public function get expanded():Boolean { return _expanded; } public function set expanded(value:Boolean):void { if(value != _expanded){ expandedChanged = true; _expanded = value; invalidateProperties(); invalidateSkinState(); } } public function set titleBarContent(value:Array):void { _titleBarContent = value; } public function get titleBarLayout():LayoutBase { return _titleBarLayout; } public function set titleBarLayout(value:LayoutBase):void { _titleBarLayout = value; if(titleBarContentGroup) titleBarContentGroup.layout = _titleBarLayout; } protected function onExpandIndicatorClick(event:MouseEvent):void { if(!headerClickable && collapsible) expanded = !expanded; } protected function onCloseClick(event:MouseEvent):void { event.stopImmediatePropagation(); dispatchEvent(new CloseEvent(CloseEvent.CLOSE)); } protected function onHeaderClicked(event:MouseEvent):void { if(headerClickable && collapsible) expanded = !expanded; } override protected function partAdded(partName:String, instance:Object) : void { super.partAdded(partName, instance); if(instance == expandIndicator){ expandIndicator.addEventListener(MouseEvent.CLICK, onExpandIndicatorClick); }else if(instance == topGroup){ topGroup.addEventListener(MouseEvent.CLICK, onHeaderClicked); }else if(instance == titleBarContentGroup){ if(_titleBarContent) titleBarContentGroup.mxmlContent = _titleBarContent; if(_titleBarLayout) titleBarContentGroup.layout = _titleBarLayout; } } override protected function partRemoved(partName:String, instance:Object) : void { super.partRemoved(partName, instance); if(instance == expandIndicator){ expandIndicator.removeEventListener(MouseEvent.CLICK, onExpandIndicatorClick); }else if(instance == topGroup){ topGroup.removeEventListener(MouseEvent.CLICK, onHeaderClicked); } } override protected function commitProperties() : void { super.commitProperties(); if(expandedChanged){ expandIndicator.currentState = _expanded ? "expanded" : "collapsed"; if(_expanded) dispatchEvent(new Event(EXPANDED)); else dispatchEvent(new Event(COLLAPSED)); expandedChanged = false; } } override protected function getCurrentSkinState():String { var state:String = super.getCurrentSkinState(); if(collapsible){ if(!_expanded){ if(enabled) state = "collapsed"; else state = "disabledCollapsed"; } } return state; } } }
样式文件:
<?xml version="1.0" encoding="utf-8"?> <!-- ADOBE SYSTEMS INCORPORATED Copyright 2008 Adobe Systems Incorporated All Rights Reserved. NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms of the license agreement accompanying it. --> <!--- The default skin class for a Spark TitleWindow container. @see spark.skins.spark.TitleWindowCloseButtonSkin @see spark.components.TitleWindow @langversion 3.0 @playerversion Flash 10 @playerversion AIR 1.5 @productversion Flex 4 --> <s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:fb="http://ns.adobe.com/flashbuilder/2009" blendMode="normal" mouseEnabled="false" minWidth="76" minHeight="76" alpha.disabled="0.5" alpha.disabledWithControlBar="0.5"> <fx:Metadata> <![CDATA[ /** * @copy spark.skins.spark.ApplicationSkin#hostComponent */ [HostComponent("spark.components.TitleWindow")] ]]> </fx:Metadata> <fx:Script fb:purpose="styling"> /* Define the skin elements that should not be colorized. For panel, border and title background are skinned, but the content area and title text are not. */ static private const exclusions:Array = ["background", "titleDisplay", "contentGroup"]; /** * @private */ override public function get colorizeExclusions():Array {return exclusions;} /** * @private */ override protected function initializationComplete():void { useChromeColor = true; super.initializationComplete(); } /** * @private */ override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { if (getStyle("borderVisible") == true) { /*border.visible = true; */ /* background.left = background.top = background.right = background.bottom = 1; */ /* contents.left = contents.top = contents.right = contents.bottom = 1; */ } else { /* border.visible = false; */ /* background.left = background.top = background.right = background.bottom = 0; */ /* contents.left = contents.top = contents.right = contents.bottom = 0; */ } /* dropShadow.visible = getStyle("dropShadowVisible"); */ var cr:Number = getStyle("cornerRadius"); var withControls:Boolean = (currentState == "disabledWithControlBar" || currentState == "normalWithControlBar" || currentState == "inactiveWithControlBar"); if (cornerRadius != cr) { cornerRadius = cr; /* dropShadow.tlRadius = cornerRadius; dropShadow.trRadius = cornerRadius; dropShadow.blRadius = withControls ? cornerRadius : 0; dropShadow.brRadius = withControls ? cornerRadius : 0; */ setPartCornerRadii(topMaskRect, withControls); /* setPartCornerRadii(border, withControls); */ /* setPartCornerRadii(background, withControls); */ } if (bottomMaskRect) setPartCornerRadii(bottomMaskRect, withControls); /* borderStroke.color = getStyle("borderColor"); borderStroke.alpha = getStyle("borderAlpha"); */ /* backgroundFill.color = getStyle("backgroundColor"); backgroundFill.alpha = getStyle("backgroundAlpha"); */ var barHeight:Number = getStyle("titleBarHeight"); titleBarGroup.height = isNaN(barHeight) ? 20 : barHeight; super.updateDisplayList(unscaledWidth, unscaledHeight); } /** * @private */ private function setPartCornerRadii(target:Rect, includeBottom:Boolean):void { target.topLeftRadiusX = cornerRadius; target.topRightRadiusX = cornerRadius; target.bottomLeftRadiusX = includeBottom ? cornerRadius : 0; target.bottomRightRadiusX = includeBottom ? cornerRadius : 0; } private var cornerRadius:Number; </fx:Script> <s:states> <s:State name="normal" /> <s:State name="inactive" stateGroups="inactiveGroup" /> <s:State name="disabled" /> <s:State name="normalWithControlBar" stateGroups="withControls" /> <s:State name="inactiveWithControlBar" stateGroups="withControls, inactiveGroup" /> <s:State name="disabledWithControlBar" stateGroups="withControls" /> </s:states> <!--- drop shadow can't be hittable so it stays sibling of other graphics @private--> <!-- <s:RectangularDropShadow id="dropShadow" blurX="0" blurY="0" alpha="0.60" alpha.inactiveGroup="0.60" distance="5" distance.inactiveGroup="5" angle="120" color="0x000000" left="0" top="0" right="0" bottom="0"/> --> <s:Rect top="0" bottom="0" left="0" right="0" radiusX="5" radiusY="5"> <s:fill> <s:RadialGradient> <s:entries> <s:GradientEntry color="0x000000" alpha="0.5"/> <s:GradientEntry color="0x000000" alpha="0.2"/> </s:entries> </s:RadialGradient> </s:fill> <s:filters> <s:BlurFilter blurX="5" blurY="5"/> </s:filters> </s:Rect> <s:Rect top="3" bottom="3" left="3" right="3" radiusX="5" radiusY="5"> <s:fill> <s:SolidColor color="0x000000" alpha="0.3"/> </s:fill> </s:Rect> <!--- drop shadow can't be hittable so all other graphics go in this group --> <s:Group left="10" right="10" top="10" bottom="10"> <!--- top group mask @private--> <s:Group left="1" top="1" right="1" bottom="1" id="topGroupMask"> <!--- @private--> <s:Rect id="topMaskRect" left="0" top="0" right="0" bottom="0"> <s:fill> <s:SolidColor alpha="0"/> </s:fill> </s:Rect> </s:Group> <!--- bottom group mask @private--> <s:Group left="1" top="1" right="1" bottom="1" id="bottomGroupMask" includeIn="withControls"> <!--- @private--> <s:Rect id="bottomMaskRect" left="0" top="0" right="0" bottom="0"> <s:fill> <s:SolidColor alpha="0"/> </s:fill> </s:Rect> </s:Group> <!--- layer 1: border @private --> <s:Rect id="border" left="0" right="0" top="0" bottom="0" topLeftRadiusX="10" topLeftRadiusY="10"> <s:stroke> <s:SolidColorStroke id="borderStroke" color="#0066cc" weight="1" /> </s:stroke> </s:Rect> <!-- layer 2: background fill --> <!--- Defines the appearance of the TitleWindowSkin class's background. --> <s:Rect id="background" left="1" top="1" right="1" bottom="1" topLeftRadiusX="9" topLeftRadiusY="9"> <s:fill> <s:SolidColor id="backgroundFill" color="#FFFFFF"/> </s:fill> </s:Rect> <!-- layer 3: contents --> <!--- Contains the vertical stack of title bar content and control bar. --> <s:Group left="1" right="1" top="1" bottom="1" id="contents"> <s:layout> <s:VerticalLayout gap="0" horizontalAlign="justify" /> </s:layout> <!--- @private --> <s:Group id="topGroup" mask="{topGroupMask}"> <!--- layer 0: title bar fill @private --> <!-- <s:Rect id="tbFill" left="0" right="0" top="0" bottom="1"> <s:fill> <s:LinearGradient rotation="90"> <s:GradientEntry color="0xD2D2D2" color.inactiveGroup="0xEAEAEA"/> <s:GradientEntry color="0x9A9A9A" color.inactiveGroup="0xCECECE"/> </s:LinearGradient> </s:fill> </s:Rect> --> <s:Rect left="0" right="0" top="15" bottom="0" bottomRightRadiusX="9" bottomRightRadiusY="9"> <s:stroke> <s:SolidColorStroke color="#0066cc" weight="1"/> </s:stroke> </s:Rect> <s:Rect left="0" right="0" top="0" bottom="1" topLeftRadiusX="8" topLeftRadiusY="8" bottomRightRadiusX="8" bottomRightRadiusY="8"> <s:stroke> <s:SolidColorStroke color="0x66ccff" weight="1"/> </s:stroke> </s:Rect> <s:Rect left="1" right="1" top="1" bottom="2" topLeftRadiusX="7" topLeftRadiusY="7" bottomRightRadiusX="7" bottomRightRadiusY="7"> <s:fill> <s:LinearGradient rotation="90"> <s:entries> <s:GradientEntry color="#33ccff"/> <s:GradientEntry color="#0066cc"/> </s:entries> </s:LinearGradient> </s:fill> </s:Rect> <s:BitmapImage source="@Embed('/assets/images/title_window_cloud.png')" width="181" height="27" horizontalCenter="0" verticalCenter="0" smooth="true" alpha="0.8"/> <!--- layer 1: title bar highlight @private --> <!-- <s:Rect id="tbHilite" left="0" right="0" top="0" bottom="0" alpha="0"> <s:stroke> <s:LinearGradientStroke rotation="90" weight="1"> <s:GradientEntry color="0xE6E6E6" /> <s:GradientEntry color="0xFFFFFF" alpha="0.22"/> </s:LinearGradientStroke> </s:stroke> <s:fill> <s:LinearGradient rotation="90"> <s:GradientEntry color="0xFFFFFF" alpha="0.15" /> <s:GradientEntry color="0xFFFFFF" alpha="0.15" ratio="0.44"/> <s:GradientEntry color="0xFFFFFF" alpha="0" ratio="0.4401"/> </s:LinearGradient> </s:fill> </s:Rect> --> <!--- layer 2: title bar divider @private --> <!-- <s:Rect id="tbDiv" left="0" right="0" height="1" bottom="0"> <s:fill> <s:SolidColor color="0x000000" alpha="0.75" /> </s:fill> </s:Rect> --> <!-- layer 3: text --> <!--- @copy spark.components.Panel#titleDisplay --> <s:Group id="titleBarGroup" left="6" right="1" top="1"> <s:layout><s:HorizontalLayout verticalAlign="middle" gap="4"/></s:layout> <!--<enhancedtitlewindow:TriangleIndicator id="expandIndicator"/>--> <s:Label id="titleDisplay" maxDisplayedLines="1" left="9" right="36" top="1" bottom="0" minHeight="30" verticalAlign="middle" fontWeight="bold" color="#ffffff"> </s:Label> <s:Group id="titleBarContentGroup" width="100%" height="100%"> <s:layout><s:HorizontalLayout/></s:layout> </s:Group> <!-- layer 4: moveArea --> <!--- @copy spark.components.TitleWindow#moveArea --> <s:Group id="moveArea" left="0" right="0" top="0" bottom="0" /> <!--- @copy spark.components.TitleWindow#closeButton --> <s:Button id="closeButton" skinClass="assets.skins.CloudTitleWindowCloseButtonSkin" width="15" height="15" visible="{false}" includeInLayout="{false}" /> </s:Group> </s:Group> <!-- Note: setting the minimum size to 0 here so that changes to the host component's size will not be thwarted by this skin part's minimum size. This is a compromise, more about it here: http://bugs.adobe.com/jira/browse/SDK-21143 --> <!--- @copy spark.components.SkinnableContainer#contentGroup --> <s:Group id="contentGroup" width="100%" height="100%" minWidth="0" minHeight="0"> </s:Group> <!--- @private --> <s:Group id="bottomGroup" minWidth="0" minHeight="0" includeIn="withControls"> <s:Group left="0" right="0" top="0" bottom="0" mask="{bottomGroupMask}"> <!-- layer 0: control bar divider line --> <s:Rect left="0" right="0" top="0" height="1" alpha="0.22"> <s:fill> <s:SolidColor color="0x000000" /> </s:fill> </s:Rect> <!-- layer 1: control bar highlight --> <s:Rect left="0" right="0" top="1" bottom="0"> <s:stroke> <s:LinearGradientStroke rotation="90" weight="1"> <s:GradientEntry color="0xFFFFFF" /> <s:GradientEntry color="0xD8D8D8" /> </s:LinearGradientStroke> </s:stroke> </s:Rect> <!-- layer 2: control bar fill --> <s:Rect left="1" right="1" top="2" bottom="1"> <s:fill> <s:LinearGradient rotation="90"> <s:GradientEntry color="0xEDEDED"/> <s:GradientEntry color="0xCDCDCD"/> </s:LinearGradient> </s:fill> </s:Rect> </s:Group> <!--- @copy spark.components.Panel#controlBarGroup --> <s:Group id="controlBarGroup" left="0" right="0" top="1" bottom="1" minWidth="0" minHeight="0"> <s:layout> <s:HorizontalLayout paddingLeft="10" paddingRight="10" paddingTop="7" paddingBottom="7" gap="10" /> </s:layout> </s:Group> </s:Group> </s:Group> </s:Group> </s:SparkSkin>
使用方式:
<resizewindow:EnhancedTitleWindow id="diyTitleWindow" height.normal="269" height.max="386" width="420" width.max="460" titleBarHeight="30" title="事件详情" styleName="enhancedTitleWindow"> <resizewindow:titleBarContent> <mx:Spacer width.normal="320" width.max="360"/> <mx:Image id="maxIcon" click="maxTheWindowHandler()" source="@Embed('/assets/images/resizewindow/maximize_over.png')"/> <mx:Image source="@Embed('/assets/images/resizewindow/WindowCloseButton2.gif')" click="closeTheWindowHandler()"/> </resizewindow:titleBarContent> <mx:Form width="420" width.max="460" height="100%"> <mx:FormItem label="主题:" width="100%" fontSize="13"> <s:TextArea id="subject" width="100%" height.normal="40" height.max="50" text="{model._selectedEventItem.subject}" editable="false" horizontalScrollPolicy="off" verticalScrollPolicy="off"/> </mx:FormItem> <mx:FormItem label="详细信息:" width="100%" fontSize="13"> <s:TextArea id="detail" width="100%" height.normal="140" height.max="248" text="{model._selectedEventItem.detail}" editable="false"/> </mx:FormItem> </mx:Form> </resizewindow:EnhancedTitleWindow>
发表评论
-
手续材料
2012-03-25 22:40 0所发生大幅 <SERVICE CLASS ... -
amcharts
2011-12-18 23:46 40711、AmLegend 2、当宽度不够时出现,解决方案设置Ca ... -
flex4中使用backgroundImage
2011-04-20 17:04 16511、 方式一 可以用BorderContainer把内容包涵进 ... -
Flex PopUpManager总结
2011-04-10 23:51 1182PopUpManager弹出的普通组件与TitleWindow ... -
右键&FVNC
2011-03-28 20:46 13941、需了解的Flex类:Security、 ProgressE ... -
3月份FLex工作日志
2011-03-20 21:39 10611、异常:LabelToolTip655 can only h ... -
我与GEF有个约会
2011-03-13 23:19 841我们的Desinger是基于GEF做的,而如今我可能需要 ... -
Flex组件以几何中心作为中心进行缩放
2011-01-26 21:38 1420控制BlurPopUpEffect控制弹出窗体的位置 ... -
Flex初始化探究
2011-01-26 21:37 896a、 FLex的初始化顺序? 拓展 ... -
mate之Injectors引发的问题
2011-01-25 23:07 9051、背景介绍:系统中含有事件模块,EventListVi ... -
Flex个人知识库之Apple组件
2011-01-04 23:08 14952、 如何将网页上复制 ... -
OffLineMap替代方案研究
2010-12-30 22:33 964这个dc展示方案始终是得解决的,我感觉鸭梨很大。花在这个 ... -
Java-Flex通信
2010-12-27 23:09 1334背景:在内网访问 ... -
Flex个人知识库之样式皮肤
2010-12-18 08:58 941学习Flex已经有4、5个月了,也算是入了门吧,基本的 ... -
Flex个人知识库之工作日志2
2010-12-15 22:51 9601、 在dataGrid中设置某特定单元格的样式 使 ... -
Flex资源导航
2010-12-12 09:42 617将自己平时遇到的一些不错的FLex站点、博客等予以记录, ... -
个人FLex知识库之工作笔记
2010-12-12 09:18 1009[size=large]1、 private functio ... -
几条常用的Flex代码
2010-12-12 09:11 6531.复制内容到系统剪贴板 System.setCli ... -
中国城市经纬度数据
2010-12-10 08:38 2214前言暂时空缺... ... – – 表的结构 `cit ... -
Java-Pojo类转Flex-Vo类
2010-12-09 22:50 1297[size=large] 在使用openamf的类映射功能 ...
相关推荐
本案例中提到的"flex图片放大镜组件"就是这样一个自定义组件,它专为图片展示站点设计,提供了一个便捷的方式来实现图片的放大效果,从而提升用户体验。 首先,我们来理解一下“flex”这个词。在前端布局中,...
Flex图片查看组件是一种基于Adobe Flex技术的用户界面组件,它专为在Web应用程序中实现高质量的图片浏览体验而设计。Flex是一种开源的、基于ActionScript的框架,用于构建富互联网应用(RIA)。这款组件允许用户在...
Flex分页组件是一种在Flex应用程序中用于展示大量数据并分批加载的重要工具。它通过将大量数据分成小块,每次只加载一部分,提高了用户界面的响应速度和用户体验。本组件适用于那些需要显示大量数据,如表格、列表...
Flex中的高级自定义组件开发是构建复杂用户界面的关键技术,它允许开发者超越基本组件的限制,以满足特定的业务需求和视觉设计。在创建高级组件时,了解并掌握一些核心方法的重写至关重要,这些方法涉及到组件的生命...
7. **可访问性**:考虑到无障碍性( Accessibility),确保时间轴组件的元素具有正确的`role`属性,如`<button>`或`<li>`,以及适当的`aria-*`属性,以便屏幕阅读器用户能够理解和操作时间轴。 综上所述,Flex组件...
Flex自定义组件是指开发者根据项目需求,通过继承已有的Flex基类(如UIComponent或Canvas),并添加特定功能和样式来创建的组件。自定义组件可以扩展Flex库中默认组件的功能,提高代码重用性和灵活性。 1. 组件创建...
Flex4(也称为Spark)是Adobe Flex框架的一个重要版本,它引入了许多新的特性,包括改进的组件库、性能优化以及更好的可定制性。在Flex4中,自定义组件的开发变得尤为重要,因为它允许开发者创建高度定制化的UI组件...
每个Flex组件都是一个继承自UIComponent的类,拥有自己的生命周期、样式和事件处理机制。例如,Button组件用于响应用户的点击动作,Label组件用于显示静态文本,而List组件则可以展示可选择的项目列表。 Flex组件的...
- Flex4引入了Spark组件模型,相对于MX组件,Spark组件更加强调可定制性,允许开发者更自由地设计组件外观。 2. **创建自定义皮肤** - 使用Flex SDK中的Skin类或MXML来创建自定义皮肤。皮肤通常包含一组显式状态...
例如,要创建一个按钮并添加到界面上,首先需要实例化按钮组件,然后通过设置其属性来定义按钮的样式和行为,接着添加事件监听器以响应用户操作,最后将按钮添加到父容器中,使其可见。 #### 工具提示 工具提示是...
在Flex编程领域,组件是构建用户界面的基本单元。Flex组件库包含了各种各样的控件,使得开发者能够构建功能丰富的Web应用程序。"flex组件之其他组件实例源码"这个主题涵盖了一些非基本但非常实用的Flex组件,如高级...
下面将详细讨论Flex组件边框线样式的几个关键组成部分以及如何进行定制。 1. 边框(Border) 边框是组件的外围线条,用于界定组件的范围。在Flex中,你可以通过设置边框宽度、颜色和样式来调整边框的视觉效果。...
本篇文章将深入探讨Flex中的Time组件,了解其基本用法、功能特性以及如何自定义和扩展。 Time组件在Flex中属于MX组件库,它是MX Form组件家族的一部分,主要服务于数据输入场景。Time组件的设计目标是提供一个易于...
flex 背景图片重复的组件库 类似HTML的CSS样式表中的背景重复
8. **皮肤自定义**:Flex允许开发者自定义组件外观,以创建独特的图片浏览器样式。可以更改组件的边框、背景色、按钮样式等。 9. **优化性能**:处理大量图片时,应考虑图片的加载和内存管理。可以使用延迟加载策略...
在本篇中,我们将深入探讨Flex图形组件的原理、使用场景以及如何与其他技术如SpringGraph、GDiagram结合。 一、Flex图形组件基础 1. Flex SDK:Flex图形组件是基于Flex SDK开发的,它提供了丰富的UI组件库,包括...
在压缩包中的“第9章_Flex_4系统组件:图表.ppt”文件,很可能是关于这个主题的详细讲解,可能包含了如何创建、配置图表的步骤,以及各种图表类型的示例。通过阅读这份PPT,我们可以更深入地了解Flex 4图表组件的...
在Flex4中,选择树组件(Tree)是用户界面中常用的一种控件,它允许用户以层级结构展示数据,并进行选择操作。这个组件特别适合展现具有层次关系的数据,如文件系统、组织架构或者产品分类等。 在Flex4中,Tree组件...
自定义组件的前提条件通常包括对Flex SDK的熟悉,对面向对象编程的理解,以及对组件生命周期、样式和事件处理机制的掌握。 主要内容提到了一个具体的自定义组件——图片组件,它具有以下功能: 1. 创建图片组件时...
5. **样式和皮肤**:Flex支持丰富的样式系统,你可以定义组件的默认样式,并允许用户通过样式表进行自定义。此外,组件还可以使用皮肤来改变其外观,皮肤可以是静态的图像,也可以是动态的组件实例。 6. **测试和...