Flash AS入门教程第六课:文本与字符第二节-文本属性

来源:岁月联盟 编辑:zhu 时间:2008-10-27
Flash AS入门教程第六课:文本与字符第二节-文本属性内容简介:文本框与字符二. 文本框的属性上一节我们介绍了创建文本框,文本框创建后我们通过其属性和方法可以对文本框进行操作,本节将介绍文本框的属性设置属性:antiAliasType:用于此 TextField实例的消

文本框与字符

二. 文本框的属性

上一节我们介绍了创建文本框,文本框创建后我们通过其属性和方法可以对文本框进行操作,本节将介绍文本框的属性设置

属性:

antiAliasType:用于此 TextField

实例的消除锯齿类型。它有两个值:

"normal":应用常规文本消除锯齿。

"advanced":应用高级消除锯齿将增加文本的可读性。(此功能从 Flash Player 8 起可用)。高级消除锯齿可以高品质地呈现小尺寸的字体。它最适合具有大量小字号文本的应用程序。建议不要对大于 48 磅的字体使用高级消除锯齿。
设置本属将使用消除锯齿的文本,它将使文本字段有更好的更清晰的显示效果,但所产生的swf文件较大。使用设备字体是指使用用户计算机上已安装的字体,它产生的swf文件最小,而将此属性设为:"advanced"时,产生的swf文件最大。如果制作有大量文本字的swf文件时,要控制文件的大小,请考量此项如何设置更好。

例:this. createTextField("mytext_txt",1,100,100,200,50);
mytext_txt.text = "这是消除锯齿的文本";
mytext_txt.antiAliasType = "advanced"
this. createTextField("mytext1_txt",2,100,200,200,50);
mytext1_txt.text = "这是没有消除锯齿的文本";

测试影片,两个文本效果差不多哈

autoSize:文本的自动大小缩放和对齐方式,可设为以下几个值:

"none"或false:不自动缩放.

"left"
或 true,左边固定向右边缩放.

"right",右边固定向左边缩放.

"center",中间固定向两边缩放

Background:
指定文本字段是否具有背景填充。如果为 true,则文本字段具有背景填充。如果为 false,则文本字段没有背景填充。

backgroundColor:
文本字段背景的颜色。默认值是 0xFFFFFF(白色)。只有当文本字段有边框时,背景颜色才可见。

border:
指定文本字段是否具有边框。如果为 true,则文本字段具有边框。如果为 false,则文本字段没有边框。

borderColor:
文本字段边框的颜色。默认值是 0x000000(黑色)。

例:
this. createTextField("mytext_txt",1,100,100,200,50);
mytext_txt.text = "本例创建了一个文本框:"+"/r"+"运用上面个绍的属性,对文本框外观进行设置";
mytext_txt.autoSize = "center" //文本框中间固定,向两边缩放.
mytext_txt.background = true;//文本框有背景
mytext_txt.backgroundColor=0xff0000;//文本框背景为红色
mytext_txt.border = true;//文本框有边框
mytext_txt.borderColor=0x1111d5;//文本框边框为蓝色

测试影片,结果为:


注:文本中”/r”为换行的意思

embedFonts:
指定是否使用嵌入字体轮廓进行呈现。一个布尔值,当它为 true
时,使用嵌入字体轮廓呈现文本字段。如果为 false,则使用设备字体呈现文本字段。
如果将文本字段的 embedFonts
设置为 true,则必须通过应用于该文本字段的 TextFormat
对象的 font
属性,指定该文本的字体。如果库中不存在指定的字体(具有对应的链接实例名称),则将不显示文本。

注:TextFormat对象将在后面介绍

_height:文本框的高度

_width:文本框的宽度

multiline:
表示文本字段是否为多行文本字段。如果值为 true,则文本字段为多行文本字段;如果值为 false,则文本字段为单行文本字段。

_name:文本字段的实例名称。

length:表示文本字段中的字符数

