Search tutorials
To sum up
I will no reiterate the necessary blocks of code in their entirety. For more clarity, I am including some comments as well.
Top level
Frame 1 - functions:
Main movie clip (instance name: "main")
Frame 1 - functions:
I will no reiterate the necessary blocks of code in their entirety. For more clarity, I am including some comments as well.
Top level
Frame 1 - functions:
// display text in text field; decide whether it needs scrolling
function showText(message) {
main.w_field.text = message;
if (main.w_field.maxscroll <%gt%> main.w_field.scroll) {
main.gotoAndPlay("scroll_loop");
}
}
Frame 1 - actions:
// change this variable to whatever suits your needs my_text = "Put the text you want displayed in your text field here! Make sure that it is plenty of text so you'll actually see the scroll bar in action!"; showText(my_text); stop();
Main movie clip (instance name: "main")
Frame 1 - functions:
// scrolls text field up or down
function scrollIt() {
w_field.scroll += pressed;
// make sure that scroll thumb always stays on track
if (!dragging) {
if (w_field.scroll <%lt%>= 1) {
scroll_thumb._y = scroll_thumb.min_y;
} else if (w_field.scroll <%gt%>= w_field.maxscroll){
scroll_thumb._y = scroll_thumb.max_y;
} else {
scroll_thumb._y += scroll_thumb.inc*pressed;
scroll_thumb.checkPos();
}
}
}
// called when pressing stops
function stopScroll() {
still_pressed = false;
pressed = false;
}
// after half a second check if button is still pressed
function callBack() {
if (pressed) {
still_pressed = true;
} else {
still_pressed = false;
}
clearInterval(checkIfPressed);
}
// arrow button functions:
up_arrow.onPress = function() {
pressed = -1;
if (w_field.scroll <%gt%> 1) {
scrollIt();
}
checkIfPressed = setInterval(callBack, 500);
}
down_arrow.onPress = function() {
pressed = 1;
if (w_field.scroll <%lt%> w_field.maxscroll) {
scrollIt();
}
checkIfPressed = setInterval(callBack, 500);
}
up_arrow.onRelease = down_arrow.onRelease = up_arrow.onReleaseOutside = down_array.onReleaseOutside = stopScroll;
// initialize scroll thumb by setting some variables
scroll_thumb.initiate = function() {
this.initiated = true;
this.min_y = this._y;
this.max_y = this.min_y + (scroll_track._height - up_arrow._height - this._height) + 1;
this.total_travel = Math.abs(this.max_y - this.min_y);
this.inc = Math.floor(this.total_travel/w_field.maxscroll);
}
// scroll thumb drag function
scroll_thumb.drag = function() {
this.startDrag(false, this._x, this.min_y, this._x, this.max_y);
if (!this.org_y) {
this.org_y = this._y;
}
dragging = true;
this.onEnterFrame = whileDragging;
}
// scroll thumb button functions:
scroll_thumb.thumb_btn.onPress = function () {
scroll_thumb.drag();
}
scroll_thumb.thumb_btn.onRelease = function () {
dragging = false;
pressed = false;
still_pressed = false;
scroll_thumb.stopDrag();
scroll_thumb.onEnterFrame = null;
}
// make sure scroll thumb never goes beyond its max or min spots
scroll_thumb.checkPos = function () {
if (this._y <%gt%> this.max_y) {
this._y = this.max_y;
} else if (this._y <%lt%> this.min_y) {
this._y = this.min_y;
}
}
// scroll thumb enterFrame function while being dragged
function whileDragging() {
if (dragging) {
var moved = this._y - this.org_y;
if (Math.abs(moved) <%gt%>= this.inc) {
if (moved > 0) {
pressed = 1;
} else {
pressed = -1;
}
this.org_y = this._y;
scrollIt();
// make sure text field is in tune with thumb
if (Math.abs(this._y - this.max_y) <%lt%> 1) {
w_field.scroll = w_field.maxscroll;
} else if (Math.abs(this._y - this.min_y) <%lt%> 1) {
w_field.scroll = 1;
}
} else {
pressed = 0;
}
}
}
// scroll track parameters & functions
scroll_track.useHandCursor = false;
scroll_track.onPress = function () {
rec_y = _root._ymouse - this._parent._y;
if (rec_y <%gt%> scroll_thumb._y) {
pressed = 5;
} else {
pressed = -5;
}
scrollIt();
checkIfPressed = setInterval(callBack, 500);
}
scroll_track.onRelease = scroll_track.onReleaseOutside = stopScroll;
Frame 1 - actions:
stop();Frame 2 - actions:
if (!scroll_thumb.initiated) {
scroll_thumb.initiate();
}
// keep scrolling if button or track is still pressed
if (still_pressed) {
scrollIt();
}
// this ensures proper working of scroll thumb
if (Math.abs(scroll_thumb._y - scroll_thumb.max_y) <%lt%> 1) {
w_field.scroll = w_field.maxscroll;
} else if (Math.abs(scroll_thumb._y - scroll_thumb.min_y) <%lt%> 1) {
w_field.scroll = 1;
}
play();
Frame 3 - actions:
gotoAndPlay("scroll_loop");
That's it! If you need some more explanation of the code or you have any other questions or problems, feel free to email me!
| » Level Advanced |
|
Added: 2002-03-23 Rating: 7 Votes: 116 |
| » Author |
| I have been flashing for almost two years, first at an online learning company and now at a university. My dream is to one day work for Macromedia as an ActionScript Engineer! |
| » Download |
| Download the files used in this tutorial. |
| Download (68 kb) |
| » Forums |
| More help? Search our boards for quick answers! |
-
You must have javascript enabled in order to post comments.


Comments
There are no comments yet. Be the first to comment!