2011-06-09 79 views
0

我发现了这一点,但还是不知道如何慢下来:自动滚屏放慢

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); 
    } 

} 
+0

你应该更具体一些。如何减速?你试过什么了? – back2dos 2011-06-09 14:44:10

+0

那么这是一个滚动文本,但所有的tekst快速闪烁 – 2011-06-09 14:45:06

回答

1

你既可以用Timer更换ENTER_FRAME监听器:那么你将通过使用更大的延迟缓慢滚动在你的计时器上。 或者你可以用一个较小的数字来改变所有的“1”(然后你应该使用一个常量来确保当你改变它时,它的值是相同的)。

+0

第二种方法将无法正常工作,因为'scrollV'是一个'int'。 – back2dos 2011-06-09 14:48:20

+0

好吧,我不是在AS3的家,所以你可以给我一些代码,我可以建立或准备使用代码 – 2011-06-09 14:49:20

+0

@Joshua:这是不是一个网站获取其他人写的代码。这是一个网站,可以帮助他人解决在编写*自己*代码时遇到的问题。如果您没有AS3的经验,请留下,学习,或付钱给您为您做这项工作。 – back2dos 2011-06-09 14:57:48

0

由于TextField::scrollV是一个int,你不能简单地减慢速度。您可以使用@ Kodiak的解决方案来减少滚动频率,这会导致移动速度变慢,但也不太流畅。您也可以看看DisplayObject::scrollRect。这将允许您基于像素滚动,而不是文本行。