下载首页 | 在线教学 | 下载分类 | 最近更新 | 排 行 榜 | 注册会员| |
下载首页 | 教学首页 | 电子相册 | 平面设计 | 影音编辑 | 三维动画 | 经营管理| 电脑基础| 光盘刻录 | 促销套装| 免费下载 购买方法
文章搜索: 分类 关键字 88元/3天,118元/7天,158元/18天,全站资源下载
您的位置:首页电子相册Flash → 用动作脚本动态创建和控制文本框
用动作脚本动态创建和控制文本框
日期:2007-11-6 13:49:21 人气:     [ ]

用动作脚本动态创建和控制文本框

  在Flash 5中文本框只能在设计阶段创建,而在Flash MX中,我们可以使用动作脚本在运行期动态创建。在Flash MX的动作脚本语言中新增了两个对象:TextField(文本框)对象和TextFormat(文本格式)对象。使用TextField对象可以动态创建文本,使用TextFormat对象可以动态设置化文本框中文本的格式。

  动态文本框和输入文本框都是动作脚本语言的TextField(文本框)对象的实例。在创建一个文本框时,可以在属性面板中赋予它一个实例名。这样,我们就可以在动作脚本语句中通过实例名来设置、改变和格式化文本框和它的内容。TextField对象拥有与MovieClip(电影剪辑)对象相同的属性和方法,使用这些属性和方法可以设置、选取和管理文本。

  下面给大家介绍使用动作脚本动态创建文本框、动态设置文本框属性、动态格式化文本框中的文本和使用文本框事件控制文本框的方法。

  文章末尾给出整理好的TextField和TextFormat对象的属性和方法的列表,供大家参考查阅。

一、动态创建文本框

  使用MovieClip对象的createTextField(创建文本框)方法创建新的空文本框,作为调用该方法的电影剪辑的子对象。使用removeTextField(删除文本框)方法可以删除用createTextField方法创建的文本框,但它不能删除在时间轴中放置的文本框。

  创建文本框后,可以使用TextField对象来设置文本框的属性。如果不设置文本框的属性,新的文本框将接受下面所列的一组默认属性:

type = "dynamic"
border = false
background = false
password = false
multiline = false
html = false
embedFonts = false
variable = null
maxChars = null

  创建文本框之后,就可以使用TextFormat对象来格式化文本框中的文本。创建一个新的TextFormat对象,并把它作为一个参数,传递给TextField对象的setTextFormat(设置文本格式)方法。用createTextField方法创建的文本框接受下列默认TextFormat对象属性:

font = "Times New Roman"
size = 12
textColor = 0x000000
bold = false
italic = false
underline = false
url = ""
target = ""
align = "left"
leftMargin = 0
rightMargin = 0
indent = 0
leading = 0
bullet = false
tabStops = [] (empty array)

  创建动态文本框的操作步骤如下:

  1.选择要添加动作的帧、按钮或电影剪辑。

  2.如果动作面板没有打开,选择Window>Actions,打开动作面板。

  3.在动作工具箱中,单击展开Objects>Movie>MovieClip>Methods(对象>动画>电影剪辑>方法),然后双击createTextField方法。

  4.在Object框中输入电影剪辑的实例名,该电影剪辑将是新建文本框的父对象。本例输入别名_root,因为主时间轴就是新建文本框的父对象。

  5.在Parameters(参数)框中输入以下参数值,各参数之间用逗号分隔:

Instance Name(实例名):新建文本框的实例名。例如输入:"textBox"。
Depth(深度):指定堆叠顺序的数值。本例输入:1。
X:相对与父剪辑的x坐标。本例输入:50。
Y: 相对与父剪辑的x坐标。本例输入:50。
width(宽度):文本框的宽度。本例输入:200。
height(高度):文本框的高度。本例输入:100。

  下面的代码显示在脚本窗口:

  _root.createTextField("textBox",1,50,50,200,100);

  操作结果如下图所示。



  6.在动作工具箱中,单击展开Actions>Variables(动作>变量),然后双击set variable(设置变量)动作,在Variables框中输入:textBox。

  7.在动作工具箱中,单击展开Objects>Movie>TextField >Properties(对象>动画>文本框>属性),拖动滚动条,找到text属性。

  8.选择脚本窗口中的textBox = ""语句,然后把光标定位到Variables框的textBox后面。

  9.在动作工具箱中双击text。text属性被添加到Variables框的textBox后面,二者之间自动加上点(.)。

  10.在Value框输入:这是我的第一个动态创建文本框。此时在脚本窗口中显示下面的语句:

  textBox.text = "这是我的第一个动态创建文本?";

  操作结果如下图所示。



  本例创建一个文本框,其实例名为textBox,深度为1,x为50,y为50,宽度为200,高度为100。

  11.选择Control>Test Movie(控制>测试动画),你就可以看到动态创建的文本框。
