AS3基础教程-第10课-trace的弊端及解决办法

2026-04-03 21:29:57

1、使用trace函数,可以在 输出面板内,显示跟踪的变量的值。但是,输出面板只有在flashIDE编辑环境下才有效!当你将flash作品发布为swf文件之后,单独运行swf文件将不显示输出面板!

2、如果需要对观众做介绍,就不能用trace函数,而应该 改用 文本对象。

flashCS5、flashCS5.5、flashCS6三个版本的flashIDE,文本对象有两大类,一类是 传统文本,另一类是TLF文本。【其余版本的flashIDE都只支持传统文本】

TLF文本是为了大量文字的处理而引入的,由于本教程的文字都比较少,且为了教程的普适性,所以,暂不涉及TLF文本的详解。本教程只介绍传统文本

1、使用工具箱内的文本工具【快捷键:T】

在属性面板内发现,传统文本模式下,有三类文本,如下图。

静态文本不参与编程,适合做说明,比如说,告知读者这个flash作品的创作人的各种信息,以及本flash作品的作用。

动态文本和输入文本都可以参与编程。两者都可以设置实例名,编程时通过实例名来访问文本对象。

动态文本仅用于显示文字;输入文本不仅可以显示文字,还支持观众进行输入。

由于本文只讨论弥补trace函数的缺点,故此,只详解动态文本的使用。

AS3基础教程-第10课-trace的弊端及解决办法

2、如下图所示,按照数码顺序进行操作。

我们在属性面板的⑤那里,可以输入实例名,用于接下来的AS调用。

实例名是我们任意设置的,就相当于在声明一个变量一样。

假设,这里设置的实例名是 myText

AS3基础教程-第10课-trace的弊端及解决办法

3、那么,在代码中,调用它的办法就是,在实例名后面紧跟一个点,然后紧跟一个text即可。如下图,按照数码顺序讲解:

①我们新建一个图层后,②按F9键打开动作面板,在③那里单击一下树叶模样的图标,就可以将代码的位置固定在当前的帧上

然后,输入代码myText.text="网雨霏霏"

④测试影片,发现舞台上的文本对象那里出现了我们设置的文字。

这是使用的是文本对象的text属性,并给其赋值,由于其类型是String字符串类型,所以必须用引号给引起来。我习惯用双引号,其实用单引号也可以,效果一模一样。

4、如果,显示的文本内也有引号,那么,必须同时使用双引号和单引号。

比如说,我想显示的文字是:

小明说:"今天天气不错"

那么,在AS代码中,就只能如下书写:

myText.text="小明说:'今天天气不错'"

5、为什么在步骤2内需要在属性面板内设置为“使用设备字体”呢?

因为这里牵扯到一个字符嵌入的问题。

凡是静态文本,在编译阶段,flashIDE会自动的将用到的文字嵌入到swf文件内。

但是,动态文本和输入文本则不然!flashIDE不会自动嵌入字体!如果你设置了“动画消除锯齿”,又忘记了“嵌入”字体,那么,生成的swf文件内,将看不到自己用代码生成的文字。

而,使用设备字体,可以避免这点。设备字体无需嵌入。

6、但是,设备字体是受观众电脑中默认的字体的影响的。你设计的个性字体将都被观众默认的字体所代替!

如果要保留个性字体,就不能用“使用设备字体”,必须换用含有“消除锯齿”字样的项目,如下图,选择了“消除锯齿”的项目后,马上弹出对话框要求嵌入,此时必须单击嵌入,单击嵌入按钮后会出现新的对话框

AS3基础教程-第10课-trace的弊端及解决办法

7、如下图,弹出的“字体嵌入”对话框。

在②那里是本flash文档用到的所有的嵌入的字体

在③这里,勾选某一个项目,可以方便地进行嵌入

如果你的代码中有汉字,可以在③那里勾选中文,但是!会将所有的汉字都嵌入到swf文件内,这意味着生成的swf文件体积暴增!而且每次测试影片时都卡的不行【因为flashIDE要将整个字库都嵌入到swf文件内】

因此,推荐不要直接偷懒嵌入所有的汉字,而是在④这里进行输入,这里输入的时候一个字符只能出现一次,第二次输入已经存在的字符时,将自动无法输入

AS3基础教程-第10课-trace的弊端及解决办法

1、上节课,我们研究了for循环,其中一个例子是计算1到100的和。

在这里,我们可以将输出的结果,用动态文本显示出来。

首先,在舞台上布置一个动态文本,设置实例名为myText,因为只出现数字,故此可以用消除锯齿的选项,嵌入的时候,直接勾选数字即可,别忘记单击确定哦

2、代码如下:

var sum:uint=0

for(var i:uint=1;i<=100;i++){

sum+=i

}

myText.text=String(sum)

嗯,仅仅修改了最后一行而已,其余的代码都未做更改。

这里有一个新的知识点,我们定义的sum是数字类型,而myText.text是字符串类型,如果直接这样写:

myText.text=sum

就会报错,导致无法正常显示。

正确的写法是,将sum使用String代码强行转换为字符串类型,然后再赋值,就没有问题了

3、还有另一种解决的办法

myText.text=""+sum

用一个空字符串,再使用+连接sum,也可以实现目标

所谓的空字符串,就是只有一对引号,引号里面神马也木有

猜你喜欢