flash关于字体元件与字符嵌入等功能详解

详解

========上篇========

flash的优点之一就是能够使用各种各样的字体,而传统的HTML要使用各种各样非系统默认的字体只有两种办法

1,是将特殊字体嵌入到浏览器中,可惜这一功能不仅仅体积巨大而且并不是对于所有浏览器都适用。(英文字体倒只有百来K但是中文字体起码都1M以上)这样的办法对于中文来说显然是不现实的
2,是将所用到特殊字体的地方都做成图片,这样的好处是任何平台浏览器显示效果都是一致的。但是缺点也是明显的,首先修改不容易,即使是最细微的修改也需要用专门的图形编辑软件来修改,很是麻烦。而且不可能用太多的字体,那样图片会极其巨大甚至比嵌入字体所需要的体积还大。

flash完全没有以上的任何问题,当你输入任何字体(包括系统字体)在导出成SWF格式的时候会自动转换成图形,就是说在任何平台显示效果都是一样的,无论他安装没有安装这种字体。而且要修改的时候跟修改任何文本文档一样的简便。随着字数的增加,最终swf的文件也会越大。不过这种增大对于在HTML中嵌套字体所需要的动辄几M的体积相比是算不了什么的。并且与平台和显示器无关。

不过flash的特点以及优势就是小巧,多增加一个字就增加几百字节的大小,这对于flash来说也是不能忍受的。所以flash提供了更多的功能让swf文件更小巧。下面我将详细讲述flash关于字体元件与字符嵌入等功能的优点,缺点以及适用范围。

先说flash中“使用设备字体”的功能,此功能在文本属性里。只对静态文本有效,前面已经说了,输入的任何文本都会被flash自动转换为图片,这样的好处是任何平台任何浏览器显示效果都一致,缺点是每增加一个字都会增加最终swf文件的大小。如果你输入一段文本,然后在属性里选择了使用设备字体。那么flash就不会把你输入的字体转换成图形,这样无论你写多少字对swf大小的影响都不大。但是当别人打开这个swf文件的时候会首先检查系统里是否有你所输入的字体,如果有则显示你当初输入的字体。这样看起来就跟你在本地机器上编辑的效果一样。但是一旦浏览者的机器上不具备你当初输入的字体,那么swf将用浏览者所使用的系统上的默认字体来显示,至于效果嘛。。。听天由命吧。这样的做法适合那种一般情况下浏览者系统里都具备的字体,即使万一浏览者里没有这种字体也能显示出字来。只不过效果无法预测而已。

现在说说动态文本中的字符嵌入功能,将文本设定成动态文本或者输入文本就会出现字符嵌入这一功能。这一功能的作用是将所选择的字符装载到swf文件中,这样动态的字符加载进去或者输入字符的时候就会变成你当初嵌入的字体。比如你当初输入了一句话使用简体黑体写的,点其属性选择嵌入字符,选择指定范围里面有很多种语言,选择你输入的字所属于的语言种类——在这里是简体中文,点确定。这样就等于你把整套简体黑体嵌入到了flash文件里,当加载动态文字的时候这个地方显示的就是黑体。这样会使最终的swf文件增加1M多(具体大小根据字体的大小来决定,所以英文肯定比中文要小的多)。经过测试嵌套进去的字体对静态文本一样有效。比如这里嵌套进去了简体黑体,所以你输入大量的静态的简体黑体后倒出的swf文件只增加了几百字节而已。(不需要选择设备字体)

如果你输入的是简体却选择嵌入繁体,那么凡是跟简体不相同写法的繁体字是不会显示的,只有更简体写法一致的繁体才会显示。嵌入字符还有一个选项是自动填充。他会自动的把你所写的字嵌入进去,只嵌入这几个字,这样最终文件大小也会小很多。这样做的缺点是,比如你当初输入的是“你是笨蛋”,然后选择自动填充,自动填充的左边就会显示“你是笨蛋”,当然这里你也可以自己添加或者删除文字,比如删除“笨蛋”这样就是剩下“你是‘,最后选择确定。这样你只把确定两个字嵌入到了flash里。你当初创建的”你是笨蛋“只会显示”你是“其他任何字符都不会显示了。如果是输入文本也只能输入”你是“,输入其他字符是无效的。

