私の 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から派生した独自のコンポーネントを作成する必要があります。