以前写的关于文本选择部分,一直没找对正确方法。感谢俊华兄。
特别是选取文本部分:txt_content.addEventListener(FocusEvent.FOCUS_OUT,onFocusOutHandler);
用了FocusEvent事件。以及后面的,设置各个样式等。
//-----------文本编辑--------------------//
var my_Beginfocus:int=-1;
var my_Endfocus:int=-1;
var my_TextFormat:TextFormat=new TextFormat();
//设置字体下拉框的样式
var linkTextFormat:TextFormat=new TextFormat();
//获取字体数组
var my_Arr_font:Array=Font.enumerateFonts(true);
//字号数组
var size_Arr= [12, 14, 16, 18, 20, 22, 24, 32, 36, 36,40,48, 60,64,68,74,80,84,96, 120];
for (var n:uint = 0; n < size_Arr.length; n++) {
btn_size.addItem({label:size_Arr[n],data:size_Arr[n]});
}
//字体下拉框样式
_styleCombobox();
function _styleCombobox():void {
linkTextFormat.font = "Arial";
linkTextFormat.size = 12;
linkTextFormat.color = 0x171717;
}
//显示字体下拉框
_showBtn_font();
function _showBtn_font():void {
for (var i:uint = 0; i < my_Arr_font.length; i++) {
btn_font.addItem({label:my_Arr_font[i].fontName});
}
btn_font.textField.setStyle("textFormat", linkTextFormat);
btn_font.dropdown.setRendererStyle("textFormat", linkTextFormat);
}
txt_content.text="欢迎在此留言! http://as63.net";
txt_content.addEventListener(FocusEvent.FOCUS_OUT,onFocusOutHandler);
function onFocusOutHandler(event:FocusEvent):void
{
my_Beginfocus=txt_content.selectionBeginIndex;
my_Endfocus=txt_content.selectionEndIndex;
}
//加粗
function _TextFormat_bold():void {
my_TextFormat=txt_content.getTextFormat(my_Beginfocus,my_Endfocus);
my_TextFormat.bold=!my_TextFormat.bold;
}
//倾斜
function _TextFormat_italic():void {
my_TextFormat=txt_content.getTextFormat(my_Beginfocus,my_Endfocus);
my_TextFormat.italic=!my_TextFormat.italic;
}
//下划线
function _TextFormat_xiahuaxian():void {
my_TextFormat=txt_content.getTextFormat(my_Beginfocus,my_Endfocus);
my_TextFormat.underline=! my_TextFormat.underline;
}
//设置样式(A)
function _setTextFormat(e:MouseEvent):void {
stage.focus=null;
if(my_Endfocus==my_Beginfocus || my_Endfocus==-1)
{
my_Beginfocus=0;
my_Endfocus= txt_content.length;
}
my_TextFormat=new TextFormat();
switch (e.currentTarget.name) {
case "btn_bold" :
_TextFormat_bold();
break;
case "btn_itlic" :
_TextFormat_italic();
break;
case "btn_xiahua" :
_TextFormat_xiahuaxian();
break;
}
txt_content.setTextFormat(my_TextFormat, my_Beginfocus, my_Endfocus);
}
//设置颜色跟字体
function _setTextFormat2(e:Event):void {
if(my_Endfocus==my_Beginfocus || my_Endfocus==-1)
{
my_Beginfocus=0;
my_Endfocus= txt_content.length;
}
my_TextFormat=new TextFormat();
switch (e.currentTarget.name) {
case "btn_size" :
my_TextFormat.size = btn_size.selectedItem.data;
break;
case "my_Col" :
my_TextFormat.color = my_Col.selectedColor;
break;
case "btn_font" :
my_TextFormat.font = btn_font.selectedLabel;
break;
}
txt_content.setTextFormat(my_TextFormat, my_Beginfocus, my_Endfocus);
}
//鼠标经过效果
var my_arr_bianji=["btn_bold","btn_itlic","btn_xiahua","my_Col","btn_size","btn_font"];
for (var k:uint=0; k<3; k++) {
this[my_arr_bianji[k]].addEventListener(MouseEvent.MOUSE_OVER,_btn_Over);
this[my_arr_bianji[k]].addEventListener(MouseEvent.MOUSE_OUT,_btn_Out);
this[my_arr_bianji[k]].addEventListener(MouseEvent.CLICK,_setTextFormat);
}
for (var l:uint=3; l<my_arr_bianji.length; l++) {
this[my_arr_bianji[l]].addEventListener(Event.CHANGE,_setTextFormat2);
}
特别是选取文本部分:txt_content.addEventListener(FocusEvent.FOCUS_OUT,onFocusOutHandler);
用了FocusEvent事件。以及后面的,设置各个样式等。
//-----------文本编辑--------------------//
var my_Beginfocus:int=-1;
var my_Endfocus:int=-1;
var my_TextFormat:TextFormat=new TextFormat();
//设置字体下拉框的样式
var linkTextFormat:TextFormat=new TextFormat();
//获取字体数组
var my_Arr_font:Array=Font.enumerateFonts(true);
//字号数组
var size_Arr= [12, 14, 16, 18, 20, 22, 24, 32, 36, 36,40,48, 60,64,68,74,80,84,96, 120];
for (var n:uint = 0; n < size_Arr.length; n++) {
btn_size.addItem({label:size_Arr[n],data:size_Arr[n]});
}
//字体下拉框样式
_styleCombobox();
function _styleCombobox():void {
linkTextFormat.font = "Arial";
linkTextFormat.size = 12;
linkTextFormat.color = 0x171717;
}
//显示字体下拉框
_showBtn_font();
function _showBtn_font():void {
for (var i:uint = 0; i < my_Arr_font.length; i++) {
btn_font.addItem({label:my_Arr_font[i].fontName});
}
btn_font.textField.setStyle("textFormat", linkTextFormat);
btn_font.dropdown.setRendererStyle("textFormat", linkTextFormat);
}
txt_content.text="欢迎在此留言! http://as63.net";
txt_content.addEventListener(FocusEvent.FOCUS_OUT,onFocusOutHandler);
function onFocusOutHandler(event:FocusEvent):void
{
my_Beginfocus=txt_content.selectionBeginIndex;
my_Endfocus=txt_content.selectionEndIndex;
}
//加粗
function _TextFormat_bold():void {
my_TextFormat=txt_content.getTextFormat(my_Beginfocus,my_Endfocus);
my_TextFormat.bold=!my_TextFormat.bold;
}
//倾斜
function _TextFormat_italic():void {
my_TextFormat=txt_content.getTextFormat(my_Beginfocus,my_Endfocus);
my_TextFormat.italic=!my_TextFormat.italic;
}
//下划线
function _TextFormat_xiahuaxian():void {
my_TextFormat=txt_content.getTextFormat(my_Beginfocus,my_Endfocus);
my_TextFormat.underline=! my_TextFormat.underline;
}
//设置样式(A)
function _setTextFormat(e:MouseEvent):void {
stage.focus=null;
if(my_Endfocus==my_Beginfocus || my_Endfocus==-1)
{
my_Beginfocus=0;
my_Endfocus= txt_content.length;
}
my_TextFormat=new TextFormat();
switch (e.currentTarget.name) {
case "btn_bold" :
_TextFormat_bold();
break;
case "btn_itlic" :
_TextFormat_italic();
break;
case "btn_xiahua" :
_TextFormat_xiahuaxian();
break;
}
txt_content.setTextFormat(my_TextFormat, my_Beginfocus, my_Endfocus);
}
//设置颜色跟字体
function _setTextFormat2(e:Event):void {
if(my_Endfocus==my_Beginfocus || my_Endfocus==-1)
{
my_Beginfocus=0;
my_Endfocus= txt_content.length;
}
my_TextFormat=new TextFormat();
switch (e.currentTarget.name) {
case "btn_size" :
my_TextFormat.size = btn_size.selectedItem.data;
break;
case "my_Col" :
my_TextFormat.color = my_Col.selectedColor;
break;
case "btn_font" :
my_TextFormat.font = btn_font.selectedLabel;
break;
}
txt_content.setTextFormat(my_TextFormat, my_Beginfocus, my_Endfocus);
}
//鼠标经过效果
var my_arr_bianji=["btn_bold","btn_itlic","btn_xiahua","my_Col","btn_size","btn_font"];
for (var k:uint=0; k<3; k++) {
this[my_arr_bianji[k]].addEventListener(MouseEvent.MOUSE_OVER,_btn_Over);
this[my_arr_bianji[k]].addEventListener(MouseEvent.MOUSE_OUT,_btn_Out);
this[my_arr_bianji[k]].addEventListener(MouseEvent.CLICK,_setTextFormat);
}
for (var l:uint=3; l<my_arr_bianji.length; l++) {
this[my_arr_bianji[l]].addEventListener(Event.CHANGE,_setTextFormat2);
}