password:
指定文本字段是否是密码文本字段。如果 password 的值为 true,则文本字段为密码文本字段,并使用星号替代实际字符来隐藏输入的字符。如果为 false,则文本字段不是密码文本字段。启用密码模式时,剪切和复制命令及其相应的键盘快捷方式不起作用。此安全机制可防止不良用户使用快捷键在无人看管的计算机上破译密码。

例:
this. createTextField("mytext_txt",1,100,100,200,50);
mytext_txt.text = "12345";
mytext_txt.border = true;
mytext_txt.password = true;
测试影片,结果为:


文本框中只有星号,无法看到文本内容

_rotation:
文本字段距其原始方向的旋转程度. 使用设备字体的文本字段不支持旋转值。您必须使用嵌入字体才能对文本字段使用 _rotation

selectable:
一个布尔值,表示文本字段是否可选。值 true
表示文本可选。selectable
属性控制文本字段是否可选,而不控制文本字段是否可编辑。动态文本字段即使不可编辑,它也可能是可选的。如果动态文本字段是不可选的,则您不能选择其中的文本。
如果 selectable 设置为 false,则文本字段中的文本不响应来自鼠标或键盘的"选择"命令,并且不能使用"复制"命令复制文本。如果 selectable 设置为 true,则可以使用鼠标或键盘选择该文本字段中的文本。即使文本字段是动态文本字段而不是输入文本字段,您也可以用这种方式选择文本。可以使用"复制"命令复制文本。

例:
this.createTextField("mytext_txt",1,100,100,200,50);
this.createTextField("mytext1_txt",2,100,200,200,50);
mytext_txt.border = true;
mytext1_txt.border = true;
mytext1_txt.selectable=false;
mytext_txt.text="这个文本内容可选";
mytext1_txt.text = "这个文本内容不可选"
测试影片,出现两个文本框,一个文本框的内容可以拉黑(可选),点右键有复制菜单项.而另一个则不能被拉黑,没有右键菜单项
text:
表示文本字段中的当前文本。行用回车符("/r",即 ASCII 13)分隔。

textColor:
表示文本字段中文本的颜色。

例:
this.createTextField("mytext_txt",1,100,100,200,50);
mytext_txt.border = true;
mytext_txt.textColor=0xff0000;
mytext_txt.text="这个文本是红色的";

textHeight:
指示文本的高度,以像素为单位

textWidth:
指示文本的宽度,以像素为单位

type:
指定文本字段的类型。共有两个值:"dynamic"(指定用户无法编辑的动态文本字段)和 "input"(指定输入文本字段)。

_visible:
一个布尔值,表示文本字段是否可见。禁用不可见的文本字段(_visible 属性设置为 false)。

wordWrap:
一个布尔值,表示文本字段是否自动换行。如果 wordWrap 的值为 true,则该文本字段自动换行;如果值为 false,则该文本字段不自动换行

_x:
一个整数,用来设置文本字段相对于父级影片剪辑的本地坐标的 x 坐标.注册点在左上角

_y:
文本字段相对于父级影片剪辑的本地坐标的 y 坐标。注册点在左上角

_xscale:
确定从文本字段注册点开始应用的文本字段的水平缩放比例,以百分比表示

_yscale:
从文本字段的注册点开始应用的文本字段的垂直缩放比例,以百分比表示

关于文本滚动的属性设置:

hscroll:表示当前水平滚动位置。如果 hscroll

属性为 0,则不能水平滚动文本

水平滚动的单位是像素,而垂直滚动的单位是行。水平滚动以像素计量是因为您通常使用的多数字体都是按比例隔开的;这意味着字符可以有不同的宽度。Flash 按行执行垂直滚动是因为用户通常希望看到一整行文本,而不是一行的局部。即使一行上有多种字体,行的高度也会调整到与使用的最大字体相适合。

maxhscroll:表示 TextField.hscroll 的最大值

