AIR/Flex学习笔记(5)

上一篇我们将一个应用程序的皮肤风格改造成了spark风格,界面变得非常漂亮。但是如果我们想开发自定义的皮肤风格应该怎么做呢?这篇文章我们来探讨一下这个问题。


    我们先来看看spark是怎样定义皮肤风格的。打开我们上篇用过的PhotoGallery例程的PhotoGallery.mxml文件,我们可以看到WindowedApplication的skinClass属性值为“spark.skins.spark.SparkChromeWindowedApplicationSkin”,那么这个SparkChromeWindowedApplicationSkin源文件在哪呢?找到你安装Flash Builder 4的文件夹,然后按.\sdks\4.0.0\frameworks\projects\airspark\src\spark\skins\spark路径就可以找到“SparkChromeWindowedApplicationSkin.mxml”这个源文件了。(注:我安装的版本是“Adobe Flash Builder 4 Premium (Build 272416)”,如果版本不同路径可能会有所变化!)Flex工程是将.\sdks\4.0.0\frameworks\projects\airspark\src\这个路径默认作为src路径的,同样的还有projects下的其他文件夹路径。
    
    Flex4的spark skin架构是一套完整的模型,将可视化组件的行为逻辑和外观完全分开,使开发者可以非常方便地自定义各种组件的皮肤风格和布局。一般情况下,组件的行为逻辑将被定义在ActionScript文件中,而外观皮肤将被定义在MXML文件中,spark皮肤框架将他们结合起来组成一个完整的可视化组件。关于这部分的完整介绍请参考官方文档:Spark Skinning,关于组件类和外观类之间的结合规则请搜索关键词“skinning contract”。另外可以参考这篇中文文章:介绍 Flex 4 beta 中的外观设计。

    我们打开SparkChromeWindowedApplicationSkin.mxml文件,可以看到SparkChromeWindowedApplicationSkin继承自SparkSkin类。SparkSkin类继承自Group,是所有spark外观的基类,也就是说该类是一个spark外观组件容器类(非常贴合WindowedApplication的概念)。代码中值得注意的还有这一段:

AIR/Flex学习笔记(5)


    “HostComponent”标签指定了该skin是用于哪个类型的组件的,即指定了宿主的类型;同时通过这个标签就可以直接访问宿主的style属性等设定值了。再下面可以看到如下代码:

AIR/Flex学习笔记(5)


    “states”标签定义了这个组件的几种外观状态,通过命名状态,并指定子组件在各状态中的外观形式,可以使组件外观切换更加方便灵活。关于states的文章很多,在此不多啰嗦,可以参考这篇:Working with States in Flex 4。

    在下面的代码就是对窗口外观的具体定义了,我们分析一下,如下图。

AIR/Flex学习笔记(5)




    通过上面的分析,我们已经了解了SparkChromeWindowedApplicationSkin.mxml文件的代码结构,自定义WindowedApplication的皮肤就变得简单了,步骤如下:
    1、将SparkChromeWindowedApplicationSkin.mxml文件复制到工程src\skins路径下,并重命名为“MyAppSkin.mxml”;
    2、在Flash Builder中打开此文件,对其中的代码做如下改变:
AIR/Flex学习笔记(5)
    我们将标题栏的高度增大到36像素,给窗口边框添加了圆角,并将边框颜色改为黑色,宽度改为2个像素;
    3、打开PhotoGallery.mxml代码,将皮肤风格改为“skinClass="skins.MyAppSkin"”;
    4、到Flash Builder安装目录的相对路径“\sdks\4.0.0\frameworks\projects\airspark\src\spark\skins\spark\windowChrome”下,将“TitleBarSkin.mxml”文件复制到工程src\skins路径;
    5、在Flash Builder中打开此文件,做如下修改:
AIR/Flex学习笔记(5)


    我们将标题栏的最小高度进行了修改,并改变了背景渐变色;
    6、再次打开MyAppSkin.mxml代码,做如下修改:


AIR/Flex学习笔记(5)

    我们指定标题栏的皮肤风格为我们修改过的TitileBarSkin类;
    7、保存运行,看看我们的成果吧。 
AIR/Flex学习笔记(5)
    
    总之,通过组件类和外观类的分离模型,我们可以重写外观,并利用组件的“skinClass”属性指定自定义的外观类,来完成任意组件的外观自定义。当然,我们也可以完全自定义组件逻辑和外观,那就是组件开发的内容了。这篇就到这,下一篇我们整理一下Flex4中spark框架的相关知识。
    
    PS. 我将本篇实例的源码导出了一个PhotoGallery.fxp文件,有需要的可以到 我的网络硬盘空间下载。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值