如果要动态删除用createTextField方法创建的文本框(如本例中的textBox),可以在脚本中使用下面的语句:

textBox.removeTextField();

二、动态设置文本框属性

  使用动作脚本设置文本框的属性,必须给文本框分配实例名。如果是用文本工具在编辑区中创建文本框,可以用属性面板设置实例名。如果是用脚本动态创建文本框,可以把实例名作为一个参数,用createTextField方法创建。

  动态设置文本框属性的具体操作步骤如下:

  1.如果动作面板没有打开,选择Window>Actions,打开动作面板。

  2.在动作工具箱中,单击展开Objects>Movie>MovieClip>Methods,双击createTextField方法,然后在Object框中输入实例名:_root;在Parameters框中输入:"dSetPro",1,100,100,400,200。操作结果如下图所示。

  3.在动作工具箱中,单击展开Actions>Variables,然后双击set variable动作,在Variables框中输入:dSetPro。

  4.在动作工具箱中,单击展开Objects>Movie>TextField >Properties,拖动滚动条,找到text属性。

  5.选择脚本窗口中的dSetPro = ""语句,然后把光标定位到Variables框的dSetPro后面。

  6.在动作工具箱中双击text,把它添加到Variables框的dSetPro后面。

  7.在Value框输入:动态设置文本框属性。操作结果如下图所示。

  8.仿照上述第3-7步,用动作脚本设置文本框对象dSetPro的multiline(多行)属性为true,勾选Value文本框右边的Expression(表达式)复选框。

  9.按类似的方法设置wordWrap(绕排)和border(边框)属性。此时,脚本窗口中应该显示如下语句:

dSetPro.multiline = true;
dSetPro.wordWrap = true;
dSetPro.border = true;

  操作结果如下图所示。

  10.选择Control>Test Movie,你就可以看到动态创建的文本框。

三、动态设置文本格式

  可以使用动作脚本语言的TextFormat(文本格式)对象来设置文本框的属性。TextFormat对象合并了字符和段落格式信息。字符格式信息描述单个字符的外观:字体名、字体大小、字符颜色和相关的URL。段落格式信息描述段落的外观:左边界、右边界、首行缩进、左对齐、右对齐、居中。

  首先,你必须创建一个新的TextFormat对象,然后就可以使用TextField对象的方法,并把它们作为参数传递给TextFormat对象,用以格式化文本框中的文本。

  文本框中的每一个字符,可以一个个地分配给TextFormat对象。一个段落的第一个字符的TextFormat对象被用来格式化整个段落。

  动态格式化文本的操作步骤如下:

  1.按照动态设置文本框的方法创建文本框和设置文本框的text属性。文本框的实例名设为textBox,text属性设为“动态格式化文本”。

  2.在动作工具箱中,单击展开Actions>Variables,然后双击set variable动作,在Variables框中输入:tFormat。

  3.在动作工具箱中,单击展开Objects>Movie>TextFormat,拖动滚动条,找到new TextFormat方法。

  4.选择脚本窗口中的tFormat = ""语句,然后把光标定位到Value框中。

  5.在动作工具箱中双击new TextFormat,把它添加到Value框中,勾选其右边的Expression复选框。操作结果如下图所示。

  脚本窗口中应该显示下面的语句:

  tFormat = new TextFormat();

  6.在动作工具箱中,单击展开Actions>Variables,然后双击set variable动作,在Variables框中输入:tFormat。

  7.在动作工具箱中,单击展开Objects>Movie>TextField >Properties,拖动滚动条,找到color属性。

  8.选择脚本窗口中的tFormat = ""语句,然后把光标定位到Variables框的tFormat后面。

  9.在动作工具箱中双击color,把它添加到Variables框的tFormat后面。

  10.在Value框输入:0xff0000。此时,脚本窗口应该添加下面的语句:

  tFormat.color = 0xff0000;

  操作结果如下图所示。

  11.仿照上述6-10步骤,设置文本格式对象的italic(斜体)属性和size(大小)属性。脚本窗口应该增加下面两个语句:

