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 回答