下面以Button组件为例,开始FLEX皮肤制作的入门。

简介: 下面以Button组件为例,开始FLEX皮肤制作的入门。     我们先在Flex Builder 3中新建一个项目FlexSkinTest 新建文件夹style,并在style文件夹下新建style.css文件: 双击打开style.css,切换到Design面板并新建一个样式: 选择Button组件:   按下OK后可以看到按钮的8种状态。

下面以Button组件为例,开始FLEX皮肤制作的入门。

 

 

我们先在Flex Builder 3中新建一个项目FlexSkinTest

img_5deaa68f848d349af965a0cc8700c2e2.jpg

新建文件夹style,并在style文件夹下新建style.css文件:

img_d4aa89acd7512b3c26ed9c7634eb63d3.jpg

双击打开style.css,切换到Design面板并新建一个样式:

img_b9c8035335e0436231543412268aa1a7.jpgimg_5819933056039ec605a748160d8c71c4.jpg

选择Button组件:

 

按下OK后可以看到按钮的8种状态。便于测试,我们把背景色调整为0×333333:

img_5819933056039ec605a748160d8c71c4.jpg

切换到Source面板调整字体样式:

  1. Button
  2. {
  3. color:#AAAAAA;/*Color*/
  4. textRollOverColor:#FFFFFF; /*text rolling over color*/
  5. textSelectedColor:#FFFFFF; /*SelectedColor*/
  6. disabledColor:#5A5A5A; /* disabledColor */
  7. fontWeight:normal; /*fontweight*/
  8. }

结果如下图:

img_a01012c4643f5642e30bd157a2808034.jpg

 

接下来的工作就是把按钮的8种状态用自定义的皮肤替换掉。

常用的实现方法有4种,我们将逐步介绍。

我们先学习KingnareStyle中Button组件皮肤的实现方法:将外部swf文件里的皮肤元件嵌入到组件样式文件中。

嵌入swf文件中的元件

首先在style文件夹下新建文件skin.fla,背景色同样设置为#333333。

CTRL+F8新建影片剪辑Button_upSkin,属性设置如下:

img_58abcfafe08ed69467623ba9787b9f18.jpg

这里最好启用9切片,以后嵌入FLEX样式时就不用进行9切片设置了。

关于9切片,可以参考下面图示(引自Flex Developer Center):

 

将舞台放大至400%,使用矩形工具画一个空心矩形,坐标为(0,0),厚度为1像素,高宽均为23像素,填充色为#FFFFFF,透明度10%

 

再新建一个层,用同样的方法在内部画一个空心矩形,坐标为(1,1),厚度1像素,高宽均为21像素,填充色为#000000,透明度60%

 

下面填充空白区。

新建一个层,画实心矩形,坐标为(2,2),高宽均为19像素,填充线性渐变色白色,透明度由10%至0%:

 

最后再加高亮框。新建一个层,画空心矩形,坐标为(2,2),厚度为1,高宽均为19像素,填充线性渐变色白色,透明度由8%至3%

 

至此,图形部分完成,再把9切片的线重新定位:

 

CTRL+ENTER发布程序。

Flash部分告一段落,回到FLEX的style.css中。切换到Source面板,在Button样式中加入下面语句:

  1. upSkin:Embed(source=”skin.swf”, symbol=”Button_upSkin”);

解释一下,upSkin,Button弹起状态皮肤。Embed语句,用于将外部资源嵌入程序中使用,本例中将skin.swf中的Button_upSkin元件嵌入到样式中。

保存后切换到Design面板,会发现up状态已经更新为我们刚才制作的元件了:

img_8cb581fb6a2f3d5e5e2230cdb01b2ad8.jpg

使用同样的方法来制作其他状态皮肤,要注意给元件赋合适的名字。最后CCS如下:

  1. Application
  2. {
  3. backgroundGradientAlphas: 1.0, 1.0;
  4. backgroundGradientColors: #333333, #333333;
  5. }
  6.  
  7. Button
  8. {
  9. color: #AAAAAA;
  10. textRollOverColor: #FFFFFF;
  11. textSelectedColor:#FFFFFF;
  12. disabledColor:#5A5A5A;
  13. fontWeight:normal;
  14. upSkin: Embed(source=”skin.swf”, symbol=”Button_upSkin”);
  15. overSkin: Embed(source=”skin.swf”, symbol=”Button_overSkin”);
  16. downSkin: Embed(source=”skin.swf”, symbol=”Button_downSkin”);
  17. disabledSkin: Embed(source=”skin.swf”, symbol=”Button_disabledSkin”);
  18. selectedUpSkin: Embed(source=’skin.swf’, symbol=’Button_selectedUpSkin’);
  19. selectedOverSkin: Embed(source=’skin.swf’, symbol=’Button_selectedOverSkin’);
  20. selectedDownSkin: Embed(source=’skin.swf’, symbol=’Button_selectedDownSkin’);
  21. selectedDisabledSkin: Embed(source=’skin.swf’, symbol=’Button_selectedDisabledSkin’);
  22. }

效果图:

 

接下来我们打开FlexSkinTest.mxml文件,切换到Source面板,

添加 <mx:Style source="style/style.css"/>

<mx:Button x="10" y="10" label="Button"/>

换到Design面板,可以看到新加的Button组件已经应用我们的样式了,也可以多拖几个Button到程序中并设置不同的大小,可以发现边缘并未因形变发生模糊,这是我们使用了9切片的结果。

 

可以说,我们的Button组件皮肤已经完工了。

使用Flex Skin Design Extensions for Flash CS3

我们再开始第二种皮肤制作方法。

先做准备活动:

从http://www.adobe.com/go/flex3_cs3_swfkit下载Flex Component Kit for Flash CS3。

从http://www.adobe.com/go/flex3_skinning下载Flex Skin Design Extensions for Flash CS3.安装后重启Flash CS3.

到http://livedocs.adobe.com/flex/3/skinning_extensions_flex3.pdf下载操作手册。

从上面地址中还可以看到有For Fireworks,For Photoshop等FLEX皮肤制作插件,我们可能在后续文章中介绍实现方法。

首先打开Flash CS3,CTRL+N新建文件,切换“新建文档”到“模板”面板,选择Flex Skins->Button,如下图:

img_636e26ecbe809be9bfa6356c9170550c.jpg

将文件命名为skintemplate.fla,背景色调整#333333。

新建成功后,可以看到舞台上的按钮元件。双击按钮元件进入编辑状态,或者在库中双击Button_skin元件。可看到如下图所示的时间轴:

img_c7a9ee50b546b1fb7129a43d8e9ed8fb.jpg

简略的介绍一下这些层的用途。

States:定义对应组件的每种状态时间线上的关键帧,如上图所示中的关键帧帧名

Transitions:定义组件状态切换时的过渡动画,默认为每种状态的最后两个关键帧为起始帧和终止帧,以up状态切换到over状态举例,Transitions层的up-over:start帧为起始帧,up-over:end帧为终止帧,可在art层中制作相应的过渡动画

Art:组件的图形部分

你会发现程序只生成了4种状态,通过前面的学习知道Button组件可以有8种状态,没关系,我们在disabled后面再加入4个状态(注意区分大小写):

img_3b0a648c256af7ccdaebf5a4375921d3.jpg

以selectedUp状态为例:

States层关键帧名为selectedUp.

Transitions层,在最后两帧增加down-selectedOver:start, down-selectedOver:start两个关键帧作为过渡动画的起始与终止帧.

将前面制作的skin.fla中的Button组件皮肤移植过来。

例如up状态的:

img_2d72ba5c5014a7fda558d0b4bdf67682.jpg

所有状态完成后,CTRL+ENTER发布程序,这时会生成skintemplate.swf和skintemplate.swc两个文件。

相关文章
|
存储 编解码 安全
现代IM系统中聊天消息的同步和存储方案探讨
本文原作者:木洛,阿里云高级技术专家,内容有删减和修订,感谢原作者。 1、前言 IM全称是『Instant Messaging』,中文名是即时通讯。在这个高度信息化的移动互联网时代,生活中IM类产品已经成为必备品,比较有名的如钉钉、微信、QQ等以IM为核心功能的产品。
5482 0
|
Java
如何获取第三方应用授权app_auth_token
一,说明    1.第三方应用文档:[url]https://docs.open.alipay.com/20160728150111277227/intro[/url]     2.作用:代替商户发起相关逻辑请求 二,配置    1.
5825 12
|
机器学习/深度学习 自动驾驶 算法
深度学习中的图像识别技术及其在自动驾驶中的应用
【10月更文挑战第4天】本文深入探讨了深度学习在图像识别领域的应用,并特别关注其在自动驾驶系统中的关键作用。文章首先介绍了深度学习的基本概念和工作原理,随后通过一个代码示例展示了如何利用深度学习进行图像分类。接着,文章详细讨论了图像识别技术在自动驾驶中的具体应用,包括物体检测、场景理解和决策制定等方面。最后,文章分析了当前自动驾驶技术面临的挑战和未来的发展趋势。
258 4
|
SQL 关系型数据库 分布式数据库
用Ganos低代码实现免切片遥感影像浏览
本文介绍了一种基于PolarDB兼容PostgreSQL 14的高效栅格数据管理和可视化方案。推荐配置包括4核CPU、16GB内存、50GB磁盘等。通过创建扩展并上传影像至OSS,利用SQL语句完成数据导入、镶嵌、匀色及金字塔构建。重点介绍了使用ST_AsTile函数动态生成标准瓦片的方法,支持多种格式和增强方式。前端通过Python实现服务接口,实现实时、高效的数据展示。此方案具有实时性强、存储成本低等优点,适合快速可视化大量栅格数据。
212 0
|
缓存 算法 搜索推荐
618省心凑背后的新算法——个性化凑单商品打包购推荐
作为购物导购链路的一个重要环节,凑单旨在快速帮助用户找到达成某个满减门槛(比如满300减50)的商品,完成性价比最高的跨店组合结算。
1209 0
618省心凑背后的新算法——个性化凑单商品打包购推荐
增强现实(AR)技术在文化遗产保护与传承中的应用创新
增强现实(AR)技术在文化遗产保护与传承中的应用创新
|
关系型数据库 Linux 数据处理
深入了解Linux命令gprof:数据处理和分析利器
gprof是Linux下的一款命令行工具,用于分析程序性能,找出代码瓶颈。它通过分析函数调用和执行时间,提供函数级别的性能报告和图形化展示。使用gprof需在编译时添加`-pg`选项,然后运行程序并用gprof生成报告。注意覆盖所有执行路径,并可与其他性能工具结合使用,以优化代码性能。
|
运维 Java 测试技术
车险自助理赔系统 毕业设计 JAVA+Vue+SpringBoot+MySQL(一)
车险自助理赔系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
376 0
|
存储 前端开发 JavaScript
Spring Boot + vue-element 开发个人博客项目实战教程(十六、登录功能实现(上))2
Spring Boot + vue-element 开发个人博客项目实战教程(十六、登录功能实现(上))2
376 0
|
计算机视觉 C++
使用 OpenCV 调整图像大小
使用 OpenCV 调整图像大小
863 0