第八章 文字字段和组件
第一节 动态文本和输入文本(1)
在我们制作Flash作品时,常会需要用【文本工具】来创建各种文本,单击工具箱中的【文本工具】,或直接按键盘上的T键,就可选中【文本工具】,【属性】面板就会出现相应的文本工具的属性。
Flash MX 2004中的文本形式有三种,即静态文本、动态文本和输入文本。在Flash电影中,所有动态文本字段和输入文本字段都是TextField 类的实例。可以在属性检查器中为文本字段指定一个实例名称,然后在动作脚本中使用TextField 类的方法和属性对文本字段进行控制,如透明度,是否运用背景填充等。
就像影片剪辑实例一样,文本字段实例也是具有属性和方法的动作脚本对象。通过为文本字段指定实例名称,我们就可以在动作脚本语句中通过实例名来设置、改变和格式化文本框和它的内容。不过,与影片剪辑不同,我们不能在文本实例中编写动作脚本代码,因为它们没有时间轴。
动态文本就是可以动态更新的文本,如体育得分、股票报价等,它是根据情况动态改变的文本,常用在游戏和课件作品中,用来实时显示操作运行的状态。
1.动态文本
(1)创建动态文本
如何创建动态文本呢?使用【文本工具】就可以创建动态文本框。用【文本工具】在场景中拖出一个文本框,选中该文本框,在【属性】面板中选择【动态文本】即可,如图8-1-1所示。
图8-1-1 选择【动态文本】
在【属性】面板中还可以进一步设置动态文本的属性参数。
在【实例名称】文本框中可以定义动态文本对象的实例名。
可以在文本显示类型下拉列表中选择【单行】还是【多行】显示文本。
【可选】按钮,它决定了是否可以对动态文本框中的文本执行选择、复制、剪切等操作,按下表示可选。
【将文本呈现为HTML】按钮,它决定了动态文本框中的文本是否可以使用HTML格式,即使用HTML语言为文本设置格式。
【在文本周围显示边框】按钮,它决定了是否在动态文本框周围显示边框。
在【变量】后面的文本框中可以定义动态文本的变量名,用这个变量可以控制动态文本框中显示的内容。
(2)为动态文本赋值
为动态文本赋值的方法有:使用变量赋值、通过动态文本对象的text属性进行赋值。我们先讨论一下使用变量为动态文本赋值的方法。
用【文本工具】在场景中拖出一个文本框,选中该文本框,在【属性】面板中选择【动态文本】类型,定义变量名为“text”,如图8-1-1所示。然后,在【动作】面板中,设置第1帧上的脚本:text = "Welcome to ActionScript!";
测试影片效果如图8-1-2所示,大家可以看到,文本“Welcome to ActionScript!”显示在了动态文本框中。
图8-1-2 使用变量给动态文本赋值
通过动态文本对象的text属性进行赋值也是比较常用的方法。
用【文本工具】在场景拖出一个文本框,选中该文本框,在【属性】面板中选择【动态文本】类型,并为这个动态文本起一个实例名“test”,如图8-1-3所示。
图8-1-3 定义动态文本实例名
然后,设置第1帧上的脚本:test.text = "使用动态文本的实例名字来赋值";
测试影片如图8-1-4所示。
图8-1-4 通过动态文本对象的text属性进行赋值
注意:这两种方法是有区别的,对象名具有多个属性,而变量名只是用来传递数值的,没有属性。
第八章 文字字段和组件
第一节 动态文本和输入文本(2)
(3)常用指令
下面介绍使用动作脚本动态创建文本框、设置文本框属性的几个常用指令:
MovieClip.createTextField()
作用:动态创建文本框
语法:my_mc.createTextField(instanceName,depth,x,y,width,height)
参数:instanceName,指示新文本字段的实例名称,depth是一个正整数,指定新文本字段的深度;x是一个整数,指定新文本字段的 x 坐标;y是一个整数,指定新文本字段的y坐标;width是一个正整数,指定新文本字段的宽度;height是一个正整数,指定新文本字段的高度。
例如:
_root.createTextField("textBox",1,50,50,200,100);
textBox.text = "这是我的第一个动态创建文本?";
这段程序代码的功能是,创建一个文本框,其实例名为textBox,深度为1,x为50,y为50,宽度为200,高度为100。
TextField.removeTextField()
作用:删除由createTextField创建的文本字段。
语法:my_txt.removeTextField()
例如:textBox.removeTextField();//删除textBox文本。
TextField._alpha
作用:设置或获取由my_txt指定的文本字段的Alpha透明度值,有效值为0(完全透明)到100(完全不透明),默认值为100。
语法:my_txt._alpha
例如:text1_txt._alpha = 30;//将名为text1_txt的文本字段的_alpha属性设置为 30%。
TextField.autoSize
作用:控制文本字段的自动大小调整和对齐。
语法:my_txt.autoSize
例如:my_txt.autosize = "center";//将文本字段my_txt的autosize属性设置为“center”。
TextField.background
作用:设置文本字段背景是否填充。如果为true,则文本字段具有背景填充。如果为false,则文本字段没有背景填充。
语法:my_txt.background
例如:my_txt.background = false;//文本字段my_txt没有背景填充。
TextField.border
作用:设置文本字段是否有边框。如果为true,则文本字段具有边框。如果为false,则文本字段没有边框。
语法:my_txt.border
例如my_txt.border = true;//文本字段my_txt有边框。
(4)动态文本应用实例:数字倒计时效果
在很多场合,我们都需要一个倒计时器,如考试时间等。这里我们利用动态文本制作一个简单的10秒倒计时器,影片中的数字自动从10变为9、8……,当变到0的时候停止,数字变化间隔1秒。
你可以从配套光盘中先运行这个实例(文件路径:配套光盘/……/动态文本实例.fla),如图8-1-5是这个实例运行的一个画面。
图8-1-5 倒计时实例效果
下面我们一起来制作这个实例:
步骤1 创建影片文档
新建一个影片文档,设置场景尺寸为250×200像素,其他参数保持默认。保存影片文档为“动态文本实例.fla”。
在时间轴上创建3个图层,分别重新命名为:背景、文本显示、AS。
在【背景】图层上,创建一个背景图形效果,如图8-1-6所示。
图8-1-6 背景效果
第八章 文字字段和组件
第一节 动态文本和输入文本(3)
步骤2 创建动态文本
在【文本显示】图层,我们要创建有三个静态文本框和一个动态文本框,效果如图8-1-7所示。
图8-1-7 动态文本和静态文本
在【属性】面板中定义动态文本的【变量】为“delaytime”。
步骤3 定义动作脚本
在【AS】图层,我们来定义程序代码。
选择【AS】图层的第1帧,在【动作】面板中输入脚本:
delaytime=10;//将动态文本的变量赋值为10
在【AS】图层第13帧插入空白关键帧,在【动作】面板定义动作脚本为:
if (delaytime == 0) {
//判断变量delaytime是否等到于0
gotoAndStop(2);
//如果变量delaytime等于0,就跳转到第2帧然后停止
} else {
//如果变量delaytime不等于0,就执行下面语句
delaytime = delaytime-1;
//变量delaytime自减1
gotoAndPlay(2);
//跳转到第2帧继续播放
}
至此,这个实例制作完成,完成以后的时间轴效果如图8-1-8所示。
图8-1-8 时间轴最后效果
2.输入文本
输入文本是可以接受用户输入的文本,是响应键盘事件的一种,是一种人机交互的工具。
和动态文本一样,使用【文本工具】也可以创建输入文本框,用【文本工具】在场景拖出一个文本框,选中该文本框,在【属性】面板中选择【输入文本】即可,如图8-1-9所示。
图8-1-9 输入文本【属性】面板设置
输入文本最重要的是变量名,如图所示中的【变量】文本框,其中的myInputText即是该输入文本的变量名。输入文本变量和其他变量类似,变量的值会呈现在输入文本框中,输入文本框中的值同时也作为输入文本变量的值,它们之间是等价的。
另外,输入文本对象也具有text属性,这个属性的实用方法和动态文本对象类似。有关输入文本的应用,本书后面的章节有具体的实例,这里就不再详述。

