A Flash Developer Resource Site














Internet Commerce

Partners & Affiliates














Developer Channel

internet.com


Featured Flash FLA
Gallery Downloads 11336 Flash Movies | 2 New Flash Movies Added
What's New | Top 100

Featured FLA

» Author: Surjit Dhami
» Title: Book
» Description: Book
» More by Surjit Dhami


Random FLAs | Add Flash Movie
Featured Flash Site
Gallery Downloads 5848 Flash Sites | 0 New Flash Links
What's New | Top 100 Flash Site

Featured Site

» Posted in the Flash Kit Links section
» Title: All-American Rejects
» Description: Get to know this great band by exploring their "practice room".


Random Links | Add your own Flash Related Links
Flash Tutorials 1277 Tutorials 7 New Tutorials Added!
What's New | Top100

» Create xml slideshow with free template
» How to Insert a Multilingual Subtitle Into Your Flash Video Studio
» How to Create Cool Halloween Slideshow
» Debugging flash using the Firebug console
» Create Flash Slideshow on Blogger
» FLASH TRICKS IN WEB ADVERTISING: FLASH BANNERS
» HTML Photo Gallery Tutorial
» Create your first flash site – PART 1
» How to Make a Flash Photo Gallery
» Unknown Tag: Title10
Random Tutorial | Add Site

Trading Customer Accounting (IL)
Next Step Systems
US-IL-Chicago

Justtechjobs.com Post A Job | Post A Resume


Tutorials Home What's New Top Rated Submit myTutes Random!

Search Tutorials


Categories Make your own scroll bar in Flash MX
Author: Vera Fleischer | Website: http://www.mediasparkles.com |

 
Page 6
«prev 1 2 3 4 5 6

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:
// display text in text field; decide whether it needs scrolling
function showText(message) {
 main.w_field.text = message;
 if (main.w_field.maxscroll > 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 <= 1) {
 scroll_thumb._y = scroll_thumb.min_y;
 } else if (w_field.scroll >= 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 > 1) {
 scrollIt();
 }
 checkIfPressed = setInterval(callBack, 500);
}
down_arrow.onPress = function() {
 pressed = 1;
 if (w_field.scroll < 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 > this.max_y) {
 this._y = this.max_y;
 } else if (this._y < 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) >= 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) < 1) {
 w_field.scroll = w_field.maxscroll;
 } else if (Math.abs(this._y - this.min_y) < 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 > 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) < 1) {
 w_field.scroll = w_field.maxscroll;
} else if (Math.abs(scroll_thumb._y - scroll_thumb.min_y) < 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!

«prev 1 2 3 4 5 6

» Level Advanced

Added: : 2002-03-23
Rating: 7.21 Votes: 116
Hits: 3771
» 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)
Get conversion and unzipping tools for PC and Mac here!

» Forums
More help? Search our boards for quick answers!

Please rate this tutorial, 10 is the top rating, you can also click the comments link to read/write a review.
10 9 8 7 6 5 4 3 2 1
Read or Post Comments
 
   
 

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Reprints, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs