1

テキスト フィールドの書式設定に問題があります。テキストのサイズに + と - のボタンがあります。TextField クラスには、新しいテキスト書式設定用のプロパティ defaultTextField があります。また、defaultTextFormat サイズ プロパティを変更すると、テキスト全体のサイズが変更されます。どこでも解決策を探しましたが、まだ見つかりません。テキスト エディター WISWYG (名前が正しいかどうかはわかりません) は、defaultTextFormat プロパティを変更するだけで問題なく動作します。フラッシュと AIR の違い (フラッシュ上のエディターと AIR 上の私のアプリ) が原因で発生する可能性があります。助けてください。

TextFormat を設定/取得するコードは次のとおりです。

    public function set selectionTextFormat(value:TextFormat):void {
        var begin:int = _textField.selectionBeginIndex;
        var end:int = _textField.selectionEndIndex;
        if (begin == end)
        {
            _textField.defaultTextFormat = value;
        }
        else
        {
            _textField.setTextFormat(value, begin, end);
        }
    }

    public function get selectionTextFormat():TextFormat 
    {
        var begin:int = _textField.selectionBeginIndex;
        var end:int = _textField.selectionEndIndex;
        if (begin == end)
        {
            return _textField.defaultTextFormat;
        }
        return  _textField.getTextFormat(begin, end);
    }

そして、フォーマットを変更するコード:

    private function setFormat(property:String, value:*):void
    {
        var tf:TextFormat = TextFormatter.TF.selectionTextFormat;
        tf[property] = value;
        TextFormatter.TF.selectionTextFormat = tf;
    }

編集:説明のためのドロップボックスの画像: https ://dl.dropboxusercontent.com/u/237572639/Capture.PNG

編集 2: 必要なもののイメージ (コードはまったく同じです!) (WYSIWYG エディター) https://dl.dropboxusercontent.com/u/237572639/WYSIWYG.PNG

4

1 に答える 1

0

今後入力するすべてのテキストを変更するには、次のコードを試すことができます (結果はここに表示されます)。

var text_input:TextField = new TextField();
    text_input.border = true;
    text_input.type = 'input';
    text_input.text = 'hello world!';
addChild(text_input);

var new_fmt:TextFormat = new TextFormat();

btn_color.addEventListener(
    MouseEvent.CLICK, 
    function(e:MouseEvent):void {
        // set the new text color
        new_fmt.color = 0xFF0000;   
    }
)
btn_size.addEventListener(
    MouseEvent.CLICK, 
    function(e:MouseEvent):void {
        // set the new text size
        new_fmt.size = int(txt_size.text)       
    }
)

text_input.addEventListener(Event.CHANGE, function(e:Event):void {

    text_input.setTextFormat(new_fmt, text_input.caretIndex-1);

})

もちろん、これはあなたがやりたいことをするための方法にすぎません。必要に応じて調整し、改善する必要があります。

于 2014-12-12T17:10:59.467 に答える