醒着☆☆

H5 Laya Native Game

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: :: 管理 ::

TextArea方案,相对这个在Flex里的项目使用比较简单。

相比在Flex里使用As3动态的TextField 需要

“在TextField的FocusEvent.FOCUS_IN事件侦听中加入:flash.system.IME.enabled=true;”

更省心了。你压根就不用去理会什么字体嵌入的。省心省力。

 

不过让人头疼的事情来了

●如何获得TextArea里的htmlText?
如何给TextArea设置htmlText?

如何设置选中的字段的样式?

●获取TextArea的所选内容

  在TextArea的focusIn事件里加入

 

     _currentTextFlow=_inputTextArea.textFlow;//让TextArea的textFlow来侦听选取事件
     _currentTextFlow.addEventListener(SelectionEvent.SELECTION_CHANGE, listenerSelectionChange);
 
   private function listenerSelectionChange(event:SelectionEvent):void
   {
    // 查找范围选定元素
    var range:ElementRange = event.selectionState ? 
    ElementRange.createElementRange(event.selectionState.textFlow,
    event.selectionState.absoluteStart, event.selectionState.absoluteEnd) : null;
    _intSelectionStart = range.absoluteStart;//起始索引
    _intSelectionEnd = range.absoluteEnd;//结束索引
   }

 

笔者遇到这个问题的时候,先是把Flex的所有的Text相关的组件都尼玛拖到舞台了。

发现TextArea TextInput都没有htmlText属性啊。所以就使用了方案1啊。

后来参阅了前人的代码,发现可以使用TextFlow来搞定

给TextArea设置字体fontFamily

                     字号fontSize

                     颜色color

 

private function setFontFomate(e:Event):void
{
  var styleObj:TextLayoutFormat = new TextLayoutFormat();
  styleObj.fontFamily=fontList.selectedItem.label;
  _txtInput.setFormatOfRange(styleObj);
}


 

posted on 2012-10-18 18:55  醒着/☆☆  阅读(900)  评论(0编辑  收藏  举报