AS3文本编辑器中选择部分正确方法

以前写的关于文本选择部分,一直没找对正确方法。感谢俊华兄。
特别是选取文本部分: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);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值