学习此教程的全部源文件包,其中包含有textscript类
这里下载点击这里下载源文件
我想创建一个类用来管理和创建看起来费时又费力的字体效果制作过程,使用它可以允许我们轻松的创建自定义的效果,经过一系列的不同方式的试验,我最终完成了一个类,把它称之为TextScript.它预置了一些字体效果在里面,但最重要的是你可以使用这个类来创建你想象中的字体效果。如下面的效果。
TextScript类有两个基本方法(Constructive和Deconstructive)按在类方法中译为构建和拆分。Constructive方法用来创建一个moviclip holder用来承载你所附加的字体断段,并且要把它们以单个字符的形式显示出来。而deconstructive就更简单一些,因为它针对moveclip holder工作,并对constructive方法返回的结果应用我们想要的效果。
下面就让我们开始试一下。首先先下载the TextScript class并将它保存在你所设置的类路径下。如果你没有设置类路径,你可以在flash中按下ctrl+u.在左边选择择actionscript然后在下面选择as2.0设置。把你存放此类的路径添上即可。(译者:如果你不添路径也可以,只要保证你的fla文件在TextScript路径也可,只要文件能找到类即可,但这种方式对于日后的应用会麻烦一点。)
下一步,在flash8中创建一个新的fla文件,选择字体工具,在场景中拖动创建一个动态文本框.它不需要实例名称。我们要做的只是要嵌入字体,注意如果你没有嵌入字体,你的字体效果是不会显示出来的。
选择动态文本框,然后选择一种字体,不要选择非系统字体如_sans,_serif或_typewriter等字体。如我们的例子,使用的是Arial Black加粗字体。 如果你要使用加粗字体,在对文本框设置时一定要它显示出为粗体字样。然后点击右边的”embed”选择你要嵌入的字符范围,点击ok。
现在将下面的代码加入到你的时间线的第一帧上。
如下代码:
import com.actionscript.text.TextScript;
var myFormat:TextFormat = new TextFormat();
myFormat.font="Arial Black";
myFormat.bold = true;
myFormat.size = 22;
myFormat.color = 0x550000;
var phrase:String = "Dynamic Effects with TextScript";
var xLoc:Number = 50;
var yLoc:Number = 70;
var delay:Number = 3;
m = TextScript.blurIn(this, phrase, xLoc, yLoc, myFormat, delay); 测试你的影片,你应能看到非常漂亮的模糊字体效果出现,如果你没能看到字体体效果出现,请你先确何你的字体是否已正确的嵌入到flash中。如果你使用了粗体。要确保在你选中文本框时, 粗体的B是按下去的。
在这段代码中,我们需要在开始的位置导入TextScript类,然后我设置我们想要显示的字体段落,并通过创建字体格式Textformat来格式化字体。最后我们设置constructive方法所需要的参数。
所有constructive方法都需要下面所列的参数。如下:
TextScript.constructiveMethod(scope,phrase,xLoc,yLoc,textFormat,delay);
Scrop:MovieClip – 你所要展示的文本所放的地方。也就是在哪个movieclip中。
Phrase:String – 你所要展示的文本内容。
xLoc:Number –展示文本所在movieclip中的_x位置
yLoc:Number --展示文本所在movieclip中的_x位置
textFormat:TextFormat –TextFormat对象,用于设定文本属性
delay:Number –出现在场景中字符之间的延时,以帧数为计数单位
Constructive方法总是返回包含你文本的movieclip的实例,你通常应将它保存在一个变量中(我把它命名为”m”)因为在后面你可以使用它来做为deconstructive方法的一个参数。
作为一个名称习惯,所有的deconstructive方法都以”remove”字样开头加上原有的constructive方法名称。因些如constructive方法名为”blurin”,那么它的deconstructive方法的名称就应用removeBlurin.但是它并不是一定要使用这种组合应用在deconstructive方法,任何的constructiv和deconstructive方法组合都可以创建出有效的效果来。
根据我们上面的例子,加入下面的代码:
onMouseUp = function() {
TextScript.removeBlurIn(m, delay);
}
现在测试你的影片,你会看到你的字体模糊的出现,然后单击clear按钮,你会发现字体在消失。
演示文如下:
更深一步,如果你打开debugger面板,你就会发现TextScript deconstructive方法清除了所有在constructive方法中创建的元素。
内置在TextScript中的constructive方法如下:
typewriter 打字机效果
zoomIn 放大效果
zoomOut 缩小效果
blurIn 模糊效果
dropIn 下落效果
randomDropIn 随机下落
相应的deconstructive方法如下:
removeTypewriter 移除打字机效果
removeZoomIn 移除放大效果
removeZoomOut 移除缩小效果
removeBlurIn 移除模糊效果
removeDropIn 移除下落效果
removeRandomDropIn 移除随机下落效果
上面这些方法已经可以创建出足够好的效果,但在这个类中相对来说包含了很少的效果,实际上这个类可以创建出任何你想要的效果,你需要仔细查看这个类,这一节中我们将研究如何自定义字体效果。
在这一节中我们学习如何自定字体效果,并提供了三个范例,在一个字体效果中,将动画中的每一个字符当做是一个元件符号(一个独立具有指定行为的元素),要创建一个字体效果,你不能对整个文本段落进行代码编写,你需要针对一个独立的字符进行代码编写。
关于TextScript 元件你需要了解6件事情:
§在字体动画中每一个字符就是一个元件。
§每个元件是一个movieclip,它具有所有movieclip的所有功能定义。
§元件具有一个属性命名为framCount,当一个新的效果应用于它时它的初值为0.
§元件具有称为delay的属性。当动作执行之前这个元件需要延迟出现的帧数间隔
§效果代码附加在元件的onEnterFrame事件中,覆盖元件的onEnterFrame事件将会覆盖它的效果动作。
§在constructive效果中(也就是场景中出现字的效果),所有元件以它们最终的位置和缩放出场,所以你可以在动画之前保存他们的这些变量。
Constructive效果
在前面一节的TextScript文章中,constructive效果是在场景中创建的文本效果,Constructive 效果总是返回movieclip实例,并且这个movieclip中承载着所有字符元件,我们可以使用返回的这个movieclip做为deconstructive效果的一个参数来从场景中移除它。
自定义constructive方法我们称之为”createEffect”,它的参数类似于内置在类中的constructive函数,只是增加了一个或多个参数在结尾处(也就自定义的函数).它的参数如下:
代码:
TextScript.createEffect(
scope:MovieClip,
phrase:String,
x:Number,
y:Number,