我的 textarea 组件使用 myTextArea 换行(我的 TextArea 是 SPARK 组件)
我只想保留最后 50 行。(不删除旧行)
有什么线索吗?
我的 textarea 组件使用 myTextArea 换行(我的 TextArea 是 SPARK 组件)
我只想保留最后 50 行。(不删除旧行)
有什么线索吗?
下面的代码可能会给你一些想法......
<?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>
据此,不存在这样的属性。您必须创建自己的从 TextArea 派生的组件。