接下来说字体元件,使用字体元件的方法是按F11打开库,鼠标左键点库文件名右边的按钮,会出现一个菜单,选择新建字型。这时候会弹出一个字型的属性框,进行设置。名称要起有意义的名称不要起字体的名称,比如”标题文字“。然后你将要用到的字体,这里要注意的是锯齿选项(下面会提到)选择好了后你可以看到在字体选择中多了一项以新建的字体文件名称为名称的字体。因为我们开始建立的字体元件名称叫标题文字,所以在这里是叫”标题文字*“选择使用这种字体,选择好了后你可以使用两种方式来好好的利用这个功能。

========中篇========

1直接放在flash文件里,这样做并不会对flash文件大小有影响,就跟普通的flash文件一样,flash默认会将字体转换成图形,你也可以设置成为系统字体。一切照旧,唯一的区别是当你更换字体的时候可以直接更换字体元件。比如你所有的文字本来都是宋体,可是后来觉得换成黑体更好看,你就可以直接更改字体元件的属性(更改的办法是打开库,选择字体元件点鼠标右键,选择属性)由宋体改成黑体。这样一来所有使用字体元件的文字全部改成黑体(想想如果你没有使用这种功能,修改起来会多痛苦)。

2 第一步跟方法一一样,全部弄完后,选择字体元件,选择链接。(打开库,选择字体元件点鼠标右键,选择链接)选择”为运行时共享导入“ URL里填写以后你将要使用的一个swf文件路径可以使用相对也可以使用绝对路径(如果在同一文件夹下可以写成"字体.swf")标识符就直接使用字体元件的名称

第二步,跟方法一一样,只不过是专门建立一个只有字体元件的swf文件。选择链接(打开库,选择字体元件点鼠标右键,选择链接),选择”为运行时共享导出“ URL里填写在上一步里写好的路径。(上一步写的是"字体.swf")标识符也跟上一步时的字体元件名称一致。然后导出成swf文件。你会发现文件比较大(如果当初选择了锯齿文字会增加这个swf字体库文件的大小(什么情况下使用锯齿请参看本BLOG相关文章))。不过大点没什么关系,这个仅仅是一个引用的文件,就好象把字体都放在这里面当方法一建立的文件有需要的时候再从这里面找。这样的话要什么取什么,方法一建立的文件的大小会非常小,小到难以置信的地步。哈哈不错的东西。而且象第一部建立的文件想改变字体什么的也只需要改变方法二建立的文件的字体元件属性。这就好比第一步建立的swf文件是第二步建立的swf文件的快捷方式一样。只是第二步建立的swf文件的引用,实际的东西都在第二步建立的swf文件里装着呢。

========下篇========

flash中字体元件在一个swf里可以引用多个。就是说你的swf作品里可以使用多种字体元件引用外部的不同的字体元件包。但是一个“被引用“的swf字体文件包里,只能存放一种字体然后打包。否则会出现错误

时间: 2024-09-09 05:05:59

flash关于字体元件与字符嵌入等功能详解的相关文章

Android原生嵌入React Native详解_Android

1.首先集成的项目目录 我使用的是直接按照react-native init Project 的格式来导入的,也就是说,我的Android项目目录是跟node_modules是在一个目录下的. 我们init完项目之后,项目初始化完成了,这时候我们可以用命令react-native run-android直接运行项目,至于怎么调试,之前已经说过. 说一下我们怎么开发和运行分开吧,我们开发一般会选择webstrom,开发后我们会Android和ios的编译分开. 启动npm 下面说一下android

Oracle中varchar2字符类型最大长度详解

varchar2的最大存储长度是4000. 如以下语句: create table test(id varchar2(4001));执行时会报错. 如果将语句改为如下,则会执行成功. create table test(id varchar2(4000)); 问题分析 当用在定义表的类型时,varchar2的最大长度是4000个字节,如下图1所示,当超过的时候就会报错: 图1: 而当作PL/SQL程序中定义变量使用的时候,限制大小为32767个字节,所能存储的字符个数取决于字符集设置,如下图2所