tFormat.italic = true;
tFormat.size = 24;

  12.在动作工具箱中,单击展开Objects>Movie>TextField>Methods(对象>动画>文本框>方法),然后双击setTextFormat方法。

  13.在Object框中输入电影剪辑的实例名textBox。

  14.在Parameters框中输入上面第5步创建的文本格式对象tFormat。脚本窗口中应该显示下面的语句:

textBox.setTextFormat(tformat);

  操作结果如下图所示。

  15.选择Control>Test Movie,你就可以看到动态格式化的文本。

 四、用文本框事件触发动作脚本

  我们可以使用动作脚本来俘获文本框发生的事件。例如,可以确定用户是否修改了文本框的文本或滚动了文本。通过编写脚本语句,使用这些事件来触发脚本运行。可以俘获的文本框事件包括:onChanged和onScroller。

  用文本框事件触发脚本的方法如下:

  1.用文本工具在编辑区中创建一个文本框,然后在属性面板中设置实例名(如textBox),如下图所示;或使用动作脚本中的createTextField方法动态创建文本框,把实例名作为createTextField方法的参数,给文本框指定实例名。

  2.在动作面板的动作工具箱中,单击展开Objects>Movie>TextField>Events,然后双击一种事件。本例双击onChanged事件。

  3.在Object框中输入第1步创建文本框时指定的实例名。本例输入textBox。

  4.在该函数中添加脚本语句,这些语句将在文本框改变时运行。例如,在动作面板的动作工具箱中,单击展开Actions>Miscellaneous Actions(动作>各种动作),双击trace,在Message框中输入:你改变了文本框的文本,在脚本窗口的函数中添加下列语句:

trace("你改变了文本框的文本");

  操作结果如下图所示。

  5.选择Control>Test Movie,你就可以看到输入文本框。改变文本框的内容,在输出窗口就会显示“你改变了文本框的文本”,如下图所示。


  需要指出的是,Trace动作只在测试环境中有效,在播放器中无效。

下载实例源文件

  本文介绍的是用动作脚本动态创建和控制文本框的基本方法,在动画设计中灵活运用,就可以创作出复杂多变的文字动画。在使用中笔者还注意到,用脚本设置中文字体时存在问题,有待版本升级时加以改进。

五、TextField和TextFormat对象的属性和方法列表

  1.TextField对象的属性和方法
















  (1)TextField的方法

方法

说明

TextField.addListener

注册一个对象,当onChanged和oNScroller事件发生时用来接收通知。

TextField.getDepth

返回文本框的深度。

TextField.getNewTextFormat

获取分配给新插入的文本的默认文本格式。

TextField.removeListener

删除侦听对象

TextField.removeTextField

删除用MovieClip.createTextField方法创建的文本框

TextField.setNewTextFormat

给用户或使用方法插入的文本设置文本格式对象。

TextField.replaceSel

替换当前的选择。

TextField.setTextFormat

给新插入的文本设置文本格式。

  (2)TextField的属性

属性

说明

TextField._alpha

文本框实例的透明度值。

TextField.autoSize

控制文本框的自动对齐和大小变化。

TextField.background

指定文本框是否拥有背景填充。

TextField.backgroundColor

指定文本框是否拥有背景色。

TextField.border

指定文本框是否拥有边框。

TextField.borderColor

指定文本框的边框颜色

TextField.bottomScroll

文本框的最低可见行。

TextField.embedFonts

指定文本框是使用嵌入字体轮廓还是使用设备字体。

TextField._highquality

指定动画的渲染质量。

TextField._height

以像素为单位的文本框实例的高度。本属性只影响文本框的范围框,不影响边框宽度或文本字体大小。

TextField.hscroll

