zoukankan      html  css  js  c++  java
  • 文本编辑器制作(3):TextArea方案

    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);
    }


     

  • 相关阅读:
    HTTP request smuggling
    Do you really know CSS linear-gradients?
    Populating the page: how browsers work
    船舶智能管理系统API文档
    DocGuarder
    BUC LNB 器件
    BUC 与 LNB 的区别
    EIRP G/T 的意义
    语音的频率、频率分辨率、采样频率、采样点数、量化、增益
    机械波、电磁波的异同
  • 原文地址:https://www.cnblogs.com/naiking/p/2729976.html
Copyright © 2011-2022 走看看