`
webcenterol
  • 浏览: 943762 次
文章分类
社区版块
存档分类
最新评论

Flex字体篇——动态嵌入字体

 
阅读更多

概述

Flex编译器,位于flex sdk的bin目录,例如:Flash Builder 4 sdk 3.5 "C:/Program Files/Adobe/Adobe Flash Builder 4/sdks/3.5.0/bin", 编译器的详细使用说明参考官方文档Using the Flex Compilers主题。

mxmlc.exe:应用程序编译器,可以把*.mxml(*.as)、*.css等主要文件编译成swf。

flash/flex使用设备字体存在严重锯齿问题,不够美观,而且当计算机没有相应字体时会造成内容无法显示等问题,该系列文章介绍flex技术平台下如何实现字体的动态嵌入。

字体样式

需要编译的css文件:WB_Arial.css

/* CSS file */

@font-face {

src:local("Arial");

fontFamily: WB-Arial; /* 嵌入后的字体名称 */

fontStyle: normal;/* 常用值:normal, italic */

fontWeight: normal; /* 常用值:normal, bold */

advancedAntiAliasing: true;

}

使用mxmlc.exe编译字体样式

打开命令行,运行以下命令编译css,生成swf:(格式:mxml.exe [srcFile] –output [destFile])

mxmlc.exe WB_Arial.css

使用字体swf

用编辑器生成WB_Arial.swf后,在FontTest2.mxml里加载使用:

<![CDATA[

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*" creationComplete="Init()" backgroundColor="#FFFFFF">

<mx:Script>

import mx.events.StyleEvent;

private var styleLoader:IEventDispatcher;

private function Init():void

{

styleLoader = mx.styles.StyleManager.loadStyleDeclarations("Fonts/WB_Arial.swf",false, true);//加载字体swf

styleLoader.addEventListener(StyleEvent.COMPLETE, OnStyleEvent);

styleLoader.addEventListener(StyleEvent.ERROR, OnStyleEvent);

}

private function OnStyleEvent(event:StyleEvent):void

{

if(event.type == StyleEvent.COMPLETE)

{

trace("load WB_Arial.swf complete....");

var textField:TextField = new TextField();

textField.type = TextFieldType.DYNAMIC;

textField.autoSize = TextFieldAutoSize.LEFT;

textField.embedFonts = true;//嵌入设置

var format:TextFormat = new TextFormat("WB-Arial", 40);//默认使用嵌入的WB_Arial字体

textField.defaultTextFormat = format;

textField.text = "Anti-Money Laundering";

textField.rotation = 10;

_Panel.addChild(textField);

}

else if(event.type == StyleEvent.ERROR)

{

trace(event.errorText);

}

}

</mx:Script>

<mx:UIComponent x="10" y="10" id="_Panel">

</mx:UIComponent>

</mx:Application>

]]>

进阶

  1. 命令行生成swf这项操作,可以让外部exe来完成,实现swf的动态生成。
  2. 文字的高级处理请尽量使用flash.text.TextField类,以便达到更好的控制,不建议使用mx.*命名空间下的文本控件。
  3. TextField的htmlText支持多种嵌入字体同时显示,但确保htmlText里面使用的字体都是嵌入的。

Next

英文字体文件比较少,例如:Arial,把常规、加粗、斜体等各种组合都生成相应的字体swf,总文件大小还在可接受的范围内。

但对于中文字库,文件比较大,把整个字库都嵌入,文件太大不利于网络传输,必须按需嵌入,下篇将介绍中文字体动态嵌入的解决方案。

分享到:
评论

相关推荐

    MapABC Flex4 Demo

    《MapABC Flex4 Demo——深入探索Flex4框架与地图应用》 MapABC Flex4 Demo是一个基于Adobe Flex4框架开发的地图应用程序示例。Flex4是ActionScript 3.0的一个强大的富互联网应用程序(RIA)框架,它允许开发者创建...

    用HTML+CSS做一个漂亮简单的旅游网站——旅游网页设计与实现(6页)HTML+CSS+JavaScript

    - **字体设置**: 合理选用字体大小、行间距等参数,提升阅读体验。 - **图片优化**: 对图片进行压缩处理,减少加载时间。 #### 2.3 用户交互设计 - **表单设计**: 创建联系表单或预订表单,允许用户提交信息或提出...

    HTML+CSS+JS网页设计期末课程大作业—— 绿色化妆品HTML+CSS+JavaScript

    - **字体和图标**:利用 `@font-face` 规则自定义字体,或通过字体图标库(如 Font Awesome)添加图标,提升视觉美感。 - **颜色和背景**:使用透明度和渐变效果来丰富页面的视觉层次。 #### 3. JavaScript ...

    简单的网页制作期末作业——电影泰坦尼克号(4页)

    - **头部导航栏**: `&lt;nav&gt;`标签用于创建导航栏,并通过CSS样式进行美化,如背景颜色、字体大小等。 - **主体内容区**: `&lt;div class="main"&gt;`定义主要内容区域,其中包含了对电影《泰坦尼克号》的介绍文字。 - **...

    HTML旅游网站设计与实现——东江湖旅游网站6个网页HTML+CSS+JavaScript

    - **DOM操作**:使用JavaScript操作文档对象模型(DOM),改变页面内容、样式或结构,提高页面动态性和交互性。 - **AJAX技术**:通过异步JavaScript和XML技术实现不刷新页面即可更新部分内容,提升用户体验。 ####...

    qq音乐项目html静态页面.rar

    此外,`&lt;a&gt;`标签用于链接外部资源,如歌手、歌曲或专辑详情页面,而`&lt;audio&gt;`标签则用于嵌入和播放音乐。 接下来,CSS在美化和布局方面起着至关重要的作用。"内容板块-css.txt"和"新歌首发——css.txt"等文件很可能...

    FlashDecompiler

    4. **文本与字体**:工具还能识别并导出SWF中的文本和字体,这对于翻译工作或是调整文本样式极具价值。 5. **按键与图标**:在Flash应用中,按钮和图标是用户体验的关键组成部分。FlashDecompiler能够帮助开发者...

    159-微信小程序-新闻阅读器.zip

    【微信小程序——构建新闻阅读器】 微信小程序作为腾讯推出的一种轻量级应用开发平台,以其无需下载安装、即扫即用的特点,深受开发者和用户的喜爱。本项目“159-微信小程序-新闻阅读器”旨在教授如何利用微信小程序...

    网页制作小实例

    例如,我们可以使用`display: flex`或`grid`属性创建响应式的网格系统,使页面在不同设备上都能良好展示。此外,CSS还可以用于设置背景颜色、字体、边距、动画效果等,以增强用户体验。 在这个实例中,背景音乐的...

    SWFTools_en.rar

    它支持多种选项,如调整输出SWF的质量、尺寸、帧率,以及设置是否嵌入字体等。此外,`pdf2swf`还允许用户通过脚本自动化转换过程,批量处理大量PDF文件。 使用SWFTools进行PDF到SWF转换的优点包括: 1. 文件体积小...

    Away3D汽车展示

    而"exlibs"和"src"目录可能分别存放外部库和源代码文件,"embeds"目录则可能包含了嵌入到程序中的资源,如图片、声音或字体文件。 综上所述,“Away3D汽车展示”项目展示了如何利用Away3D引擎在Flash平台上构建一个...

    ActionScript开发技术大全

    11.7.10字体嵌入 265 11.7.11事件处理 268 11.8小结 269 第4篇ActionScript3.0数据处理 第12章数字类型与数学运算 272 12.1数字类型概述 272 12.2Math类 273 12.2.1角度与弧度 273 12.2.2Math常量 273 12.2.3最大值...

    Moozik-landing-page:一个名为MOOZIK的音乐网站,使用html和css构建

    例如,`&lt;title&gt;`标签定义了浏览器标题栏上的显示文本,`&lt;header&gt;`和`&lt;footer&gt;`元素则用于创建页面的头部和尾部,而`&lt;audio&gt;`标签则是用来嵌入音乐播放功能的,用户可以直接在页面上欣赏音乐。 CSS则是美化HTML内容...

    htmltest

    通过`&lt;script&gt;`标签,可以在HTML中嵌入JavaScript代码,处理用户事件、动态更新内容、执行异步请求等。 5. **响应式设计**:随着移动设备的普及,HTML5提供了响应式设计的支持,如媒体查询(`@media`)和弹性盒模型...

    豆瓣

    7. **CSS布局技巧**:为了实现各部分的布局,开发者可能需要用到CSS的盒模型(包括边距、填充和边框),以及定位属性(如`position`、`float`或`display:flex`)。对于响应式设计,可能还会涉及媒体查询(`@media`)...

    面试宝典之吊打面试官系列

    - **em**: 相对单位,相对于父元素字体大小。 **28. Reset CSS与Normalize CSS的区别** - **问题**: 描述一个”reset”的CSS文件并如何使用它。知道normalize.css吗?你了解他们的不同之处? - **答案**: - **...

Global site tag (gtag.js) - Google Analytics