`
sealbird
  • 浏览: 586310 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

[2011-04-19]Flex程序实现背景贴图的两种方式

    博客分类:
  • Flex
阅读更多
Flex程序实现背景贴图的两种方式 Two ways to implement sexy background/border for containers
六, 08/02/2008 - 00:14 — lw0110 
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. 代码法实现的时候,如其名,代码量稍微多谢。
分享到:
评论
1 楼 zhong_pro 2011-12-05  
LZ是不是还有一种使用spark的fill,设置
<s:backgroundFill>  
			<s:BitmapFill  id="bgMain" fillMode="scale" source="@Embed('assets/bg2.jpg')"/> 
		</s:backgroundFill>

相关推荐

    微信小程序-微信小程序的Flex布局demo

    wxflex 微信小程序的Flex布局demo-4种必备常用的Flex布局模式 微信小程序开发论坛 垂直微信小程序开发交流社区:http://weappdev.com 官方建议的Flex布局 &gt; Flex的布局相比传统的float布局来... align-self: flex-end;

    DRCMusic-9-25-0-19.rar_flex

    7. **MXML和ActionScript混合编程**:Flex应用程序可以使用MXML和ActionScript两种语言编写。MXML是一种声明式语言,常用于创建用户界面,而ActionScript是脚本语言,用于处理逻辑和控制流程。 8. **跨平台支持**:...

    AEC-Q102-002:2020 Board Flex Test(电路板柔性测试 )- 完整英文电子版(5页)

    完整英文电子版AEC-Q102-002:2020 Board Flex Test - (电路板柔性测试)。本规范建立了确定表面贴装光电元件承受印刷电路板在搬运和组装过程中产生的弯曲、弯曲和拉力的能力的程序和标准。

    arcgis-viewer-builder-flex-3.6-src.zip

    这个名为“arcgis-viewer-builder-flex-3.6-src.zip”的压缩包包含了该版本的源代码,对于深入理解和自定义开发ArcGIS应用程序具有极高的价值。 1. **FlexViewer 3.6概述** FlexViewer是Esri公司推出的一个开源...

    flex-messaging-core.jar

    总的来说,flex-messaging-core.jar是构建分布式Flex应用程序的基础,它为开发者提供了高效的远程通信能力,是实现Flex应用与后端服务器深度集成的关键组件。了解并熟练掌握其工作原理对于开发高效、可靠的Flex应用...

    flex-messaging-core-4.7.3.jar

    flex-messaging-core-4.7.3.jar 最新版,下载了好长时间才下载下来,亲测可用!

    FlexLayout布局-wechat-app-flexlayout-master

    FlexLayout布局是微信小程序开发中常用的一种布局方式,主要用于实现复杂的界面设计,让元素在不同尺寸的屏幕中自适应展示。微信小程序的FlexLayout基于CSS3的Flexbox模型,允许开发者更加灵活地控制组件的排列、...

    微信小程序项目实例-wechat-app-flexlayout(源码+截图)

    4. **Justify-content**:此属性用于调整子元素在主轴上的对齐方式,包括`flex-start`(默认,靠左/顶部)、`flex-end`(靠右/底部)、`center`(居中)、`space-between`(两端对齐,子元素间等距)、`space-around...

    flexlib---2.5---flex3.rar_flex_flexlib

    Flex是一种基于ActionScript 3.0的开放源代码框架,用于构建富互联网应用程序(RIA)。它允许开发者创建具有丰富用户界面的Web应用,这些应用通常包含交互式图表、动态图形、视频和音频等内容。Flexlib是Flex生态...

    flex-2.6.4.tar

    flex-2.6.4

    Flex第一步--基于ActionScript 3.0的Flex 2应用开发 第2、 6、 13章

    Flex是Adobe公司推出的一种用于构建富互联网应用程序(RIA, Rich Internet Applications)的开源框架,它主要基于Flash Player或Adobe AIR运行环境。本资料主要聚焦在Flex 2的应用开发,特别是结合ActionScript 3.0...

    arcgis-viewer-flex-develop.zip_flex

    在这个“arcgis-viewer-flex-develop.zip_flex”压缩包中,我们关注的是使用Flex框架进行GIS的二次开发。 Flex是一种基于ActionScript 3.0的开源框架,由Adobe公司提供,主要用于构建富互联网应用程序(RIA)。它...

    flex中实现背景音乐的办法

    简洁的实现了在flex中实现背景音乐的功能

    Java开发案例-springboot-47-整合Mybatis-Flex操作SQL-源代码+文档.rar

    Java开发案例-springboot-47-整合Mybatis-Flex操作SQL-源代码+文档.rar Java开发案例-springboot-47-整合Mybatis-Flex操作SQL-源代码+文档.rar Java开发案例-springboot-47-整合Mybatis-Flex操作SQL-源代码+文档.rar...

    flex-right-click.rar_flex_flex right

    在本文中,我们将深入探讨如何在Flex应用中实现右键点击功能,并且结合"flex-right-click.rar_flex_flex right"这一标题,我们可以推断这是一个关于在Flex项目中添加右键菜单并支持增删操作的示例。Flex是一种基于...

    flex-messaging系列jar包

    6. **flex-messaging-remoting.jar**:远程方法调用(Remoting)是Flex Messaging的重要组成部分,这个JAR包实现了Flex客户端与Java后端之间的远程对象调用。通过使用Flex Remoting,开发者可以像调用本地对象一样...

    Flex-Java-file-upload.zip_flex

    标题中的“Flex-Java-file-upload.zip_flex”表明这是一个关于使用Adobe Flex与Java进行文件上传交互的教程。Flex是一种基于ActionScript的开放源代码框架,用于构建富互联网应用程序(RIA)。它允许开发者创建动态...

    arcgis-Hawkeye.zip_flex

    开发者可以通过阅读这份文档来学习和理解这两种实现方式的具体细节,包括可能遇到的挑战、性能优化技巧,以及如何调试和测试鹰眼功能。 总之,"arcgis-Hawkeye.zip_flex"是一个关于使用ArcGIS API在Flex平台上实现...

    Flex-Java-Demo.rar_flex_flex 控件

    Flex和Java的集成是开发富互联网应用程序(RIA)时常用的一种技术组合,它允许开发者利用Flex的用户界面设计优势和Java的服务器端处理能力。在"Flex-Java-Demo.rar_flex_flex 控件"这个压缩包中,我们很显然会发现一...

    flex-object-handles.zip_flex

    在Flex开发中,"flex-object-handles.zip_flex"这个压缩包可能包含了关于如何操作和交互Flex中的对象,特别是涉及到对象的移动、编译、放大和缩小功能的代码示例或教程。Flex是一种基于ActionScript和MXML的开源框架...

Global site tag (gtag.js) - Google Analytics