- 浏览: 101992 次
- 性别:
- 来自: 大连
文章分类
最新评论
设置文本框的边框、背景与前景色
默认状态下,文本框的边框和背景都是禁用的。所以在设置之前需要先启用;前景色可直接设置。
边框 -- TextField.border = true; TextField.borderColor = 0xFF0000;
背景 -- TextField.background = true; TextField.backgroundColor = 0xFF0000;
前景色 -- TextField.textColor = 0xFF0000;
设置文本框为可输入,不能选择及粘贴
设置TextField.type属性为TextFieldType.INPUT,可以将文本框定义为可输入。默认是TextFieldType.DYNAMIC(动态文本框,可以由ActionScript控制,但用户无法输入)
设置TextField.selectable = false,则文本字段中的文本不响应来自鼠标或键盘的选择命令,并且不能使用“复制”命令复制文本。默认为true
设置文本框为密码输入框
设置TextField.displayAsPassword = true;
限制文本输入
设置TextField.restrict,例如设置TextField.restrict = "abc",则只允许输入字符abc,以大写形式输入也会变成小写。
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldType;
public class Sample0323 extends Sprite
{
public function Sample0323()
{
var text:TextField = new TextField();
text.type = TextFieldType.INPUT;
text.border = true;
text.borderColor = 0xFFFF00;
text.height = 20;
text.restrict = "a-z0-9";//允许a-z和0-9之间的字符
//text.restrict = "0-9^5"; //允许除了5以外的所有数字
//text.restrict = "^\u001A"; //不允许(Control-Z) 产生的字符(Unicode编码)
//text.restrict = "^\\-"; //特殊符号可通过(\\)进行转义
this.addChild(text);
}
}
}
限制文本框输入字符数
设置TextField.maxChars = 5,则为最大允许输入5个字符。如果设为null则表示不限制
显示HTML格式文本
设置htmlText属性值为HTML内容
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldType;
public class Sample0323 extends Sprite
{
public function Sample0323()
{
var text:TextField = new TextField();
text.type = TextFieldType.INPUT;
text.border = true;
text.borderColor = 0xFFFF00;
text.height = 20;
text.htmlText = "<a href='http://www.baidu.com/' target='_blank'><i><u>跳转到百度</u></i></a>";
text.appendText("增加的内容");
this.addChild(text);
}
}
}
显示HTML文本时压缩空格
设置condenseWhite属性为true
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldType;
public class Sample0323 extends Sprite
{
public function Sample0323()
{
var text:TextField = new TextField();
text.type = TextFieldType.INPUT;
text.border = true;
text.borderColor = 0xFFFF00;
text.height = 20;
text.condenseWhite = true;//必须在赋值前设置,否则无效
text.htmlText = "hello world!";
this.addChild(text);
}
}
}
调整文本框大小以适应内容
设置autoSize属性可自动根据内容调整文本框大小。可用值为RIGHT, LEFT, CENTER,和NONE,都是flash.text.TextFieldAutoSize类常量
默认值为NONE,表示不自动调整大小。 另外,wordWrap属性设置为true,则当内容超出范围时自动换行。貌似必须先设置autoSize才生效
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFieldType;
public class Sample0323 extends Sprite
{
public function Sample0323()
{
var text:TextField = new TextField();
text.type = TextFieldType.INPUT;
text.border = true;
text.borderColor = 0xFFFF00;
text.height = 20;
text.autoSize = TextFieldAutoSize.CENTER;
text.wordWrap = true;
this.addChild(text);
}
}
}
滚动文本
水平滚动的单位为像素(最小值为0),垂直滚动的单位为行(最小值为1)。设置WheelEnabled=false可以禁用滚轮滚动行。
scrollH -- 水平滚动的像素
maxScrollH -- 文本的最大水平像素值,只读
scrollV -- 垂直滚动的行数
maxScrollV -- 文本的最大行数,只读
bottomScrollV -- 当前最后一行是第几行(在整个行数里),只读
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFieldType;
public class Sample0323 extends Sprite
{
private var textBox:TextField;
private var textInfo:TextField;
public function Sample0323()
{
textBox = new TextField();
textBox.type = TextFieldType.INPUT;
textBox.width = 250;
textBox.height = 100;
textBox.border = true;
textBox.borderColor = 0xFFFF00;
textBox.background = true;
textBox.backgroundColor = 0xFFFFFF;
//测试水平滚动则为false,垂直滚动则为true;
textBox.wordWrap = true;
this.addChild(textBox);
var label:TextField = new TextField();
label.x = 200;
label.y = 100;
label.background = true;
label.backgroundColor = 0xCCCCCC;
label.autoSize = TextFieldAutoSize.CENTER;
label.text = "水平滚动10个像素";
label.addEventListener(MouseEvent.CLICK,scrollH_onClick);
this.addChild(label);
label = new TextField();
label.x = 200;
label.y = 150;
label.background = true;
label.backgroundColor = 0xCCCCCC;
label.autoSize = TextFieldAutoSize.CENTER;
label.text = "水平滚动至结尾";
label.addEventListener(MouseEvent.CLICK,maxScrollH_onClick);
this.addChild(label);
label = new TextField();
label.x = 200;
label.y = 200;
label.background = true;
label.backgroundColor = 0xCCCCCC;
label.autoSize = TextFieldAutoSize.CENTER;
label.text = "垂直滚动3行";
label.addEventListener(MouseEvent.CLICK,scrollV_onClick);
this.addChild(label);
label = new TextField();
label.x = 200;
label.y = 250;
label.background = true;
label.backgroundColor = 0xCCCCCC;
label.autoSize = TextFieldAutoSize.CENTER;
label.text = "垂直滚动至结尾";
label.addEventListener(MouseEvent.CLICK,maxScrollV_onClick);
this.addChild(label);
textInfo = new TextField();
textInfo.type = TextFieldType.INPUT;
textInfo.y = 300;
textInfo.autoSize = TextFieldAutoSize.CENTER;
this.addChild(textInfo);
}
private function scrollH_onClick(event:MouseEvent):void
{
textBox.scrollH = 10;
}
private function maxScrollH_onClick(event:MouseEvent):void
{
textBox.scrollH = textBox.maxScrollH;
}
private function scrollV_onClick(event:MouseEvent):void
{
textBox.scrollV = 3;
textInfo.text = "当前最后一行在整个行数里是第" textBox.bottomScrollV "行";
}
private function maxScrollV_onClick(event:MouseEvent):void
{
textBox.scrollV = textBox.maxScrollV;
}
}
}
响应滚动事件
当水平或垂直滚动产生时会触发scroll事件,flash.events.Event类的SCROLL常量即代表该事件
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFieldType;
import flash.utils.getTimer;
public class Sample0323 extends Sprite
{
private var textBox:TextField;
private var textInfo:TextField;
public function Sample0323()
{
textBox = new TextField();
textBox.type = TextFieldType.INPUT;
textBox.width = 250;
textBox.height = 100;
textBox.border = true;
textBox.borderColor = 0xFFFF00;
textBox.background = true;
textBox.backgroundColor = 0xFFFFFF;
textBox.wordWrap = true;
textBox.addEventListener(Event.SCROLL,onScroll);
this.addChild(textBox);
textInfo = new TextField();
textInfo.type = TextFieldType.INPUT;
textInfo.y = 300;
textInfo.autoSize = TextFieldAutoSize.CENTER;
this.addChild(textInfo);
}
private function onScroll(event:Event):void
{
textInfo.text = flash.utils.getTimer() " -- 滚动了";
}
}
}
格式化文本框文本
有三种方式对文本进行格式化:HTML标签格式化、使用TextFormat对象、CSS样式
* HTML标签格式化示例: textBox.htmlText = "<B>粗体文本</B><U>下划线文本</U>";
* TextFormat对象示例:(注意:只对setTextFormat之前的代码有效)
var textFormat:TextFormat = new TextFormat();
textFormat.color = 0xFF0000;
textFormat.htmlText = "有效";
//也可以对部分文字进行格式化,例如:textBox.setTextFormat(textFormat,3,textBox.text.length);
textBox.setTextFormat(textFormat); textFormat.htmlText = "无效";
* CSS样式示例:(注意:只对CSS定义之后的代码有效)
var css:StyleSheet = new StyleSheet();
var styleObj:Object = {color:"#FF0000"};
css.setStyle(".stdStyle",styleObj);
textBox.styleSheet = css;
textBox.htmlText = "不潮不用花钱";
this.addChild(textBox);
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.StyleSheet;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
public class Sample0324 extends Sprite
{
private var label:TextField;
private var text:String = "here comes <span class='stdText'>wayne</span>";
public function Sample0324()
{
var btnRed:TextField = new TextField();
btnRed.text = "应用红色样式";
btnRed.y = 100;
btnRed.addEventListener(MouseEvent.CLICK,onRedClick);
this.addChild(btnRed);
var btnGreen:TextField = new TextField();
btnGreen.text = "应用绿色样式";
btnGreen.y = 200;
btnGreen.addEventListener(MouseEvent.CLICK,onGreenClick);
this.addChild(btnGreen);
label = new TextField();
label.autoSize = TextFieldAutoSize.CENTER;
label.htmlText = text;
this.addChild(label);
}
private function onRedClick(event:MouseEvent):void
{
var loader:URLLoader = new URLLoader();
loader.load(new URLRequest("StdStyle.css"));
loader.addEventListener(Event.COMPLETE,onLoadComplete);
}
private function onGreenClick(event:MouseEvent):void
{
var loader:URLLoader = new URLLoader();
loader.load(new URLRequest("StdStyle2.css"));
loader.addEventListener(Event.COMPLETE,onLoadComplete);
}
private function onLoadComplete(event:Event):void
{
var css:StyleSheet = new StyleSheet();
css.parseCSS((event.target as URLLoader).data);
label.styleSheet = css;
label.htmlText = text;
}
}
}
格式化用户输入的文本
应用TextFormat对象到文本框的defaultTextFormat属性上
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldType;
import flash.text.TextFormat;
public class Sample0324 extends Sprite
{
public function Sample0324()
{
var textBox:TextField = new TextField();
textBox.type = TextFieldType.INPUT;
textBox.border = true;
textBox.borderColor = 0xFFFF00;
var textFormat:TextFormat = new TextFormat();
textFormat.color = 0xFF0000;
textFormat.italic = true;
textBox.defaultTextFormat = textFormat;
this.addChild(textBox);
}
}
}
设置文本字体
使用HTML的标签,或者设置TextFormat对象的font属性,或者通过CSS的font-family属性
修改字体有多种方法,如果使用HTML的话可通过 标签更改:field.htmlText = "Formatted text";
也可设置TextFormat对象的font属性:formatter.font = "Arial";
或者在CSS中定义font-family 属性:p {font-family: Arial;}
需要注意的是电脑中必须要有你所指定的字体,因为有些电脑上可能没有安装相应的字体,这是可指定多种字体:formatter.font = "Arial, Verdana, Helvetica";
如果都没有指定字体,默认使用系统字体。
另外我们还可使用字体组,字体组是系统默认字体的一个分类,有三种: _sans, _serif, 和_typewriter。
_sans 组包含如Arial 或Helvetica,_serif组包含如Times 或Times New Roman,_typewriter 组包含如Courier 或Courier New
嵌入字体
通过[embed]元数据嵌入字体,设置文本框的embedFonts属性为true,通过标签,TextFormat对象或CSS应用字体
嵌入系统字体:
[Embed(systemFont="Onyx",fontName="hxw",mimeType="application/x-font-truetype")]
嵌入非系统字体:
[Embed(source="xjlFont.fon",fontName="xjl",mimeType="application/x-font")]
可以设置textField.rotation = 30来设置文字旋转(放在定时器或OnEnterFrame事件里),文字必须为嵌入字体,否则无法正常显示。
TextFormat方式
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
[Embed(source="xjlFont.fon",fontName="xjl",mimeType="application/x-font-truetype")]
public class Sample0410 extends Sprite
{
public function Sample0410()
{
var textBox:TextField = new TextField();
textBox.text = "hello everybody,my name is 老胡";
textBox.autoSize = TextFieldAutoSize.CENTER;
textBox.embedFonts=true;
addChild(textBox);
var formatter:TextFormat = new TextFormat();
formatter.font = "xjl";
formatter.size = 30;
textBox.setTextFormat(formatter);
}
}
}
CSS方式
package {
import flash.display.Sprite;
import flash.text.StyleSheet;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
[Embed(source="xjlFont.fon",fontName="xjl",mimeType="application/x-font-truetype")]
public class Sample0410 extends Sprite
{
public function Sample0410()
{
var css:StyleSheet = new StyleSheet();
var styleObj:Object = {color:"#FFFF00", fontFamily:"xjl",fontSize:"30px"};
css.setStyle(".stdStyle",styleObj);
var textBox:TextField = new TextField();
textBox.styleSheet = css;
textBox.text = "<span class='stdStyle'>hello everybody,my name is 老胡</span>";
textBox.autoSize = TextFieldAutoSize.CENTER;
textBox.embedFonts=true;
addChild(textBox);
}
}
}
设置焦点
设置stage.focus = xxx来设置舞台的焦点,stage.focus = null可以移除焦点
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFieldType;
public class Sample0410 extends Sprite
{
public function Sample0410()
{
var field:TextField = new TextField( );
field.border = true;
field.background = true;
field.type = TextFieldType.INPUT;
addChild(field);
stage.addEventListener(MouseEvent.CLICK,onClick);
}
private function onClick(event:MouseEvent):void
{
stage.focus = getChildAt(0) as TextField;
//this.removeEventListener(MouseEvent.CLICK,onClick);
}
}
}
选中TextField的部分文本及设置光标所在位置
设置TextField.setSelection(startIndex,endIndex),同时通过selectionBeginIndex和selectionEndIndex两个只读属性可获得选中文本的具体位置
如果设置setSelection的两个参数相同,则是在设置光标所在位置,通过TextField.caretIndex属性可以得到当前光标所在位置
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFieldType;
public class Sample0410 extends Sprite
{
private var lblNumber:TextField;
public function Sample0410()
{
var field:TextField = new TextField( );
field.border = true;
field.background = true;
field.type = TextFieldType.INPUT;
field.text = "我们的祖先在护佑着你";
this.addChild(field);
lblNumber = new TextField();
lblNumber.autoSize = TextFieldAutoSize.CENTER;
lblNumber.background = true;
lblNumber.y = 150;
this.addChild(lblNumber);
field.addEventListener(MouseEvent.CLICK,onClick);
}
private function onClick(event:MouseEvent):void
{
var textBox:TextField = event.target as TextField;
textBox.setSelection(5,5);
var strStart:String = "起始点:" textBox.selectionBeginIndex.toString();
var strEnd:String = "结束点:" textBox.selectionEndIndex.toString();
var currentIndex:String = "当前光标所在:" textBox.caretIndex;
lblNumber.text = strStart "," strEnd "," currentIndex;
}
}
}
取消事件的默认行为(如果可以取消)
默认情况下,许多事件都有Flash Player执行的关联行为。例如,如果用户在文本字段中键入一个字符,则默认行为就是在文本字段中显示该字符。可以使用preventDefault()方法来防止显示该字符
然后很多事件是瞬发的,像点击事件、获得焦点、失去焦点事件
可以使用Event.cancelable属性来判断是否可以取消行为,如果返回true,则可以使用preventDefault()来取消事件;否则preventDefault()无效
package {
import flash.display.Sprite;
import flash.events.FocusEvent;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFieldType;
public class Sample0410 extends Sprite
{
public function Sample0410()
{
//演示MouseEvent.Click事件是无法取消行为的
stage.addEventListener(MouseEvent.CLICK,onClick);
//演示FocusEvent.FOCUS_IN事件是无法取消行为的
var textBox:TextField = new TextField();
textBox.type = TextFieldType.INPUT;
textBox.background = true;
textBox.addEventListener(FocusEvent.FOCUS_IN,onFocusIn);
this.addChild(textBox);
//演示FocusEvent.MOUSE_FOCUS_CHANGE事件是可以取消行为的
textBox.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE,onMouseFocusChange);
}
private function onClick(event:MouseEvent):void
{
trace("MouseEvent.Click事件可以取消行为吗?" event.cancelable);//显示false
}
private function onFocusIn(event:FocusEvent):void
{
trace("FocusEvent.FOCUS_IN事件可以取消行为吗?" event.cancelable);//显示false
}
private function onMouseFocusChange(event:FocusEvent):void
{
trace("FocusEvent.MOUSE_FOCUS_CHANGE事件可以取消行为吗?" event.cancelable);//显示true
}
}
}
默认状态下,文本框的边框和背景都是禁用的。所以在设置之前需要先启用;前景色可直接设置。
边框 -- TextField.border = true; TextField.borderColor = 0xFF0000;
背景 -- TextField.background = true; TextField.backgroundColor = 0xFF0000;
前景色 -- TextField.textColor = 0xFF0000;
设置文本框为可输入,不能选择及粘贴
设置TextField.type属性为TextFieldType.INPUT,可以将文本框定义为可输入。默认是TextFieldType.DYNAMIC(动态文本框,可以由ActionScript控制,但用户无法输入)
设置TextField.selectable = false,则文本字段中的文本不响应来自鼠标或键盘的选择命令,并且不能使用“复制”命令复制文本。默认为true
设置文本框为密码输入框
设置TextField.displayAsPassword = true;
限制文本输入
设置TextField.restrict,例如设置TextField.restrict = "abc",则只允许输入字符abc,以大写形式输入也会变成小写。
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldType;
public class Sample0323 extends Sprite
{
public function Sample0323()
{
var text:TextField = new TextField();
text.type = TextFieldType.INPUT;
text.border = true;
text.borderColor = 0xFFFF00;
text.height = 20;
text.restrict = "a-z0-9";//允许a-z和0-9之间的字符
//text.restrict = "0-9^5"; //允许除了5以外的所有数字
//text.restrict = "^\u001A"; //不允许(Control-Z) 产生的字符(Unicode编码)
//text.restrict = "^\\-"; //特殊符号可通过(\\)进行转义
this.addChild(text);
}
}
}
限制文本框输入字符数
设置TextField.maxChars = 5,则为最大允许输入5个字符。如果设为null则表示不限制
显示HTML格式文本
设置htmlText属性值为HTML内容
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldType;
public class Sample0323 extends Sprite
{
public function Sample0323()
{
var text:TextField = new TextField();
text.type = TextFieldType.INPUT;
text.border = true;
text.borderColor = 0xFFFF00;
text.height = 20;
text.htmlText = "<a href='http://www.baidu.com/' target='_blank'><i><u>跳转到百度</u></i></a>";
text.appendText("增加的内容");
this.addChild(text);
}
}
}
显示HTML文本时压缩空格
设置condenseWhite属性为true
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldType;
public class Sample0323 extends Sprite
{
public function Sample0323()
{
var text:TextField = new TextField();
text.type = TextFieldType.INPUT;
text.border = true;
text.borderColor = 0xFFFF00;
text.height = 20;
text.condenseWhite = true;//必须在赋值前设置,否则无效
text.htmlText = "hello world!";
this.addChild(text);
}
}
}
调整文本框大小以适应内容
设置autoSize属性可自动根据内容调整文本框大小。可用值为RIGHT, LEFT, CENTER,和NONE,都是flash.text.TextFieldAutoSize类常量
默认值为NONE,表示不自动调整大小。 另外,wordWrap属性设置为true,则当内容超出范围时自动换行。貌似必须先设置autoSize才生效
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFieldType;
public class Sample0323 extends Sprite
{
public function Sample0323()
{
var text:TextField = new TextField();
text.type = TextFieldType.INPUT;
text.border = true;
text.borderColor = 0xFFFF00;
text.height = 20;
text.autoSize = TextFieldAutoSize.CENTER;
text.wordWrap = true;
this.addChild(text);
}
}
}
滚动文本
水平滚动的单位为像素(最小值为0),垂直滚动的单位为行(最小值为1)。设置WheelEnabled=false可以禁用滚轮滚动行。
scrollH -- 水平滚动的像素
maxScrollH -- 文本的最大水平像素值,只读
scrollV -- 垂直滚动的行数
maxScrollV -- 文本的最大行数,只读
bottomScrollV -- 当前最后一行是第几行(在整个行数里),只读
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFieldType;
public class Sample0323 extends Sprite
{
private var textBox:TextField;
private var textInfo:TextField;
public function Sample0323()
{
textBox = new TextField();
textBox.type = TextFieldType.INPUT;
textBox.width = 250;
textBox.height = 100;
textBox.border = true;
textBox.borderColor = 0xFFFF00;
textBox.background = true;
textBox.backgroundColor = 0xFFFFFF;
//测试水平滚动则为false,垂直滚动则为true;
textBox.wordWrap = true;
this.addChild(textBox);
var label:TextField = new TextField();
label.x = 200;
label.y = 100;
label.background = true;
label.backgroundColor = 0xCCCCCC;
label.autoSize = TextFieldAutoSize.CENTER;
label.text = "水平滚动10个像素";
label.addEventListener(MouseEvent.CLICK,scrollH_onClick);
this.addChild(label);
label = new TextField();
label.x = 200;
label.y = 150;
label.background = true;
label.backgroundColor = 0xCCCCCC;
label.autoSize = TextFieldAutoSize.CENTER;
label.text = "水平滚动至结尾";
label.addEventListener(MouseEvent.CLICK,maxScrollH_onClick);
this.addChild(label);
label = new TextField();
label.x = 200;
label.y = 200;
label.background = true;
label.backgroundColor = 0xCCCCCC;
label.autoSize = TextFieldAutoSize.CENTER;
label.text = "垂直滚动3行";
label.addEventListener(MouseEvent.CLICK,scrollV_onClick);
this.addChild(label);
label = new TextField();
label.x = 200;
label.y = 250;
label.background = true;
label.backgroundColor = 0xCCCCCC;
label.autoSize = TextFieldAutoSize.CENTER;
label.text = "垂直滚动至结尾";
label.addEventListener(MouseEvent.CLICK,maxScrollV_onClick);
this.addChild(label);
textInfo = new TextField();
textInfo.type = TextFieldType.INPUT;
textInfo.y = 300;
textInfo.autoSize = TextFieldAutoSize.CENTER;
this.addChild(textInfo);
}
private function scrollH_onClick(event:MouseEvent):void
{
textBox.scrollH = 10;
}
private function maxScrollH_onClick(event:MouseEvent):void
{
textBox.scrollH = textBox.maxScrollH;
}
private function scrollV_onClick(event:MouseEvent):void
{
textBox.scrollV = 3;
textInfo.text = "当前最后一行在整个行数里是第" textBox.bottomScrollV "行";
}
private function maxScrollV_onClick(event:MouseEvent):void
{
textBox.scrollV = textBox.maxScrollV;
}
}
}
响应滚动事件
当水平或垂直滚动产生时会触发scroll事件,flash.events.Event类的SCROLL常量即代表该事件
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFieldType;
import flash.utils.getTimer;
public class Sample0323 extends Sprite
{
private var textBox:TextField;
private var textInfo:TextField;
public function Sample0323()
{
textBox = new TextField();
textBox.type = TextFieldType.INPUT;
textBox.width = 250;
textBox.height = 100;
textBox.border = true;
textBox.borderColor = 0xFFFF00;
textBox.background = true;
textBox.backgroundColor = 0xFFFFFF;
textBox.wordWrap = true;
textBox.addEventListener(Event.SCROLL,onScroll);
this.addChild(textBox);
textInfo = new TextField();
textInfo.type = TextFieldType.INPUT;
textInfo.y = 300;
textInfo.autoSize = TextFieldAutoSize.CENTER;
this.addChild(textInfo);
}
private function onScroll(event:Event):void
{
textInfo.text = flash.utils.getTimer() " -- 滚动了";
}
}
}
格式化文本框文本
有三种方式对文本进行格式化:HTML标签格式化、使用TextFormat对象、CSS样式
* HTML标签格式化示例: textBox.htmlText = "<B>粗体文本</B><U>下划线文本</U>";
* TextFormat对象示例:(注意:只对setTextFormat之前的代码有效)
var textFormat:TextFormat = new TextFormat();
textFormat.color = 0xFF0000;
textFormat.htmlText = "有效";
//也可以对部分文字进行格式化,例如:textBox.setTextFormat(textFormat,3,textBox.text.length);
textBox.setTextFormat(textFormat); textFormat.htmlText = "无效";
* CSS样式示例:(注意:只对CSS定义之后的代码有效)
var css:StyleSheet = new StyleSheet();
var styleObj:Object = {color:"#FF0000"};
css.setStyle(".stdStyle",styleObj);
textBox.styleSheet = css;
textBox.htmlText = "不潮不用花钱";
this.addChild(textBox);
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.StyleSheet;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
public class Sample0324 extends Sprite
{
private var label:TextField;
private var text:String = "here comes <span class='stdText'>wayne</span>";
public function Sample0324()
{
var btnRed:TextField = new TextField();
btnRed.text = "应用红色样式";
btnRed.y = 100;
btnRed.addEventListener(MouseEvent.CLICK,onRedClick);
this.addChild(btnRed);
var btnGreen:TextField = new TextField();
btnGreen.text = "应用绿色样式";
btnGreen.y = 200;
btnGreen.addEventListener(MouseEvent.CLICK,onGreenClick);
this.addChild(btnGreen);
label = new TextField();
label.autoSize = TextFieldAutoSize.CENTER;
label.htmlText = text;
this.addChild(label);
}
private function onRedClick(event:MouseEvent):void
{
var loader:URLLoader = new URLLoader();
loader.load(new URLRequest("StdStyle.css"));
loader.addEventListener(Event.COMPLETE,onLoadComplete);
}
private function onGreenClick(event:MouseEvent):void
{
var loader:URLLoader = new URLLoader();
loader.load(new URLRequest("StdStyle2.css"));
loader.addEventListener(Event.COMPLETE,onLoadComplete);
}
private function onLoadComplete(event:Event):void
{
var css:StyleSheet = new StyleSheet();
css.parseCSS((event.target as URLLoader).data);
label.styleSheet = css;
label.htmlText = text;
}
}
}
格式化用户输入的文本
应用TextFormat对象到文本框的defaultTextFormat属性上
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldType;
import flash.text.TextFormat;
public class Sample0324 extends Sprite
{
public function Sample0324()
{
var textBox:TextField = new TextField();
textBox.type = TextFieldType.INPUT;
textBox.border = true;
textBox.borderColor = 0xFFFF00;
var textFormat:TextFormat = new TextFormat();
textFormat.color = 0xFF0000;
textFormat.italic = true;
textBox.defaultTextFormat = textFormat;
this.addChild(textBox);
}
}
}
设置文本字体
使用HTML的标签,或者设置TextFormat对象的font属性,或者通过CSS的font-family属性
修改字体有多种方法,如果使用HTML的话可通过 标签更改:field.htmlText = "Formatted text";
也可设置TextFormat对象的font属性:formatter.font = "Arial";
或者在CSS中定义font-family 属性:p {font-family: Arial;}
需要注意的是电脑中必须要有你所指定的字体,因为有些电脑上可能没有安装相应的字体,这是可指定多种字体:formatter.font = "Arial, Verdana, Helvetica";
如果都没有指定字体,默认使用系统字体。
另外我们还可使用字体组,字体组是系统默认字体的一个分类,有三种: _sans, _serif, 和_typewriter。
_sans 组包含如Arial 或Helvetica,_serif组包含如Times 或Times New Roman,_typewriter 组包含如Courier 或Courier New
嵌入字体
通过[embed]元数据嵌入字体,设置文本框的embedFonts属性为true,通过标签,TextFormat对象或CSS应用字体
嵌入系统字体:
[Embed(systemFont="Onyx",fontName="hxw",mimeType="application/x-font-truetype")]
嵌入非系统字体:
[Embed(source="xjlFont.fon",fontName="xjl",mimeType="application/x-font")]
可以设置textField.rotation = 30来设置文字旋转(放在定时器或OnEnterFrame事件里),文字必须为嵌入字体,否则无法正常显示。
TextFormat方式
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
[Embed(source="xjlFont.fon",fontName="xjl",mimeType="application/x-font-truetype")]
public class Sample0410 extends Sprite
{
public function Sample0410()
{
var textBox:TextField = new TextField();
textBox.text = "hello everybody,my name is 老胡";
textBox.autoSize = TextFieldAutoSize.CENTER;
textBox.embedFonts=true;
addChild(textBox);
var formatter:TextFormat = new TextFormat();
formatter.font = "xjl";
formatter.size = 30;
textBox.setTextFormat(formatter);
}
}
}
CSS方式
package {
import flash.display.Sprite;
import flash.text.StyleSheet;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
[Embed(source="xjlFont.fon",fontName="xjl",mimeType="application/x-font-truetype")]
public class Sample0410 extends Sprite
{
public function Sample0410()
{
var css:StyleSheet = new StyleSheet();
var styleObj:Object = {color:"#FFFF00", fontFamily:"xjl",fontSize:"30px"};
css.setStyle(".stdStyle",styleObj);
var textBox:TextField = new TextField();
textBox.styleSheet = css;
textBox.text = "<span class='stdStyle'>hello everybody,my name is 老胡</span>";
textBox.autoSize = TextFieldAutoSize.CENTER;
textBox.embedFonts=true;
addChild(textBox);
}
}
}
设置焦点
设置stage.focus = xxx来设置舞台的焦点,stage.focus = null可以移除焦点
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFieldType;
public class Sample0410 extends Sprite
{
public function Sample0410()
{
var field:TextField = new TextField( );
field.border = true;
field.background = true;
field.type = TextFieldType.INPUT;
addChild(field);
stage.addEventListener(MouseEvent.CLICK,onClick);
}
private function onClick(event:MouseEvent):void
{
stage.focus = getChildAt(0) as TextField;
//this.removeEventListener(MouseEvent.CLICK,onClick);
}
}
}
选中TextField的部分文本及设置光标所在位置
设置TextField.setSelection(startIndex,endIndex),同时通过selectionBeginIndex和selectionEndIndex两个只读属性可获得选中文本的具体位置
如果设置setSelection的两个参数相同,则是在设置光标所在位置,通过TextField.caretIndex属性可以得到当前光标所在位置
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFieldType;
public class Sample0410 extends Sprite
{
private var lblNumber:TextField;
public function Sample0410()
{
var field:TextField = new TextField( );
field.border = true;
field.background = true;
field.type = TextFieldType.INPUT;
field.text = "我们的祖先在护佑着你";
this.addChild(field);
lblNumber = new TextField();
lblNumber.autoSize = TextFieldAutoSize.CENTER;
lblNumber.background = true;
lblNumber.y = 150;
this.addChild(lblNumber);
field.addEventListener(MouseEvent.CLICK,onClick);
}
private function onClick(event:MouseEvent):void
{
var textBox:TextField = event.target as TextField;
textBox.setSelection(5,5);
var strStart:String = "起始点:" textBox.selectionBeginIndex.toString();
var strEnd:String = "结束点:" textBox.selectionEndIndex.toString();
var currentIndex:String = "当前光标所在:" textBox.caretIndex;
lblNumber.text = strStart "," strEnd "," currentIndex;
}
}
}
取消事件的默认行为(如果可以取消)
默认情况下,许多事件都有Flash Player执行的关联行为。例如,如果用户在文本字段中键入一个字符,则默认行为就是在文本字段中显示该字符。可以使用preventDefault()方法来防止显示该字符
然后很多事件是瞬发的,像点击事件、获得焦点、失去焦点事件
可以使用Event.cancelable属性来判断是否可以取消行为,如果返回true,则可以使用preventDefault()来取消事件;否则preventDefault()无效
package {
import flash.display.Sprite;
import flash.events.FocusEvent;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFieldType;
public class Sample0410 extends Sprite
{
public function Sample0410()
{
//演示MouseEvent.Click事件是无法取消行为的
stage.addEventListener(MouseEvent.CLICK,onClick);
//演示FocusEvent.FOCUS_IN事件是无法取消行为的
var textBox:TextField = new TextField();
textBox.type = TextFieldType.INPUT;
textBox.background = true;
textBox.addEventListener(FocusEvent.FOCUS_IN,onFocusIn);
this.addChild(textBox);
//演示FocusEvent.MOUSE_FOCUS_CHANGE事件是可以取消行为的
textBox.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE,onMouseFocusChange);
}
private function onClick(event:MouseEvent):void
{
trace("MouseEvent.Click事件可以取消行为吗?" event.cancelable);//显示false
}
private function onFocusIn(event:FocusEvent):void
{
trace("FocusEvent.FOCUS_IN事件可以取消行为吗?" event.cancelable);//显示false
}
private function onMouseFocusChange(event:FocusEvent):void
{
trace("FocusEvent.MOUSE_FOCUS_CHANGE事件可以取消行为吗?" event.cancelable);//显示true
}
}
}
发表评论
-
AS3 经典的代码库
2013-03-29 16:39 03D引擎 Papervision3Dhttp://b ... -
AS3开源资源整理
2013-03-29 16:38 0一个使用Stage3D APIs 实现 ... -
如何自定义VideoPlayer的全屏行为
2012-12-13 16:58 1312Flex4中增加了一个视频播放组件:VideoPlayer,相 ... -
代码改变影片剪辑亮度、色调、高级、透明度的方法
2012-12-03 08:41 867通过Color类来改变影片颜色 亮度:(设置影片明暗效果) ... -
as3自己写皮肤
2012-11-30 09:47 0<?xml version="1.0" ... -
AS3 正则表达式详解
2012-11-30 09:27 01.新建正则表达式,有两 ... -
TweenLite用法
2012-11-30 09:26 0TweenLite 是一个缓动的类 ... -
AS3位图的加载、拷贝、绘制
2012-11-30 09:26 0建Bitmap可以是使用Bitmap ... -
AS3中的反射
2012-11-30 09:25 659什么是反射 反射 (Reflection) 是指在程序在运行时 ... -
as3日期格式化以及htmlText的安全转义类
2012-11-30 08:57 1036package org.juke{ ... -
Flash AS3.0关于TextField的过滤,HTML格式,对齐,换行等介绍
2012-11-30 08:56 1375过滤文字输入 TextField.restrict = &q ... -
AS3碎裂重组特效
2012-11-26 15:04 884碎裂指的是图片的碎裂 那我们要先做的是就是得到这张图片,在a ... -
Flash AS3.0实例---接近鼠标的图片缓动效果
2012-11-26 15:02 1179当鼠标移动到图片的一定位置时,图片会缓冲移动到鼠标位置,在现 ... -
flex air 启动本地应用程序
2012-11-26 09:23 854在air 2.0中,可以利用NativeProcess启动本地 ... -
as3打开和保存本地文件
2012-11-26 08:52 2395package { import flash.displa ... -
FLV视频类播放器全屏切换完整AS代码示例
2012-11-21 10:53 825function setFullScreen() { ... -
as3冒泡排序
2012-11-20 09:12 0<?xml version="1.0" ... -
Flex在Image组件使用蒙板
2012-11-16 17:34 0Flex在Image组件使用蒙板 1.Flex SDK3.0 ... -
Flex导入Excel文件示例
2012-11-16 17:33 01.SDK3.0 2.导入文件用FileFilter过滤。由于 ... -
Flash as3把2D图片分析成文本实现代码
2012-11-16 17:32 0一篇在游戏开发中常用到的功能就是利用as3把2D图片分析成文本 ...
相关推荐
根据给定的信息,本文将详细解释如何在ActionScript 3(简称AS3)中使用仅仅五行代码实现将文本文件保存到本地的功能。这不仅展示了AS3的强大与灵活性,同时也为开发者提供了一个简洁高效的解决方案。 ### 一、AS3...
1. **文本字段(TextField)**: 在AS3中,我们使用`TextField`类来创建和操作文本。它是处理动态和输入文本的主要对象。通过实例化`TextField`类,我们可以创建一个文本框,并通过其属性和方法来控制显示的文本。 2...
在Flash AS3编程中,文本查找和替换是一个常见的任务,特别是在处理用户交互和数据操作时。这个场景描述了如何利用AS3(ActionScript 3)来读取本地TXT文件,并在其中执行查找与替换操作。以下是对这个主题的详细...
"自己做的AS3折叠文本"这个项目可能是指开发者自制的一个功能,允许用户在界面中显示可展开和收起的文本块,以提高用户体验和页面的整洁度。 折叠文本通常涉及到以下几个关键技术点: 1. **事件监听**:AS3中,...
6. 字符串处理:AS3CoreLib包含了对字符串的高级操作,如格式化、模板替换等,可以帮助开发者更有效地处理文本数据。 7. 时间日期处理:库中的`DateUtil`类提供了一些增强的时间和日期操作,如获取星期几、比较日期...
AS3滚动条是ActionScript 3.0编程语言中实现的一种用户界面元素,它主要用于在内容超出可视区域时提供导航。在AS3中,滚动条是通过Flash的UI组件库来创建和控制的,允许用户在长或宽的数据显示区域中进行上下或左右...
2. **读取文本文件**:在AS3中,可以使用File和FileStream类来读取外部文本文件。这在滚动字幕的应用中可能是为了加载和播放多行文本内容。例如,`cast.txt`文件可能包含了要滚动显示的一系列文字,程序会读取这个...
在AS3中,它提供了丰富的功能,帮助开发者解析、操作和生成SWF内容。AS3SWF库在Flash平台的开发中扮演着重要角色,尤其是在那些需要与SWF文件进行交互或动态生成SWF内容的应用场景中。 **1. 解析SWF文件** AS3SWF...
根据给定的文件信息,我们可以总结出一系列关于ActionScript 3.0(简称AS3)的关键知识点,这些知识点覆盖了AS3的多个方面,包括日期和时间管理、字符串操作、数组处理、错误处理、正则表达式使用、XML和JSON处理、...
在读取 ANSI 文本时,如果我们将 System.useCodePage 设置为 true,那么 AS3 就会使用操作系统的默认编码方式来读取文本。这可能会导致中文乱码的问题。为了解决这个问题,我们可以将 System.useCodePage 设置为 ...
在提供的压缩包中,有两个文件:`www.pudn.com.txt`可能是关于下载来源或版权信息的文本文件,而`as3corelib-.92.1`可能是一个SWC库文件,这是AS3的编译结果,可以直接导入到Flash开发环境中使用。 总的来说,AS3...
4. 在AS3代码中实例化并操作这些生成的类,进行数据的序列化和反序列化。 总的来说,protobuf3-layaair_AS3-master是一个非常有价值的资源,它使得LayaAir AS3开发者可以方便地利用protobuf3进行数据交换,提高开发...
以上知识点涵盖了AS3的多个核心领域,从文件操作到高级图形渲染,对于任何AS3开发者来说都是非常实用的技能。通过深入学习和实践这些实例,开发者可以增强自己的AS3编程能力,创建更丰富、更高效的Flash内容。
4. **动作脚本组件** - AS3引入了一系列预定义的UI组件,如按钮、文本字段等,这些组件可以帮助开发者快速构建用户界面。 5. **显示列表** - 显示列表是AS3中管理舞台上可视对象的层次结构。了解如何操作这个层次...
AS3CoreLib是一个开源的ActionScript 3库,它提供了许多有用的功能,扩展了Adobe Flash Player和Adobe AIR的内置功能。这个库对于Flex开发者来说尤其重要,因为Flex SDK中的MXMLC编译器默认并不包含所有AS3CoreLib...
教程首先从基础概念入手,介绍了AS3的核心语法,包括变量声明、数据类型(如字符串、数字、布尔值)、操作符(如算术、比较和逻辑操作符)以及流程控制语句(如if语句、switch语句、for循环和while循环)。...
通过这些文件,你可以直接查看和运行示例,理解AS3读取和操作JSON数据的具体实现。 总的来说,AS3中的JSON处理提供了强大的工具,使得与服务器进行数据交换变得简单高效。无论是解析来自服务器的JSON响应,还是将AS...
AS3提供了内置的JSON对象,方便开发者对JSON数据进行操作。 标题"as3json资源"指出这是一个关于在AS3中使用JSON的资源集合。这可能包含示例代码、教程或工具,帮助开发者理解和应用JSON到他们的项目中。 描述中...
`ObjectProxy`用于动态地操作JSON对象,而`JSON`类则提供了将AS3对象转换为JSON字符串以及将JSON字符串解析为AS3对象的方法。 1. **JSON对象的创建和序列化** AS3中的JSON对象通常以键值对的形式存在,你可以通过...
7. **图形与舞台操作**:AS3可以直接操作Stage对象,创建形状、文本、位图等,并进行动画处理。了解DisplayObject和DisplayObjectContainer接口以及MovieClip和Sprite类的功能是必要的。 8. **时间轴控制**:AS3...