基于Java字符编码的使用详解_java

1,什么是字符编码?     字符(Character)是文字与符号的总称,包括文字.图形符号.数学符号等.一组抽象字符的集合就是字符集(Charset).字符集的出现是为了信息进行传播储存提供方便.目前常用到字符集有:ASCII,ISO 8859-1,Unicode,GB2312 2,各种编码集有哪些特点? ASCII:     ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系

深入MYSQL字符数字转换的详解_Mysql

1.将字符的数字转成数字,比如'0'转成0可以直接用加法来实现例如:将pony表中的d 进行排序,可d的定义为varchar,可以这样解决select * from pony order by (d+0) 2.在进行ifnull处理时,比如 ifnull(a/b,'0') 这样就会导致 a/b成了字符串,因此需要把'0'改成0,即可解决此困扰 3.比较数字和varchar时,比如a=11,b="11ddddd";则 select 11="11ddddd"相等若绝对比

C语言 以字符形式读写文件详解及示例代码_C 语言

在C语言中,读写文件比较灵活,既可以每次读写一个字符,也可以读写一个字符串,甚至是任意字节的数据(数据块).本节介绍以字符形式读写文件. 以字符形式读写文件时,每次可以从文件中读取一个字符,或者向文件中写入一个字符.主要使用两个函数:fgetc()和fputc(). 字符读取函数 fgetc fgetc 是 file get char 的缩写,意思是从指定的文件中读取一个字符.它的原型为: int fgetc (FILE *fp); fp 为文件指针.fgetc() 读取成功时返回读取到的字符,

C语言中字符的输入输出以及计算字符个数的方法详解_C 语言

C语言字符输入与输出 标准库提供的输入/输出模型非常简单.无论文本从何处输入,输出到何处,其输入/输出都是按照字符流的方式处理.文本流是由多行字符构成的字符序列,而每行字符则由 0 个或多个字符组成,行末是一个换行符.标准库负责使每个输入/输出流都能够遵守这一模型.使用标准库的 C 语言程序员不必关心在程序之外这些行是如何表示的. 标准库提供了一次读/写一个字符的函数,其中最简单的是 getchar 和 putchar 两个函数.每次调用时,getchar 函数从文本流中读入下一个输入字符,并将

Android原生嵌入React Native详解

1.首先集成的项目目录 我使用的是直接按照react-native init Project 的格式来导入的,也就是说,我的Android项目目录是跟node_modules是在一个目录下的. 我们init完项目之后,项目初始化完成了,这时候我们可以用命令react-native run-android直接运行项目,至于怎么调试,之前已经说过. 说一下我们怎么开发和运行分开吧,我们开发一般会选择webstrom,开发后我们会Android和ios的编译分开. 启动npm 下面说一下android

FlashObject详解:Flash的检测和嵌入Javascript脚本

javascript|object|脚本|详解 可能很多人并不太了解FlashObject,特意把官网翻译整理了下.(E文有限,如有错误,敬请指正.) 官方地址:http://blog.deconcept.com/flashobject/目前最新版本:FlashObject 1.3下载地址:http://blog.deconcept.com/flashobject/flashobject1-3.zip 特点:1.支持所有flash内置参数设置.且设置更简单方便.2.内嵌flash player升

Flash MX 新特性详解(三)多种媒体支持

媒体|详解 一.视频支持 1.视频 Flash MX可以制作包括视频在内的丰富内容或应用程序,你可以导入标准视频格式的文件如:MPEG, DV (Digital Video), MOV (QuickTime), and AVI. 你可以对视频进行缩放.旋转.扭曲.遮照等,并且可以通过脚本来实现交互效果.Flash 6播放器可以用附加的Sorenson Spark 编码解码器支持视频的播放. 2.在运行的时候可以动态加载JPEGs和MP3文件. 在运行的时候通过动态加载JPEG和MP3文件可以优化