我发现了这个,但不知道如何放慢速度:
var myTextLoader:URLLoader = new URLLoader();
myTextLoader.addEventListener (Event.COMPLETE,onLoaded);
function onLoaded (e:Event):void
{
tekstbx.text = e.target.data;
tekstbx.addEventListener (Event.ENTER_FRAME,efh);
}
myTextLoader.load (new URLRequest("tekst.txt"));
function efh (event:Event):void
{
event.currentTarget.scrollV += 1;
if (event.currentTarget.scrollV>=event.currentTarget.maxScrollV)
{
event.currentTarget.scrollV-=1;
event.currentTarget.removeEventListener (Event.ENTER_FRAME,efh);
event.currentTarget.addEventListener (Event.ENTER_FRAME,efV);
}
}
function efV (event:Event):void
{
event.currentTarget.scrollV-=1;
if (event.currentTarget.scrollV<=1)
{
event.currentTarget.scrollV-=1;
event.currentTarget.removeEventListener (Event.ENTER_FRAME,efV);
event.currentTarget.addEventListener (Event.ENTER_FRAME,efh);
}
}
您可以将ENTER_FRAME
上的侦听器替换为Timer
:然后您将通过在计时器上使用更大的延迟来减慢滚动速度。或者你可以用一个较小的数字来改变所有的"1"(然后你应该使用一个常数来确保在你改变它时,每个地方的值都是一样的)。
由于TextField::scrollV
是int
,您不能简单地降低它的速度。你可以使用@Kodiak的解决方案来减少滚动频率,这将导致移动速度较慢,但也不那么流畅。
或者,您可以查看DisplayObject::scrollRect
。这将允许您基于像素而不是文本行进行滚动。