指定文本框的水平滚动值。

TextField.html

指定文本框是否包含HTML。

TextField.htmlText

文本框内容包含HTML文本。

TextField.length

文本域的字符数。

TextField.maxChars

文本域可以包含的最大字符数。

TextField.maxhscroll

TextField.hscroll属性的最大值。

TextField.maxscroll

TextField.scroll属性的最大值。

TextField.multiline

指定文本框是否包含多行。

TextField._name

文本框实例名。

TextField._parent

对本实例之父的引用,按钮或电影剪辑。

TextField.password

指定文本框是否隐藏输入的字符。

TextField._quality

指定动画的渲染质量。

TextField.restrict

用户可以在文本框中输入的字符集。

TextField._rotation

文本框实例的旋转角度。

TextField.scroll

指定文本框当前的滚动位置。

TextField.selectable

指定文本框是否可选。

TextField._soundbuftime

声音在播放之前必须预缓存的秒数。

TextField.tabEnabled

指定一个电影剪辑是否包含在自动的Tab排序中。

TextField.tabIndex

指定一个对象的Tab顺序。

TextField.text

文本框的当前文本。

TextField.textColor

文本框中当前文本的颜色。

TextField.textHeight

文本框范围框的高度。

TextField.textWidth

文本框范围框的宽度。

TextField.type

指定文本框是输入文本框还是动态文本框。

TextField._url

创建文本框实例的SWF文件的URL。

TextField.variable

与文本框关联的变量名。

TextField._visible

确定文本框实例是隐藏还是可见的逻辑值。

TextField._width

文本框实例的宽度(以像素为单位)。本属性仅影响文本框的范围框,不影响边框宽度或文本字体大小。

TextField.wordWrap

指定文本框文本自否自动绕排。

TextField._x

文本框实例的x坐标。

TextField._xmouse

光标相对与文本框实例的x坐标。

TextField._xscale

指定文本框实例水平缩放的百分数。

TextField._y

文本框实例的y坐标。

TextField._ymouse

光标相对与文本框实例的y坐标。

TextField._yscale

指定文本框实例垂直缩放的百分数。

  (3)事件管理程序

方法

说明

TextField.onChanged

当文本框文本改变时调用。

TextField.onKillFocus

当文本框失去焦点时调用。

TextField.onScroller

当文本框的scroll、maxscroll、hscroll、maxhscroll或bottomscroll属性改变时调用。

TextField.onSetFocus

当文本框获得焦点时调用。

  (4)侦听程序

方法

说明

TextField.onChanged

当文本框文本改变时通知。

TextField.onScroller

当文本框的scroll或maxscroll属性改变时通知。

2.TextFormat对象的属性和方法

  (1)TextFormat的方法

方法

说明

TextFormat.getTextExtent

返回包含宽度和高度属性(指明文本框中文本的大小)的对象。

  (2)TextFormat的属性

属性

说明

TextFormat.align

指定段落的对齐方式。

TextFormat.blockIndent

指定块缩进(以点表示)。

TextFormat.bold

指定文本是否是粗体。

TextFormat.bullet

指定文本是否是一个以黑点作为项目符号的无序列表。

TextFormat.color

指定文本的颜色。

TextFormat.font

用文本格式指定文本的字体名。

TextFormat.indent

指定段落第一个字符的左缩进。

TextFormat.italic

指定文本是否是斜体。

TextFormat.leading

指定行间距。

TextFormat.leftMargin

指定段落左边界(以点为单位)。

TextFormat.rightMargin

指定段落右边界(以点为单位)。

TextFormat.tabStops

指定自定义的制表位。

TextFormat.target

指定显示超链接的浏览器窗口。

TextFormat.size

指定文本的字体大小。

TextFormat.underline

指定文本是否有下划线。

TextFormat.url

指定文本链接的URL。


出处:典藏数码资源网 作者:本站编辑部
典藏金碟下载系统 V3.0   冀ICP备05003955号 关于本站 | 帮助(?) | 版权声明 | 联系我们 | 访客留言 | 点击这里给我发消息
Copyright© 2006-2008 , All Rights Reserved. 电话:0310-2980137  2987105(销售)    13784019250(技术) 系统制作: 数字金陵网络技术公司