`
libran
  • 浏览: 193297 次
  • 性别: Icon_minigender_1
  • 来自: 天津
文章分类
社区版块
存档分类
最新评论

flex中不加载字库,让文字转向(rotation)

阅读更多

 flex中不加载字库,让文字转向(rotation)

作者:EoS_3tion

群里有人说道将字体旋转,大家马上就想到,flex3的帮助文档中说过,通过内嵌字体,可以做到文字抗锯齿,旋转等效果,这里我就不多说了,有兴趣了解的,看官方文档:
http://livedocs.adobe.com/flex/3/html/help.html?content=fonts_04.html#133851
显然这样的方法对于欧美这些文字来说是非常有效的方法。
一个嵌入字体,最多不会超过50K。
可是对于我们博大精深的中文来说,随便一个字体就是10M左右,如果嵌入到flash中,显然不是合适的做法。
当然,也有朋友用外嵌字体,将字体打包成另外一个swf文件,然后由主flash文件去外部调用。参考这篇文章:http://bbs.blueidea.com/thread-2792010-1-1.html
当然这也是个不错的解决方法,但是依旧是要加载一个10M左右的字体文件,虽然可以在后台进行,而先让用户处理其他的事情。

仅仅是一个文字的旋转,难道没有方便的解决方法吗?
突然我脑袋里想到了bitmapData这个对象。曾经我在做我的paint.3tion.com我的第一个flex程序的时候看到过的一个被我弃用的对象。
我是否能首先将文字赋值给一个组件,比如赋值给一个label,然后获取这个label的bitmapData,再将这个作为图形的形式来旋转,缩放,虽然图片会失真,但是却可以做到不用嵌入字体,而直接调用用户的系统字体。可以大幅减少swf文件的大小。

于是我写了如下代码:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

    <mx:Style>

         .myStyle1

         {

             font-family:宋体;

             font-size:14px;

         }

    </mx:Style>

    <mx:Script>

         <![CDATA[

             import mx.controls.Image;

             private function init():void

             {

                  var bmp:BitmapData = new BitmapData(aa.width,aa.height,true);

                  bmp.draw(aa);

                  var bt:Bitmap = new Bitmap(bmp);

                  var img:Image = new Image();

                  img.source = bt;

                  img.x = 200;

                  img.y = 200;

                  img.rotation = 120;

                  addChild(img);

             }

         ]]>

    </mx:Script>

    <mx:Label id="aa" x="143" styleName="myStyle1" y="139" text="3tion是天才" creationComplete="init()"/>

</mx:Application>

 

我按下F11键。bingo!
和我的想象的情况基本一致。出现了这样的画面:
其中水平显示的就是label控件的值。
而那个白色的就是旋转后的结果。
由于没有对BitmapData做透明的处理,显示出了白色的背景。不过这个思路,很明显是行得通了。bitmapData也可以做相应的抗锯齿处理,我想处理之后效果应该比这要清晰一些。
分享到:
评论

相关推荐

    flex加载动态图片

    flexBulider页面加载动态图片的显示

    Flex中加载SWF方法

    Flex中加载SWF方法,介绍了flex 对 swf 加载和处理

    flex css动态加载

    在本文中,我们将深入探讨“Flex CSS动态加载”这一主题,这是前端开发中一个非常重要的概念,尤其是在构建响应式和高性能的Web应用时。Flex CSS允许我们动态地改变页面布局,根据用户行为或屏幕尺寸调整元素的位置...

    Flex 预加载动画demo

    这个"Flex 预加载动画demo"是Flex应用中的一个实例,它展示了如何自定义预加载进度条动画,使得用户在等待应用程序加载时能有一个更友好的交互体验。 预加载是任何富媒体应用程序的关键部分,因为它确保了所有必要...

    flex 异步加载tree

    根据给定的信息,我们可以深入探讨Flex中的异步加载Tree组件的相关知识点。 ### 一、Flex与AsyncTree组件 #### 1. Flex简介 Flex是一种开源的框架,用于构建跨平台的桌面应用程序和移动应用程序。它提供了强大的...

    flex中moduleLoader加载module时传递参数源代码

    在Flex开发中,`ModuleLoader` 是一个关键组件,它允许开发者动态地加载MX模块(即Flex模块,独立的SWF文件)。`ModuleLoader` 的主要功能是将模块的加载过程与应用程序的其余部分分离,这有助于实现代码的模块化和...

    Flex之URLLoader加载XML

    在Flex开发中,`URLLoader` 是一个非常重要的类,用于加载远程数据,如XML、JSON等。在本示例中,它被用来从服务器获取XML文件并将其内容解析为XML对象,以便在应用程序中使用。`Flex` 是Adobe开发的一个开放源代码...

    flex arcgis 加载天地图2.0地图源码

    在本案例中,我们将深入探讨如何使用Flex与ArcGIS结合,加载天地图2.0的地图源码。 天地图是由中国国家测绘局主导的国家级地理信息公共服务平台,提供丰富的测绘地理信息资源,包括地图、影像、地形、地名等。天...

    flex预加载类

    很详细的实现了flex游戏的预加载,可以使用图片,也可以重绘技术,任你选择

    Flex加载进度流程图

    Flex加载进度流程图以及说明文字,通过它可以粗线条体了解Flex工程师的设计思路。

    传感技术中的基于FlexTest 加载控制系统的外接式位移传感器实时控制加载技术

    近两年随着结构静力试验中对试验件加载要求的提高,尤其是对某些特殊考核部位和对运动过程中试件的加载,在考虑到其加载变形和自身运动的情况下单纯的用力控和位控作动筒达不到加载要求,为了解决该类问题,提出基于...

    Flex自定义加载条(小起)

    在本文中,我们将深入探讨如何在Flex环境中自定义加载条,即进度条组件。Flex是一种基于ActionScript 3.0的开源框架,用于构建富互联网应用程序(RIA)。它提供了丰富的UI组件库,其中包括标准的进度条组件,但有时...

    解决Flex4无法加载设计模式APE补丁

    标题提到的问题是“解决Flex4无法加载设计模式APE补丁”,这涉及到的是Adobe Flex开发环境在MyEclipse8.5中的一个常见问题。Flex是一个用于创建富互联网应用程序(RIA)的框架,而MyEclipse则是一个集成开发环境...

    Flex运行时加载ICON

    标题“Flex运行时加载ICON”涉及的是Adobe Flex开发中的一个技术点,主要关于在应用程序运行时动态加载图像资源。在Flex编程中,我们有时需要在程序执行过程中根据需要加载图标或者图片,而不是在编译时静态地将它们...

    flex 自定义加载进度框

    在Flex应用中,"预加载器"(preloader)是程序启动时显示的一个组件,它的主要功能是在用户等待整个应用程序完全加载时提供反馈。预加载器通常会显示一个进度条,以指示应用程序资源的加载进度。 在“flex自定义...

    Flex运行时加载皮肤

    在Flex开发过程中,皮肤(skin)的设计和加载是一项重要的工作。皮肤决定了应用程序的外观和风格,能够显著提升用户体验。然而,在实际应用中,特别是当皮肤文件较大时,可能会遇到一个问题:在皮肤加载完成之前,...

    arcgis for flex 加载高德地图

    通过以上步骤,你可以成功地在ArcGIS for Flex应用中加载高德地图。这个过程涉及到的地图服务集成、自定义图层创建以及Flex与ArcGIS的结合使用,对于理解和实践GIS应用开发具有重要的学习价值。

    readxml flex加载xml文件

    本篇文章将深入探讨在Flex中读取XML文件的三种主要方法,并对它们进行比较。 一、XMLLoader XMLLoader是ActionScript 3中的一个类,专门用于加载和解析XML文档。使用XMLLoader,可以异步加载XML,这意味着主程序...

    flex加载html页面

    在Flex开发中,加载HTML页面是一项常见的需求,特别是在构建富互联网应用程序(RIA)时。Flex是一种基于Adobe AIR或Flash Player运行时的开放源代码框架,它允许开发者创建交互性强、可自定义的用户界面。而HTML则作为...

    flex加载flashpaper示例

    在本示例中,我们将深入探讨如何在Flex应用中加载和展示由FlashPaper生成的Flash内容。 首先,我们需要理解Flex中的SWFLoader组件。SWFLoader是Flex SDK提供的一种用于加载和显示SWF文件(包括由FlashPaper转换的...

Global site tag (gtag.js) - Google Analytics