例:
this.createTextField("mytext_txt",1,100,100,100,20);
mytext_txt.autoSize=false;
mytext_txt.text="这是一个滚动文本的效果,我们可以看到文本在滚动.";
onEnterFrame = function() {

if(mytext_txt.hscroll < mytext_txt.maxhscroll){

mytext_txt.hscroll ++;

}else {

mytext_txt.hscroll =1;

}
}
测试影片,你将看到一个滚动文本。代码中用了一个onEnterFrame事件,这是每运行一帧就执行一次,这样就形成了一个无限的循环。

scroll:
文本在文本字段中的垂直位置。scroll 属性可用于将用户定向到长篇文章的特定段落,还可用于创建滚动文本字段。可以检索和修改此属性。水平滚动的单位是像素,而垂直滚动的单位是行。

maxscroll:
表示 TextField.scroll 的最大值。
参考上例可以做出垂直方向滚动的文本。但却不能用onEnterFrame事件,为什么呢?因为scroll属性是以行为单位,如果每帧跳一行的话,那就太快了。你可以放一个按钮,让每点一次按钮,文本向上滚动行。这个留给大家自已练习吧。可以实现自动滚动吗?当然可以,留到本节课后练习来说。

TextFormat类:
上面主要介绍了文本框的的一些属性,而文本内容的属性比如字体,颜色,对齐方式等就要借助TextFormat类来实现。使用 TextFormat 类可以为文本字段创建特定的文本格式。您可以将文本格式应用于静态文本字段和动态文本字段。必须使用构造函数 new TextFormat()

创建 TextFormat 对象,然后设置其属性,再用文本框的setTextFormat()方法来使用这些属性。

1.创建TextFormat对象:
var myformat:TextFormat = new TextFormat();这就创建了一个叫myformat的TextFormat对象。

2.设置TextFormat对象的属性:
myformat.bold = true;设置了myformat的bold(粗体字)属性.

3.文本框调用setTextFormat()方法:
mytext_txt. setTextFormat(myformat);这样文本框就调用了myformat中的属性设置,即文本框的内容将以粗体字显示。

例:
var myformat:TextFormat = new TextFormat();
myyformat.bold=true;this.createTextField"mytext_txt",1,100,100,100,20);
mytext_txt.autoSize=true;mytext_txt.text="设置了粗体";
mytext_txt.setTextFormat(myformat);
测试影片,可以看到文本框中的文字是粗体的。

TextFormat对象的属性:

align:指示段落的对齐方式的字符串。您可以将此属性应用于静态文本和动态文本。下面的列表显示此属性的可能值:

* "left" -- 段落为左对齐。
* "center" -- 段落居中。
* "right" -- 段落为右对齐。
* "justify" -- 段落为两端对齐。(Flash Player 8 中添加了此值。)

默认值是 null,它指示该属性未定义。

blockIndent:
以磅为单位指示块缩进的数字。块缩进应用于整个文本块,即文本的所有行。而普通缩进 (TextFormat.indent) 只影响各段的第一行。如果此属性为 null,则 TextFormat 对象不指定块缩进。

bold:
一个布尔值,指示文本是否为粗体字。默认值是 null,它指示该属性未定义。如果值为 true,则文本为粗体字。

color:指示文本的颜色。

font:
使用此文本格式的文本的字体名称,以字符串形式表示。

indent:
指示从左边距到段落中第一个字符的缩进的整数。正值指示普通缩进。您可以使用负值,但只可在左边距大于 0 时进行负缩进。若要将边距设置为大于 0,请使用 indent 属性或 TextFormat 对象的 blockIndent 属性。默认值是 null,它指示该属性未定义。

italic一个布尔值,指示使用此文本格式的文本是否为斜体

leading:一个整数,表示以像素为单位的行间垂直距离(称为"行距")。

leftMargin:段落的左边距,以磅为单位

letterSpacing:字间距

rightMargin:段落的右边距,以磅为单位。

size:文字的大小

underline:一个布尔值,指示使用此文本格式的文本有下划线 (true) 还是没有下划线 (false)

下面我们来做个练习:滚动文本的制作

新建一flash文档,导入一图片,用为背影,居中放好

新插入一层,命名为action.开始写代码:

