- 浏览: 804940 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (360)
- Java (101)
- JPA/Hibernate (10)
- Spring (14)
- Flex/BlazeDS (37)
- Database (30)
- Lucene/Solr/Nutch (0)
- Maven/Ant (25)
- CXF/WebService (3)
- RPC/RMI/SOAP/WSDL (1)
- REST (6)
- TDD/BDD/JUnit (1)
- Servlet/JSP (2)
- AI/MachineLearning (3)
- Resource (1)
- 字符编码 (2)
- OOA/OOPS/UML (5)
- DesignPattern (8)
- 算法与数据结构 (11)
- Web&App Server (13)
- 并发&异步&无阻塞 (7)
- Entertainment (4)
- JavaScript/ExtJS (45)
- CodeStyle&Quality (1)
- svn/git/perforce (8)
- JSON (2)
- JavaScriptTesting (4)
- Others (6)
- RegularExpression (2)
- Linux/Windows (12)
- Protocal (2)
- Celebrities (1)
- Interview (1)
- 计算机语言 (1)
- English (2)
- Eclipse (5)
- TimeZone/时区 (1)
- Finance (1)
- 信息安全 (1)
- JMS/MQ (2)
- XSD/XML/DTD (3)
- Android (4)
- 投资 (3)
- Distribution (3)
- Excel (1)
最新评论
-
qdujunjie:
如果把m换成具体的数字,比如4或者5,会让读者更明白
m阶B树中“阶”的含义 -
java-admin:
不错,加油,多写点文章
关于Extjs的mixins和plugin -
xiehuaidong880827:
你好,我用sencha cmd打包完本地工程后,把app.js ...
ExtJS使用Sencha Cmd合并javascript文件为一个文件 -
KIWIFLY:
lwpan 写道inverse = "true&qu ...
Hibernate中什么时候使用inverse=true -
luedipiaofeng:
good
消除IE stop running this script弹出框
Flex3里面如果要自定义组件,一般首先继承一个flex3中的已有组件,然后覆盖createChildren方法,并在里面实例化你自己的东西。但是Flex4中的spark组件就有些不同了,因为spark组件把逻辑和皮肤分别放在不同的类里面,如Panel,你会发现有一个PanelSkin与之对应。
那么在Flex4中如何自定义自己的组件呢? 按如下步骤:
1)New 一个Mx Skin类并继承你需要的类,比如我的为MyPanelSkin继承自PanelSkin,Flash builder里面提供了new Mx Skin的选项,完成本步骤后,你会发行MyPanelSkin里面已经有PanelSkin里的所有代码了,现在你可以通过可视化或这代码来修改你的皮肤,比如给panel的顶部的右边加上一个最大化按钮,等等,你可以加你所需要的东西
2)在MyPanelSkin里给你的组件添加一个id
比如我将Spark Panel 里原来的titleDisplay改成了如下形式,即添加了自定义的东西
3)new 一个MyPanel继承自Spark Panel,并且在里面添加属性,属性名字与MyPanelSkin的id的值保持一致,这一点非常重要,一定要取一样的名字,
并且要给这些变量加上元数据,[SkinPart (required="false or true")],通过这些变量你就可以访问MyPanelSkin里面的元素了,当然必须完成第4步后,你才能访问。
4)按如下方式覆盖partAdd,在partAdd里面操作你的属性,你可以为这些属性所代表的组件添加事件监听器,或者赋初始值。
那么在Flex4中如何自定义自己的组件呢? 按如下步骤:
1)New 一个Mx Skin类并继承你需要的类,比如我的为MyPanelSkin继承自PanelSkin,Flash builder里面提供了new Mx Skin的选项,完成本步骤后,你会发行MyPanelSkin里面已经有PanelSkin里的所有代码了,现在你可以通过可视化或这代码来修改你的皮肤,比如给panel的顶部的右边加上一个最大化按钮,等等,你可以加你所需要的东西
2)在MyPanelSkin里给你的组件添加一个id
比如我将Spark Panel 里原来的titleDisplay改成了如下形式,即添加了自定义的东西
<!-- layer 3: text --> <!--- @copy spark.components.Panel#titleDisplay --> <s:VGroup height="100%" width="100%"> <s:HGroup width="100%" horizontalAlign="center"> <s:Label id="titleDisplay" maxDisplayedLines="1" fontSize="18" fontFamily="宋体" left="9" right="3" top="1" bottom="0" minHeight="30" verticalAlign="middle" textAlign="start" fontWeight="bold"> </s:Label> </s:HGroup> <s:Spacer height="5"/> <s:HGroup width="100%" verticalAlign="middle"> <mx:LinkButton id="btnPreviousDay" label="前一天" fontFamily="宋体"/> <s:HGroup width="100%" horizontalAlign="center"> <s:ComboBox id="comboBoxMonth" width="60"/> <s:VGroup paddingTop="3"> <mx:Label text="月" fontFamily="宋体"/> </s:VGroup> <s:ComboBox id="comboBoxDay" width="60"/> <s:VGroup paddingTop="3"> <mx:Label text="日" fontFamily="宋体"/> </s:VGroup> <s:Spacer width="3"/> <s:Button id="searchBtn" label="查看" fontFamily="宋体"/> <s:Button id="backBtn" label="返回" fontFamily="宋体"/> </s:HGroup> <mx:LinkButton id="btnNextDay" label="后一天" fontFamily="宋体"/> </s:HGroup> <s:Spacer height="2"/> </s:VGroup>
3)new 一个MyPanel继承自Spark Panel,并且在里面添加属性,属性名字与MyPanelSkin的id的值保持一致,这一点非常重要,一定要取一样的名字,
并且要给这些变量加上元数据,[SkinPart (required="false or true")],通过这些变量你就可以访问MyPanelSkin里面的元素了,当然必须完成第4步后,你才能访问。
4)按如下方式覆盖partAdd,在partAdd里面操作你的属性,你可以为这些属性所代表的组件添加事件监听器,或者赋初始值。
package view.component { import mx.collections.ArrayCollection; import spark.components.ComboBox; import spark.components.Panel; public class MyPanel extends Panel { public function MyPanel() { super(); } [SkinPart (required="false")] public var comboBoxMonth:ComboBox [SkinPart (required="false")] public var comboBoxDay:ComboBox override protected function partAdded(partName:String, instance:Object):void { super.partAdded(partName, instance); var monthProvider:ArrayCollection=new ArrayCollection(); var dayProvider:ArrayCollection=new ArrayCollection(); for(var i:int=1;i<=12;i++){ monthProvider.addItem(i); } for(var j:int=1;j<=31;j++){ dayProvider.addItem(j); } if (instance == comboBoxMonth) { comboBoxMonth.dataProvider=monthProvider; }else if(instance==comboBoxDay){ comboBoxDay.dataProvider=dayProvider; } } } }
发表评论
-
Panel高度为0但里面的组件依旧显示
2013-04-24 14:34 1119解决办法: 把Panel中的内容组件用<s:Scroll ... -
约束布局constraint layout
2013-03-01 14:02 1861约束布局constraint layout要点: 1)只有支持 ... -
根据屏幕分辨率动态调整组件大小
2013-02-22 17:34 1558将代码写在组件的preInitialize事件监听器里面 简化 ... -
设置Flex组件的尺寸大小
2013-02-21 16:17 1579深红色部分标明了需注意的地方 另外要注意组件和容器的生命周 ... -
Flex minWidth minHeight
2013-02-04 16:17 1564minWidth 这个值并不是给组件自己用的,而是给组件的父容 ... -
ActionScript遍历绑定(BindProperty,BindSetter,ChangeWatcher)
2013-02-01 10:11 2503注意: 为防止内存益处,记得调用watcherInstance ... -
Flex程序适应不同屏幕尺寸和分辨率(滚动条)
2013-01-31 15:02 9873FlashBuilder编译后自动生成的xx.html里面定义 ... -
FlexContext, FlexClient,FlexSession
2013-01-15 15:05 2426使用了BlazeDS后,可以从FlexContext中获取一系 ... -
防止RemoteObject批处理AMF消息
2013-01-14 17:01 1321问题描述: 如果你在短时内调用同一个java对象上的两个方法, ... -
自动检测http和https的RemoteObject
2013-01-13 10:30 1823package { import util.Bro ... -
flex浏览器相关辅组类
2012-12-06 13:39 1285package util { import flash. ... -
Flex可变参数带来的问题
2012-12-06 13:34 1529当你在flex的方法中用了可变参数后,你会发现这些参数传到ja ... -
flex如何通过类名称实例化对象
2012-11-30 13:52 2774Getting the class from an objec ... -
flexlib的treeGrid用法
2012-11-30 13:46 1327为了使用treeGrid,通常你需要定义自己的DataDesc ... -
自定义flex tree的DataDescriptor
2012-11-30 13:42 1447public class EnvironmentDataDes ... -
关于Boolean类型在flex与java中间传递的问题
2012-11-30 13:38 1289/** *为简化,只列举两个字段 */ publi ... -
给Flex的Tree赋值方式(XML和ArrayCollection)
2012-11-30 09:33 40621)方式一,mxml内嵌xml数据赋值方式,Embedded ... -
Custom Alert
2012-11-26 19:21 0<?xml version="1.0&qu ... -
Flex服务端分页
2012-11-14 17:00 1089Structure: model event ... -
Flex可携带数据的Aler组件(DataCarriableAlert)
2012-11-14 16:52 1368package component.alert { ...
相关推荐
Flex4采用了全新的Spark组件架构,与之前的Flex3(Halo组件架构)相比有了很大的改进。Spark架构采用了更为现代的设计模式,如MVC(Model-View-Controller)模式,这使得组件更加模块化、易于维护,并提高了整体性能...
在Flex 4.5中,开发者需要了解ActionScript 3.0和MXML的基础知识,以及如何使用Spark组件模型来创建组件。自定义组件的前提条件通常包括对Flex SDK的熟悉,对面向对象编程的理解,以及对组件生命周期、样式和事件...
1. **创建ActionScript类**:首先,你需要创建一个继承自Flex组件基类的ActionScript类,如`spark.components.supportClasses.UIComponent`或`mx.core.UIComponent`。这些基类提供了组件的基本结构和生命周期方法。 ...
通过深入理解Spark组件模型和皮肤机制,我们可以创建出满足各种设计需求的自定义组件,提升应用的视觉效果和用户体验。在实际项目中,还应考虑组件的可扩展性、复用性和性能优化,以实现高效且美观的Flex4应用。
- 如果在自定义皮肤中使用了MX组件,可能与Flex4的Spark组件不兼容。因此,描述中提到的“请自己把所有mx组件改成sp组件”,是为了确保在Flex4环境中正确运行。 6. **压缩包内容分析** - 压缩包中的"src"目录可能...
在Flex中,自定义组件是开发者根据项目需求创建的特殊UI元素,可以扩展和定制标准的MX或Spark组件。本示例着重于一个名为“ImageViewer”的自定义组件,这通常是一个用于展示图像并可能包含缩放、平移等交互功能的...
学习如何使用和自定义Spark组件是提升Flex4应用质量的关键。 4. Flex Builder或Flash Builder:这些是Adobe提供的集成开发环境(IDE),用于编写、调试和部署Flex应用。熟悉这些工具的使用能提高开发效率。 5. ...
资料中可能包含如何创建和自定义Spark组件的教程。 4. **States和Effects**:Flex 4允许开发者轻松管理应用程序的不同状态,如视图状态,以及添加过渡效果。这部分内容可能解释了如何使用states和effects来实现动态...
在Flex4中,自定义组件皮肤是提升应用界面美观度和用户体验的重要手段。Flex4引入了全新的皮肤架构,使得开发者可以更加灵活地控制组件的外观和交互效果。本篇文章将围绕Flex4自定义组件皮肤进行深入讲解,并结合...
3. **封装组件**:将设计和行为组合成一个可重用的组件类,通常继承自Flex的基础UI组件,如`MX:TextInput`或`Spark:TextInput`。 4. **测试和调试**:在Flash或Flex模拟器中测试组件,确保其在不同情况下的行为正确...
1. 组件创建:首先,你需要创建一个新的ActionScript类,继承自Flex的基础组件类,如Spark的SkinnableComponent或MX的Canvas。 2. 组件属性:定义组件的属性,用于设置和获取组件的状态,例如在登录组件中,可能有...
首先,Spark组件集是Flex4的核心特性之一,它提供了一套完全重写且优化的UI组件,相比以前的 Halo 组件,Spark组件在样式、性能和可定制性上有了显著提升。Spark组件的设计理念是组件化和模块化,使得开发者能够更...
Spark Skin主要是针对Spark组件库中的组件设计的,Spark组件库是Flex 4引入的一个新组件集合,它提供了更现代、更轻量级的界面元素。 标题"spark skins"直接指向了我们讨论的主题,即Spark组件的皮肤。这些皮肤文件...
在实际应用中,Spark Streaming允许用户自定义复杂的数据流处理逻辑,包括但不限于映射、过滤、聚合、连接等操作。高级数据源的使用涉及到特定的数据源库,比如TwitterUtils和KafkaUtils,它们提供了一种简便的方式...
Spark-JDBCRDD 源码及自定义 JDBCRDD 的分区策略 Spark-JDBCRDD 是 Apache Spark 中的一个重要组件,它提供了将关系型数据库中的数据加载到 Spark 中的能力。JDBCRDD 的核心思想是将数据库中的数据分区,并将每个...
- `conf/`:存放配置文件,如`spark-defaults.conf`,用户可以在此自定义Spark的默认配置。 - `jars/`:包含Spark运行所需的JAR文件。 - `lib/`:包含Spark的依赖库。 - `python/`:Python相关的源码和库,支持...
"精讲Flex4组件开发"的主题深入探讨了Flex4中的组件开发技术,特别是聚焦于Spark组件架构,这是Flex4中引入的一种新的组件模型,旨在提高性能和可扩展性。 Spark组件架构是Flex4中的核心特性之一,它与之前的MX组件...
《Spark编程核心组件:spark-assembly-1.5.2-hadoop2.6.0.jar详解》 在大数据处理领域,Spark以其高效、易用和灵活性脱颖而出,成为了许多开发者的首选框架。Spark-assembly-1.5.2-hadoop2.6.0.jar是Spark中的一个...
- 加载自定义词典到Spark集群,这可以通过Spark的HDFS接口实现,或者在启动Spark时指定词典路径。 - 对于文本数据,可以使用Spark DataFrame或RDD进行操作,调用UDF进行分词处理。 - 结果可以进一步存储到HDFS、...
Flex 4引入了Spark组件模型,与之前的 Halo组件模型相比,它提供了更强大的样式和皮肤ning能力。这意味着我们可以更容易地改变组件的外观和行为,这正是自定义Alert的核心所在。 1. **自定义组件创建**: - 首先,...