Автоматическая прокрутка замедления - PullRequest
0 голосов
/ 09 июня 2011

Я нашел это, но понятия не имел, как его замедлить:

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

} 

Ответы [ 2 ]

1 голос
/ 09 июня 2011

Вы можете либо заменить слушателя на ENTER_FRAME на Timer: затем вы будете замедлять прокрутку, используя большую задержку на вашем таймере. Или вы можете изменить все «1» на меньшее число (затем вы должны использовать константу, чтобы убедиться, что значение везде одинаково, когда вы его меняете).

0 голосов
/ 09 июня 2011

Поскольку TextField::scrollV является int, вы не можете просто замедлить его. Вы можете использовать решение @ Kodiak для менее частой прокрутки, в результате чего движение будет более медленным, но и менее плавным.

Кроме того, вы можете взглянуть на DisplayObject::scrollRect. Это позволит вам прокручивать на основе пикселей, а не текстовых строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...