- 浏览: 591250 次
文章分类
- 全部博客 (174)
- Core Java 学习 (6)
- Hibernate 学习 (3)
- Struts 学习 (3)
- Spring 学习 (9)
- EJB 学习 (0)
- 设计模式 (0)
- Oracle 学习 (6)
- JRuby (0)
- PHP (18)
- MySql (7)
- Apache (6)
- Informix (2)
- JSTL (1)
- CSS+HTML (8)
- Ajax (2)
- javaScript (16)
- reverse Ajax (1)
- Discuz (7)
- 网站 (11)
- SEO (5)
- Linux (4)
- ecshop (1)
- 电子商务 (1)
- 文档在线浏览 (18)
- 服务器技术 (10)
- flex (17)
- 用户体验 (1)
- java (1)
- flex+blazeDS (1)
- tomcat (1)
- 开发管理 (1)
最新评论
-
niaoqq1:
真坑爹,全是中文字符,复制全部报错!
<c:forEach 详解 -
jhys7s8jd:
pdf打印机下载http://www.onlinedown.n ...
命令行下转换word文档成PDF -
海豚12315:
flashPaper读取磁盘上的文件路径,
最好是放到某个系统 ...
在线文档阅读实现的解决方案 -
八月约克:
火狐不支持这个东东
Scripting.Dictionary的使用 -
longgol:
有一问:怎么通过flashPaper读取磁盘上的文件路径呢。我 ...
在线文档阅读实现的解决方案
这个问题一直有很多人问,我们能不能够去更换Flex中默认组件的外观,答案是可以的。我们可以使用CSS和FLASH软件来制作并更换程序中的组 件外观。这里我们就制作一篇简单易懂的教程来向大家讲解如何制作并替换Flex原有组件的外观样式。
网上也有类似的教程,我这篇不一定写的比其他的教程好,但是我们的教程绝对属于原创,并结合了作者的心得体会,力求独一无二。如果大家要转载本篇文章,请 注明文章来源。
好了,废话不多说,我们直接进入正题。首先我们要知道在FLEX中是什么控制组件的样式。答案是CSS。这个CSS和我们网页中的CSS不太一样。它可是 为FLEX专门设计的一种语言规范,所以写起来也不太一样。知道了是什么控制组件的格式之后我们就要来了解一下CSS是怎样工作的。实际上在FLEX编译 的时候会调用一个外部SWF文件的库文件。也就是说,我们的新组件外观都存放在这个外部的SWF文件的库中。这样当编译器编译时就会将资源调用,从而打到 改变皮肤的目的。
说到SWF文件,并且需要美工设计时,选择FLASH这个软件是最合适不过了。好了,我们打开FLASH软件,现在我们来制作皮肤外观。
新建一个元件,将它的属性设置为影片剪辑,具体设置请看下图:
然后我们再去绘制这个按钮外观,我们绘制一个简单的外观:
请注意,大家要调好九宫格的位置,因为位置一旦设定,在FLEX中就不能进行更改了。好了我们在FLASH中绘制的工作就完成了,接下来我们将这个FLA 文件保存,并发布。当然你保存到哪里都可以,发布的SWF文件要和CSS处于统一文件夹下。这里我们来看一下我的FLA文件存储路径。
大家看,我将FLA文件也存储到了style文件夹下,这样便于文件的寻找。生成的SWF文件和CSS文件在一起,大家应该看到了。到现在大家的文件中应 该没有CSS文件,所以我们要创建一个CSS格式文件。如何新建CSS文件呢?我们可以在style文件夹单击右键,创建一个CSS文件。
新建CSS文件后,我们就要对CSS文件进行编辑。CSS文件名称要定义成style.css。然后我们新建一个BUTTON外观。
点击一下这个蓝色的按钮,弹出一个对话框:
这样设置以后,我们就可以看到一个CSS文件,如图:
这8个按钮外观就是按钮的8中状态的默认皮肤,我们可以对每一种皮肤进行替换,在这篇教程中,我们仅以鼠标抬起和鼠标按下状态进行演示,其他的大家可以自 行实验。我们切换到代码设计面板,添加代码如下:
Button
{
color:#AAAAAA;
upSkin:Embed(source="skin.swf" ,symbol="up_pifu");
downSkin:Embed(source="skin.swf",symbol="down_pifu");
}
这段代码就是调用我们自定义的皮肤,我们看upSkin是指按钮弹起状态,Embed是调用外部资源。source="skin.swf" ,symbol="up_pifu"他的函数是指定我们要替换的资源。好了写完这段语句我们在回到视图设计面板来看一下效果。这里请大家注意,这段代码一 定要手动输入,如果您是直接复制我们的代码,将会导致编译错误。
我们可以看到,按钮的外观已经被更改了。那么如何将我们的CSS文件关联到主程序中呢?我们先来将这些文件保存,确保编译没有错误。然后回到MXML文件 中,在代码视图中添加代码如下:
<mx:Style source="style/style.css"/>
这样再保存文件,你的组件外观就被更改了,我们来看一下运行效果吧!
可以看到虽然按钮的大小改变了,但是按钮的外观也跟随伸缩,这是因为我们设置了九宫格。好了!以上就是皮肤的制作方法。如果您对自己制作的皮肤不满意,也 可以到一些网站上去下载现成的皮肤使用,这里我们推荐一个网站,这个网站的皮肤使用起来还有外观上都还不错!http://www.scalenine.com/
第二部分 ActionScript自定义按钮皮肤
转自http://toromio1987.spaces.live.com/Blog/cns!84F20CD1D80F1B38!348.entry?wa=wsignin1.0&sa=525654097
//首先在类里面定义css:
<code>
var skin:Class;
//然后就可以通过setStyle的方法来放皮肤了,想要什么,那就多定义一些css吧:)
private function changeSkin():void{
var button:Button = new Button();
button.graphics.clear();
button.setStyle("upSkin", skin);
button.setStyle("downSkin", skin);
button.setStyle("overSkin", skin);
this.addChild(button);
}
</code>
import mx .controls .LinkButton ;
[ Style ( name = "toggleBackgroundColor" , type = "uint" ,format = "Color" , inherit = "yes" )]
public class CustomLinkButton2 extends LinkButton {
public function CustomLinkButton2 () {
super () ;
}
override public function set enabled ( value : Boolean ) : void {
super .enabled = value ;
useHandCursor = value ;
}
}
}
package skins { import mx .skins .halo .LinkButtonSkin ; import mx .styles .StyleManager ; public class CustomLinkButtonSkin1 extends LinkButtonSkin { public function CustomLinkButtonSkin1 () { super () ; } override protected function updateDisplayList ( w : Number , h : Number ) : void { super .updateDisplayList ( w , h ) ; // Inherited styles var cornerRadius : Number = getStyle ( "cornerRadius" ) ; var rollOverColor : uint = getStyle ( "rollOverColor" ) ; var selectionColor : uint = getStyle ( "selectionColor" ) ; // Custom styles var toggleBackgroundColor : uint = getStyle ( "toggleBackgroundColor" ) || getStyle ( "themeColor" ) ; graphics .clear () ; switch ( name ) { case "upSkin" : // Draw invisible shape so we have a hit area. drawRoundRect ( 0, /* x */ 0, /* y */ w , /* width */ h , /* height */ cornerRadius , /* cornerRadius */ 0, /* color */ 0.0 /* alpha */ ) ; break ; case "selectedUpSkin" : case "selectedOverSkin" : drawRoundRect ( 0, 0, w , h , cornerRadius , toggleBackgroundColor , 1.0) ; break ; case "overSkin" : drawRoundRect ( 0, 0, w , h , cornerRadius , rollOverColor , 1.0) ; break ; case "selectedDownSkin" : case "downSkin" : drawRoundRect ( 0, 0, w , h , cornerRadius , selectionColor , 1.0) ; break ; case "selectedDisabledSkin" : // Draw 20% alpha shape so we have a hit area. drawRoundRect ( 0, 0, w , h , cornerRadius , toggleBackgroundColor , 0.2) ; break ; case "disabledSkin" : // Draw invisible shape so we have a hit area. drawRoundRect ( 0, 0, w , h , cornerRadius , 0, 0.0) ; break ; } } } }
comps:CustomLinkButton1 id="
linkButtonMXML
"
label="
LinkButton (MXML)
"
toggle="
true
"
enabled="
{
checkBox
.selected
}
"
skin="
skins.CustomLinkButtonSkin1
"
rollOverColor="
red
"
selectionColor="
haloOrange
"
toggleBackgroundColor="
yellow
"
/>
第四部分 我只是把第二和第三部分合并到一起
在代码中修改skin方法 先是继承修改了 rollover所应该显示的效果 然后在actionscript中创建了一个效果类
使linkbutton的效果改变。
有些方法是需要类来“充值”的
发表评论
-
命令行下转换word文档成PDF
2011-06-10 23:26 5291命令行的好处是如果有很多文档要处理的话比较省事。 两个方 ... -
SWFTOOLS PDF2SWF 参数详解
2011-06-10 09:55 8648SWFTools提供了一系列将各种文件转成swf的工具: ... -
如何做自定义Loading加载其它swf
2011-05-30 06:55 1057const FILE_PATH:String="ma ... -
在Flex4中要写一个Skin类,将它赋给button的skinClass属性
2011-05-28 16:18 1825<?xml version="1.0" ... -
通过ByteArray加密SWF或图像
2011-04-08 01:27 2098不知道有没有人发过类似的文章,希望能听到大家的想法 假如你有 ... -
swf 加密:采用byteArray 方式,增加字符串加密,可加密大文件swf
2011-04-08 00:40 2818什么都不说:先把工 ... -
AIR Loader loadbytes实现load 远程 swf
2011-04-07 23:00 1620<?xml version="1.0" ... -
大话Loader.loadBytes[渐进式加载]
2011-04-07 22:57 2763第一话:加载Base64 encoded string ... -
如何保护swf文件,加密代码(译)
2011-04-07 21:34 1747在我的培训课程中我常常被问到有关保护SWF影片的问题。这里有两 ... -
Flex Label组件扩展边框与背景
2011-04-01 23:46 2037由于Label控件没有borderStyle属性,也就是它不支 ... -
Flex 本地 post数据 编译时 加参数 --use-network=false
2011-03-30 15:49 1160Flex 本地 post数据 编译时 加参数 --use-n ... -
Flash Builder4 慎用Network Monitor 防止http出现localhost:37813错误
2011-03-30 13:44 1587前不久好奇开了Network Monitor(网络监视器),结 ... -
Zend AMF Server 的使用笔记
2011-03-25 20:23 1324Zend_Amf是Zend Framework 1.7+的 ... -
类似豆丁网、百度文库的开源文档播放器源码下载及实现
2011-03-21 10:48 4183播放器及组件下载地址:http://code.google.c ... -
FlexPaper logo 在线文档显示组件 FlexPaper
2011-03-18 15:09 2307FlexPaper 是一个开源轻量级的在浏览器上显示各种 ... -
Discuz!x1.5实现在线文档(doc、ppt、pdf)播放
2011-03-18 15:05 2937实现在线文档(doc、ppt ... -
在线文档阅读实现的解决方案
2011-03-18 15:03 37441。 文档上传,自己解决。 2. 文档转换: 分为两步, ...
相关推荐
在Flex开发中,LinkButton控件是一个常用的交互元素,它结合了链接的样式和按钮的功能。当我们想要在用户点击LinkButton时改变其颜色,以提供更明显的反馈,可以通过自定义样式和事件处理来实现这一需求。下面将详细...
此外,`LinkButton`的`htmlText`属性允许我们插入HTML标记,这使得我们可以进一步自定义按钮的显示内容。例如,添加粗体和斜体效果: ```xml <mx:LinkButton id="myLinkButton" label="<b><i>点击我</i></b>" ...
在Adobe Flex技术中,LinkButton是Spark组件集中用于创建链接样式的按钮控件。它允许用户通过点击触发某些事件。然而,Flex并没有提供直接的属性来设置LinkButton的背景色。当需要自定义LinkButton的外观时,可以...
文件“O_LinkButton.as”可能是Flex组件的一个示例,展示了如何自定义链接按钮的行为或外观。在Flex中,开发者经常需要扩展基础组件以满足特定需求,这个文件可能就是这样的一个例子。 总的来说,掌握这些工具和...
### Flex 3 组件实例与应用(2009版) #### 一、概述 《Flex 3 组件实例与应用》是一本针对初学者学习Adobe Flex 3框架及其组件的指南书籍。这本书由作者Dason编写,内容覆盖了Flex 3中的多种组件及其用法,并通过...
### Flex控件详解 #### 一、概述 在Flex开发中,控件是构建界面的基础元素,通过不同的控件组合可以实现丰富的用户交互界面。本文将详细介绍几个常用的Flex控件,包括它们的基本功能、用途以及如何使用这些控件来...
Flex开发技巧集是一系列关于使用Flex进行开发时的实用技巧,可以帮助开发者提高效率,优化用户体验。以下是基于给定内容的一些重要知识点的详细说明: 1. **去除或改变Alert的模糊效果**:通过设置Panel的`...
《Flex 3 组件实例与应用(2009版)》是一本深入解析Adobe Flex 3框架下组件使用与实践的专业书籍。本书由Dason精心整理于2009年2月,全面覆盖了Flex 3中的各种控件、容器、数据可视化组件以及效果、视图状态和过渡...
- **LinkButton**: 链接样式的按钮。 - **PopUpButton**: 弹出菜单按钮,点击后可显示下拉菜单。 - **RadioButton**: 单选按钮,通常用于同一组中只能选择一个项的场景。 - **RadioButtonGroup**: 管理一组单选按钮...