Flex程序实现背景贴图的两种方式 Two ways to implement sexy background/border for containers
来源:互联网 发布:怎么样查淘宝消费总额 编辑:程序博客网 时间:2024/06/03 19:41
Flex有着对CSS很好的支持,使得我们有更多的选择来进行背景贴图的操作。从而使程序变得更吸引人。在这里写下我常用得两个方法。
1. CSS法
CSS贴图方法,是在CSS的样式代码中,填入要做背景图片的路径。然后在AS3代码,或者MXML标签中去引用定义好的样式。
下面这段CSS代码利用的九宫格的原理来拉深背景图片 background.png,对背景进行了设置。
.loginWindow{
background-image: Embed("/assets/background.png",
scaleGridLeft="10",
scaleGridRight="300",
scaleGridTop="20",
scaleGridBottom="400");
background-size: "100%";
}
我们在AS3代码,或者MXML标签中再去引用这个样式,就会改变默认的背景去我们这个background.png图片。
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="370" height="222" styleName="loginWindow">
2. AS3代码法
package com.chestnut.view
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import mx.skins.RectangularBorder;
public class MetalBackground extends RectangularBorder
{
[Embed(source='./assets/background.png')]
private var backgroundImageClass:Class;
private var backgroundBitmapData:BitmapData;
public function MetalBackground()
{
super();
var backgroundImage:Bitmap = new backgroundImageClass();
backgroundBitmapData = new BitmapData(backgroundImage.width,backgroundImage.height);
backgroundBitmapData.draw(backgroundImage);
}
override protected function updateDisplayList(unscaledWidth:Number,unscaledHeight:Number ):void
{
super.updateDisplayList(unscaledWidth,unscaledHeight );
var cornerRadius:Number = getStyle("cornerRadius");
graphics.clear();
graphics.beginBitmapFill( backgroundBitmapData );
graphics.drawRoundRectComplex(0,0,unscaledWidth,unscaledHeight,cornerRadius,cornerRadius,cornerRadius,cornerRadius );
graphics.endFill();
}
}
}
这里,我们定义了一个可以用作borderSkin的类,之后我们在MXML中引用,如下
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="800" height="600" borderSkin="com.chestnut.view.MetalBackground">
也可以达到和CSS方法同样的效果。
但是我们可以看出区别,
1. CSS方法背景的边框,阴影的效果,要在绘图软件里面做好。而代码法不用,其背景图可以是很小的一个图片。边框,阴影效果可以用代码来实现。
2. CSS的方法要遵循九宫格拉深的原理,而代码法就不用。代码法有点像网页中的repeat-x, repeat-y的原理,这个方法不会拉伸原图。
3. 代码法实现的时候,如其名,代码量稍微多些。
- Flex程序实现背景贴图的两种方式 Two ways to implement sexy background/border for containers
- MFC 实现对话框 背景贴图的几种方式
- Opencv贴图的两种方式
- css 使用background背景实现border边框效果
- for循环的两种实现方式
- Flex Builder Part 1 - Two Ways To Install
- 视图背景颜色渐变的两种实现方式
- arcgis api for flex 两种鹰眼的实现方法
- Two ways to get HtmlTextWriter for HTML rendering
- html 背景透明的两种方式
- Flex读取XML的两种方式
- Flex CheckBox Tree 的两种方式
- XML TO ArrayCollection 两种实现方式
- Two ways to unlock iphone4
- Flex tree项目行上加toolTip提示(两种实现方式)
- Flex tree项目行上加toolTip提示(两种实现方式)
- Flex开发中实现程序多语言的两篇文章
- css3新特性之border,background和背景渐变
- 打算写一个ASM集成开发环境
- 手动操作servlet,给大伙献个丑
- C++多态技术
- Apache绿色版|MySQL绿色版
- 数据结构学习计划: 序
- Flex程序实现背景贴图的两种方式 Two ways to implement sexy background/border for containers
- 抽象工厂模式-与-工厂方法模式区别
- ISAG和ISMP
- 学习严蔚敏数据结构: 第一集
- 追讨圆明园文物:虽败犹荣还是哗众取宠?
- 初入Ubuntu
- To find the differences between 2 Excel sheets in the same file
- 苏格拉底三段论
- 赛味轩烧烤王创造出国内首家烧烤主题餐厅