0

私の textarea コンポーネントは myTextArea で新しい行を取得します (私の TextArea は SPARK コンポーネントです)

最後の 50 行だけを保持したい。(古い行は削除されません)

どんな手掛かり ?

4

2 に答える 2

1

以下のコードは、あなたにいくつかのアイデアを与えるかもしれません....

<?xml version="1.0"?>
<s:Application 
    xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx">

    <s:layout> 
        <s:VerticalLayout/> 
    </s:layout>

    <fx:Script>
        <![CDATA[          

            [Bindable]
            private var initialDisplayText:String = "1\n2\n3\n4\n5\n6\n7\n8";

            private var maxLines:int = 8;

            private function arrangeTextHandler(event:KeyboardEvent):void
            {
                var count:int = 0;
                var displayString:String = "";
                var arrayTemp:Array = new Array();

                if(event.target.content.mxmlChildren.length > maxLines)
                {
                    for(var i:int = event.target.content.mxmlChildren.length-1; 0 <= i  ; i--)
                    {
                        for(var j:int = event.target.content.mxmlChildren[i].mxmlChildren.length-1; 0 <= j ; j--)
                        {
                            if(maxLines > count)
                            {
                                arrayTemp.push(event.target.content.mxmlChildren[i].mxmlChildren[j].text);
                                count ++;
                            }
                        }
                    }

                    arrayTemp.reverse();
                    for (var k:int=0; k<arrayTemp.length ;k++)
                    {
                        if(arrayTemp.length-1 != k)
                            displayString += arrayTemp[k] + "\n";
                        else
                            displayString += arrayTemp[k];
                    }

                    arrayTemp = null;
                    initialDisplayText = displayString;
                    myTextArea.invalidateProperties();
                }
            }

            private function onKeyEventDown(e:KeyboardEvent):void
            {
                if(myTextArea.textFlow.flowComposer.numLines > maxLines)
                {
                    arrangeTextHandler(e)
                }
            }

        ]]>
    </fx:Script>

    <s:TextArea id="myTextArea" text="{initialDisplayText}" 
                keyUp="onKeyEventDown(event)" height="500" width="100" x="50" y="50"/>

</s:Application>
于 2012-09-21T09:58:55.963 に答える
0

これによると、そのような特性はありません。TextAreaから派生した独自のコンポーネントを作成する必要があります。

于 2012-09-20T14:11:04.127 に答える