- 浏览: 287674 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
xisuchi:
咋没人收藏阿
前端开发大众手册(包括工具、网址、经验等) -
past2010yeah:
太好了,解决了我纠结很久的问题!!!非常感谢!
解决Flex跨域"访问URL时遇到安全性错误" -
shlei:
xiao_kai 写道这样会不会牺牲性能啊~~会,但是这是暂时 ...
解决flex4 spark 找不到外观错误 -
xiao_kai:
这样会不会牺牲性能啊~~
解决flex4 spark 找不到外观错误 -
jcl860:
兄台:左边面板是图片,还是用mxml画出来的图形?
仿IBM-BPM Editor实现的WorkFlowEditor
刚开始做skinClass设计时往往会为一个小模块设计一个skinClass并把其用到的所有组件和逻辑都放进skinClass内,外部只要传入模块所需的数据和处理模块所抛出的事件就行。这样设计看似简单快速,使用起来也比较方便,skinClass似乎能完成所有的事了。
但是如果把这个skinClass去掉,那么这个小模块就只有一个白板了,因为所有的组件和逻辑都在skinClass中,再想想下次如果要做皮肤扩展,那就要重写一个庞大的skinClass了(其中的很多组件和逻辑代码都是重复的)。
其实组件和skinClass是可以分开设计的,先设计一个默认皮肤的小模块,让其能单独运行;再写skinClas将其HostComponent指定到要应用此皮肤的小模块,可以在skinClass的creationComplete事件处理中使用hostComponent.XXXid 得到小模块下的子组件,再用setStyle("skinClass", Class(XXX))对子组件进行skinClass的设置。
这样就可以把组件和skinClass分开了,也可以很方便地进行皮肤扩展。
下面来看一个例子:
程序结构如图
程序通过skin_test中的button来更换Box的main_skin,再在main_skin中对Box里的小组件进行a_skin的设置。
包skin_1,skin_2,skin_3就是三套皮肤。
skin_test.mxml
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:local="*"> <fx:Script> <![CDATA[ import skin_1.main_skin; import skin_2.main_skin; import skin_3.main_skin; protected function button1_clickHandler(event:MouseEvent):void{ box.setStyle("skinClass", Class(skin_1.main_skin)); } protected function button2_clickHandler(event:MouseEvent):void{ box.setStyle("skinClass", Class(skin_2.main_skin)); } ]]> </fx:Script> <s:VGroup width="100" horizontalCenter="0" verticalCenter="0" horizontalAlign="center" gap="10"> <s:HGroup gap="21"> <s:Button label="skin1" click="button1_clickHandler(event)"/> <s:Button label="skin2" click="button2_clickHandler(event)"/> </s:HGroup> <local:Box id="box" skinClass="skin_3.main_skin"/> </s:VGroup> </s:Application>
Box.mxml
<?xml version="1.0" encoding="utf-8"?> <s:SkinnableContainer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"> <s:HGroup left="10" right="10" top="10" bottom="10" gap="10"> <s:TextArea id="show" /> <s:TextArea id="input" /> </s:HGroup> </s:SkinnableContainer>
skin_1.main_skin.mxml
<?xml version="1.0" encoding="utf-8"?> <s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="skin1_creationCompleteHandler(event)"> <fx:Metadata> [HostComponent("Box")] </fx:Metadata> <fx:Script> <![CDATA[ import mx.events.FlexEvent; protected function skin1_creationCompleteHandler(event:FlexEvent):void{ hostComponent.show.setStyle("skinClass", Class(a_skin)); hostComponent.input.setStyle("skinClass", Class(a_skin)); } ]]> </fx:Script> <s:states> <s:State name="normal" /> <s:State name="disabled" /> </s:states> <s:Rect width="100%" height="100%"> <s:fill> <s:SolidColor color="#ff0000"/> </s:fill> </s:Rect> <s:Group id="contentGroup"/> </s:Skin>
skin_1.a_skin.mxml
<?xml version="1.0" encoding="utf-8"?> <s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"> <fx:Metadata> [HostComponent("spark.components.TextArea")] </fx:Metadata> <s:states> <s:State name="disabled" /> <s:State name="normal" /> </s:states> <s:Rect width="100" height="100"> <s:fill> <s:SolidColor color="#ffff00"/> </s:fill> </s:Rect> </s:Skin>
skin_2和skin_3包里的main_skin.mxml和a_skin.mxml只是color不同罢了。
效果如下:
http://flex4jiaocheng.com/sites/rhythmtechnology.com/files/skin_test.swf
来自http://flex4jiaocheng.com/blog/287
发表评论
-
Flex4之皮肤定制【Skin类和Skin类】
2013-10-05 19:19 1140第一、关于spark.skin.SparkSkin类的 ... -
基于 Cairngorm MVC 框架的 Flex 程序设计与开发
2013-10-05 18:38 988翟 峰, 开发工程师, IBM 吴 镝, IBM 实习生, I ... -
flex 4.5 simple spark button skinning
2013-09-24 22:09 1188Anyone missed the old simple me ... -
swf复制到其他文件夹出现安全错误的解决办法
2012-08-16 10:06 1220相信用Flash Builder/Flex Builder做开 ... -
在flex中使用model标签读取配置文件的方法
2012-08-16 09:54 9891.使用 Model标签 <mx:Model id=& ... -
Flex利用渲染器动态修改tree的icon图标
2012-08-16 09:50 1776Tree: <mx:Tree dataProvide ... -
flex xml操作
2012-04-25 10:48 1162今天我们来看看AS3中新的XML处理方法:E4X,直到现在,E ... -
Flex 创建过滤特定文件的FileReference
2012-03-01 16:13 1653下面的代码演示了Flex中如何创建一个可以过滤特定后缀文件的F ... -
Flex 根据图片url获取bitmapdata并绑定到多个Image
2012-03-01 14:40 3047private function getImage(url ... -
Flex 开始日期与结束日期DateField组件
2012-03-01 13:45 1826<?xml version="1.0&qu ... -
匹配已选中数据的某字段和下拉框数据
2012-03-01 08:41 1303package YD.Web.Common.Utils ... -
解决flex4 spark 找不到外观错误
2012-02-27 14:01 1903spark组件为了提高性能adobe做了很多努力,同 ... -
Flex垃圾回收和性能优化的一些总结
2012-02-27 11:30 1208本文是Kenshin根据一些对 ... -
【转】关于Flex未来走向的问答
2011-11-22 09:50 1758•转自:http://www.riadev.com/flex- ... -
Flex 关于validateNow方法
2011-11-18 10:42 2298validateNow(); 官方解释:验证并更新此对 ... -
Flex 数值转IP
2011-11-18 10:19 909package common { public cl ... -
Flex 关于遍历
2011-11-18 10:15 1038获取XML属性名、值 var x : XML = < ... -
Flash Builder编译的swf为什么在bin-debug下运行正常,复制到其他文件夹就不正常?
2011-11-08 16:54 1613相信用Flash Builder/Flex Bui ... -
Flex HttpService重用2
2011-09-28 13:30 1197HttpService工具类: package commo ... -
动态配置AMF与后台接口调用
2011-09-28 11:47 1507以下是一个AMF调用类: package common ...
相关推荐
本篇文章将详细介绍如何利用Flex4中的Spark Skin进行控件样式的自定义。 #### 二、Spark Skin与Skin类的关系 在Flex4中,`spark.skins` 包含了一个核心类 `SparkSkin`。`SparkSkin` 是一个继承自 `Group` 类型的...
在Flex 4中,皮肤(Skin)是一种强大的机制,用于改变和定制UI组件的外观和交互体验。本文将深入探讨FLEX4中的皮肤系统,特别是SparkSkin类,并通过实例展示如何创建和应用自定义皮肤。 1. SparkSkin的介绍: ...
通过以上内容,我们可以了解到在Flex4中如何利用`SparkSkin`和`Skin`类来定制组件的外观,以及如何将自定义皮肤应用到实际项目中。这对于初学者来说是一个很好的起点,能够帮助他们理解Flex4的皮肤机制,并进一步...
在Flex4中,皮肤(skin)是一种用于控制UI组件外观的设计模式,允许开发者和设计师定制组件的视觉表现,而不必触及组件的核心功能代码。这不仅提高了开发效率,还实现了设计与逻辑的分离,使得UI设计更加灵活且易于...
在Flex4框架中,开发人员经常需要创建具有高度定制化外观的应用程序组件。本篇文章将基于提供的文件信息深入探讨如何在Flex4中实现一个拥有自定义头部背景图片的Accordion组件,并通过代码示例详细解释其实现过程。 ...
在Flex中,皮肤是可定制的外观组件,允许开发者根据项目需求改变控件的视觉表现。 1. **什么是Flex皮肤?** Flex皮肤是Flex组件的外观表示,它可以改变组件的颜色、形状、大小等视觉元素。通过更换皮肤,开发者...
### FlexGumbo中利用自定义Button和TextInput 在Flex开发中,自定义控件样式是一项非常实用的功能,它可以让你根据自己的需求来调整界面的外观和感觉。在这个例子中,我们学习如何在Flex Gumbo(Flex的一个版本)中...
### FLEX4的皮肤制作教程 #### 一、SparkSkin介绍 ...综上所述,SparkSkin和Skin是Flex 4中非常重要的概念,它们提供了强大的工具来定制UI组件的外观。通过理解和掌握这些技术,可以显著提升应用程序的用户体验。
2. **Spark Skin**:Spark皮肤是Flex 4引入的新概念,支持更灵活的组件外观定制,它基于组件的状态来改变皮肤的显示。 3. ** Halo Skin**:Halo皮肤是Flex 3时代的皮肤体系,适用于较旧的组件,相对简单,但定制程度...
- SparkSkin是Adobe Flex 4 (Gumbo)框架中的一个关键类,用于自定义用户界面(UI)组件的外观。它提供了一种机制,允许开发者通过XML或者ActionScript对控件的外观进行高度定制。 - SparkSkin类位于`spark.skins`...
Flex Skinning机制是Adobe Flex框架中的一个重要特性,它允许开发者为UI组件自定义外观和行为,从而实现应用程序的独特设计和交互体验。通过深入理解并实践Flex Skinning,开发者可以更灵活地控制用户界面的视觉样式...
- 样式表(CSS)和皮肤类(Skin Class)可以独立于组件代码定义,实现外观的可复用和可扩展性。 7. **模块化开发**: - Flex支持模块化,可以将大型应用程序拆分为多个模块,按需加载,提高启动速度。 - Module ...
Spark皮肤机制为开发者提供了高度定制化的界面设计能力,不仅可以改变组件的外观,还能根据组件的不同状态动态调整界面元素。通过遵循上述的最佳实践,开发者可以更加高效地开发出既美观又功能强大的用户界面。同时...
皮肤设计在ArcGIS Flex API中非常重要,它能够帮助用户定制UI的外观和感觉。 - **Spark框架**:Spark框架将视图(View)、模型(Model)和控制器(Controller)分离,提高了代码的复用性和维护性。 - **组件**:...
4. **Skinning**:Flex中的一种技术,允许开发者通过创建新的皮肤文件来自定义组件的外观。 #### 三、定制ScaleBar的步骤 ##### 1. 创建ScaleBarSkin.mxml文件 ScaleBar的外观定制主要通过创建一个新的皮肤文件来...
在ActionScript中,ItemRenderer是一种关键的组件,用于在数据驱动的UI组件中自定义数据项的显示方式。本教程将深入探讨如何创建和使用ActionScript自定义ItemRenderer,以及如何实现与上一个示例相同的效果。 首先...