1、横向滚动:
首先创建一个TextFormat对象,然后设置文本框要用到的属性.

创建文本框,并设置其autoSize属性为false,不让其缩放大小.设置文本框的text属性,前后输入一定数量空格,以避免滚动时出现不连惯.
用onEnterFrame事件实现滚动,方法参见上面例句

2、纵向滚动:
首先创建一个TextFormat对象,然后设置文本框要用到的属性.

创建文本框,并设置其autoSize属性为false,不让其缩放大小.设置文本框的text属性,第一行前和最后一行后,插入一定数量”/r”,以避免滚动时出现不连惯.

创建一函数,使文本滚动,方法参考横向滚动

用:
var 随便取个变量名 = setInterval(刚建的函数名,1000);
实现滚动.这一句的意思是每隔1000毫秒调用一次函数,后面课程将详细介绍

3、3D字效果
原理是创建两个文本框,内容相同,字的颜色不同,文本框的位置略微错开2个象素左右.

作业:制作滚动文本


附完整代码:

建议大家自已完成本练习,不要看这个代码,实在有困难时,只可参考这个代码.坚决反对直接复制本代码,那样就没意思了,对你学习AS一点好处都没有.
var myformat:TextFormat = new TextFormat();
myformat.bold = true;
myformat.size = 30;
myformat.color = 0xff0000;
this.createTextField("mytext_txt",1,200,50,200,50);
mytext_txt.autoSize=false;
mytext_txt.text="
在花好月圆之夜,祝各位坛友中秋快乐!
";
mytext_txt.setTextFormat(myformat);
onEnterFrame = function(){
if(mytext_txt.hscroll<mytext_txt.maxhscroll){

mytext_txt.hscroll ++;
} else {

mytext_txt.hscroll =1;
}
}
var myformat1:TextFormat = new TextFormat();
myformat1.size = 18;
myformat1.color = 0xf4f44f;
this.createTextField("mytext1_txt",2,100,150,150,150);
mytext1_txt.autoSize=false;
mytext1_txt.text="/r"+"/r"+"/r"+"/r"+"/r"+"/r"+"明月几时有?"+"/r"+"把酒问青天"+"/r"+"不知天上宫阙,"+"/r"+"今昔是何年";
mytext1_txt.text +="/r"+"我欲乘风归去,"+"/r"+"又恐琼楼玉宇,"+"/r"+"高处不胜寒。"+"/r"+"起舞弄清影,"+"/r"+"何似在人间.";
mytext1_txt.text +="/r"+"/r"+"转诸阁,"+"/r"+"低倚户,"+"/r"+"照无眠."+"/r"+"不应有恨,"+"/r"+"何事长向别时圆.";
mytext1_txt.text +="/r"+"人生悲欢离合,"+"/r"+"月有阴晴圆缺,"+"/r"+"此事古难全."+"/r"+"但愿人长久,"+"/r"+"千里共婵娟."
mytext1_txt.text +="/r"+"/r"+"/r"+"/r"+"/r"+"/r"+"/r"+"/r"
mytext1_txt.setTextFormat(myformat1);
function gd(){

if(mytext1_txt.scroll<mytext1_txt.maxscroll){

mytext1_txt.scroll ++;
} else {

mytext1_txt.scroll =1;
}
}
var ksgd = setInterval(gd,1000);
var myformat2:TextFormat = new TextFormat();
myformat2.bold = true;
myformat2.size = 30;
myformat2.color = 0x988E81;
this.createTextField("mytext2_txt",3,200,300,200,50);
mytext2_txt.autoSize="center";
mytext2_txt.text="花好月圆贺中秋";
mytext2_txt.setTextFormat(myformat2);
var myformat3:TextFormat = new TextFormat();
myformat3.bold = true;
myformat3.size = 30;
myformat3.color = 0x430FBD;
this.createTextField("mytext3_txt",4,202,300,200,50);
mytext3_txt.autoSize="center";
mytext3_txt.text="花好月圆贺中秋";
mytext3_txt.setTextFormat(myformat3);