- 浏览: 99555 次
- 性别:
- 来自: 大连
文章分类
最新评论
设置文本框的边框、背景与前景色
默认状态下,文本框的边框和背景都是禁用的。所以在设置之前需要先启用;前景色可直接设置。
边框 -- 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 1245Flex4中增加了一个视频播放组件:VideoPlayer,相 ... -
代码改变影片剪辑亮度、色调、高级、透明度的方法
2012-12-03 08:41 831通过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 631什么是反射 反射 (Reflection) 是指在程序在运行时 ... -
as3日期格式化以及htmlText的安全转义类
2012-11-30 08:57 990package org.juke{ ... -
Flash AS3.0关于TextField的过滤,HTML格式,对齐,换行等介绍
2012-11-30 08:56 1341过滤文字输入 TextField.restrict = &q ... -
AS3碎裂重组特效
2012-11-26 15:04 858碎裂指的是图片的碎裂 那我们要先做的是就是得到这张图片,在a ... -
Flash AS3.0实例---接近鼠标的图片缓动效果
2012-11-26 15:02 1158当鼠标移动到图片的一定位置时,图片会缓冲移动到鼠标位置,在现 ... -
flex air 启动本地应用程序
2012-11-26 09:23 824在air 2.0中,可以利用NativeProcess启动本地 ... -
as3打开和保存本地文件
2012-11-26 08:52 2353package { import flash.displa ... -
FLV视频类播放器全屏切换完整AS代码示例
2012-11-21 10:53 796function 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图片分析成文本 ...
相关推荐
台达TP02G_AS1文本显示器pdf,台达TP02G_AS1文本显示器,可程序顯示器系列使用手冊 注意事項 請在使用之前,詳細閱讀本使用說明書。 實施配線,務必關閉電源。 本機顯示操作面板防水,但對油污或具腐蝕性之液體不具防...
DisplayHelper.as ---------------------- 处理显示对象简便操作 hitTestObjects.as ---------------------- 像素级碰撞检测 LoaderSprite.as ---------------------- 处理Loader相关的Sprite Registration.as -...
Text Mining (1) ...100 times as much online text as online DBs HTML网页是带有结构标记的文本(带来机会和挑战) 数据挖掘操作的是数据表 (i.e. numbers, fixed fields, adherence to data models).
2.对DOS格式、UNIX格式、MAC格式的文本自动识别并互相转换 3.对中文简繁体及台湾BIG5编码互相转换(需要指定源、目的编码格式) 4.支持文件及文件夹操作,支持鼠标拖拽 5.完全绿色软件,直接使用不需安装 作者:...
可读、可写,文件不存在也会报错,写操作时会覆盖 w+ 可读,可写,文件不存在先创建,会覆盖 a+ 可读、可写,文件不存在先创建,不会覆盖,追加在末尾 2. 读取所有内容返回字符串 with open('test.txt', 'r')...
先介绍下我这个flash拖动条吧,AS3.0,拖动时有缓动效果,没有用到第三方动画类,内容高度可变化,支持随时改动拖动条的高度,以适应新区域,例如跟随窗口变化,支持鼠标滚轮操作。额外功能,可在外部监听滚动状态。
vc++创建excel,在指定表格输入内容,改变字体及颜色,文本另存在桌面上,并自动关闭excel和vc++程序。不可多得的参考资料,查了很多东西才弄出来。包含vc++操作excel的具体方法。
Jsdiff是一款实现javascript文本差分的软件。安装:npm install diff或者bower install jsdiffAPIJsDiff.diffChars(oldStr, newStr[, options]) - diffs two blocks of text, comparing character by character....
实现打开本地文件夹,加载视频,已经保存文本到本地文件夹,等功能~
VF辅导:内存变量操作命令及文件操作命令 来源:学生大 2007年11月01日 11:35 一.内存变量操作命令: 1.显示内存变量: 格式:display memory [to printer][to 文本文件名]或 list memory [to printer][to...
第 3 章 : 使用数组 第 4 章 : 处理错误 第 5 章 : 使用正则表达式 第 6 章 : 使用 XML 第 7 章 : 使用本机 JSON 功能 第 8 章 : 处理事件 第 9 章 : 使用应用程序域 第 10 章 : 显示编程 第 11 章 : 使用...
3.动态文本操作,这个功能是我一直期待的,以前一直想用代码操作动态文本里所有字出现的特效,而不用在一个字一个字的去操作,没想到用这个插件实现了,官方提供了3种字出现时的特效,文本里的字出现的效果都是不...
- 根据音乐文件中的标签进行更名,支持 MP3/APE/WMA/RM/RMVB/RA/ASF/WMV/OGG 格式 - 文件名汉字转拼音 - 支持自动预览 - 支持通配符 - 支持正则表达式 - 支持元变量 - 支持拖放操作 - 支持撤消 - 支持多语言 - 操作...
- 根据音乐文件中的标签进行更名,支持 MP3/APE/WMA/RM/RMVB/RA/ASF/WMV/OGG 格式 - 文件名汉字转拼音 - 支持自动预览 - 支持通配符 - 支持正则表达式 - 支持元变量 - 支持拖放操作 - 支持撤消 - 支持多语言 - 操作...
软件功能 - 基本的转换、添加、删除、替换、加序等更名操作 - 文件名繁简互换、内码互换 ...- ID3v1 与 ID3v2 互相拷贝 - 更改文件日期 - CRC32 更名 - 根据文本文件内容写入标签 - 与资源管理器集成
顶级批量文件更名和整理音乐文件标签 SRename-v1.98i.zip - 基本的转换、添加、删除、替换、加序等更名操作 ...- ID3v1 与 ID3v2 互相拷贝 - 更改文件日期 - CRC32 更名 - 根据文本文件内容写入标签 - 与资源管理器集成
VB 实现纯文本的选择等操作,操作对象是TXT格式那种纯字符文本格式,完整的代码如下: Private Sub Command1_Click() Text1.Text = "大学毕业生就业形势严峻是当前社会的一大难题,创建社会主义和谐社会是...
3、扩展改名 4、标签编辑 5、其他 - 文件名繁简互换、内码互换 - 利用文本文件更名 - 支持目录、子目录及其文件、快捷方式等更名操作 - 根据音乐文件中的标签进行更名,支持 MP3/APE/WMA/RM/RMVB/RA/ASF/WMV/OGG ...
对于那些每天必须从骆驼到蛇皮传递10次以上的人,以及所有这类使开发人员成为日常工作的小文本操作。 (请注意,对于最常见的案例转换,) 快速示例: # Transforming text passed as arguments snake ...
恢复后,可以通过配置一个 oledb测试,最快捷的方法为,新建一个文本文件,然后将后缀改为".udl"然后就可以继续操作了。最后,同ODBC一样,如果确定不需要使用ole驱动访问数据库,也可以不进行这部分的恢复操作。 *...