Thursday, December 18, 2008

Simple scrolling dynamic text in flash

Just make sure you have a field named dynamicTextField;

var scrolling:Boolean = false;
var displayWidth:Number = 190;
var originalX:Number = nowPlaying.x;
var maxWidth:Number = dynamicTextField.textWidth;
var position:Number = dynamicTextField.x + maxWidth;
var moveLeft:Boolean = true;
var scrollTimer:uint;

//add event listeners to the text field
dynamicTextField.addEventListener(MouseEvent.MOUSE_OVER, startScroll);
dynamicTextField.addEventListener(MouseEvent.MOUSE_OUT, endScroll);

function startScroll(e:MouseEvent) : void {
if(!scrolling && maxWidth > displayWidth) {
scrolling = true;
moveLeft = true;
nowPlaying.x = originalX;
clearInterval(scrollTimer);
scrollTimer = setInterval(scrollNowPlaying, 50);
}
}

function scrollNowPlaying() : void {

if( moveLeft ) {
position = position - 2;
moveLeft = position > displayWidth - originalX;
} else {
position = position + 2;
moveLeft = position > originalX + maxWidth;
if( moveLeft ) {
clearInterval(scrollTimer);
scrolling = false;
position = nowPlaying.x + maxWidth;
}

}
dynamicTextField.x = position - maxWidth;

}

function endScroll(e:MouseEvent) : void {
moveLeft = false;
}

0 comments: