# Menu scrolling

**URL:** https://forum.kirupa.com/t/menu-scrolling/116617
**Category:** Uncategorized
**Created:** [July 20, 2004, 12:24am UTC](https://forum.kirupa.com/t/menu-scrolling/116617 "2004-07-20T00:24:11Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![mengung](https://avatars.discourse-cdn.com/v4/letter/m/58956e/32.png) [@mengung](https://forum.kirupa.com/u/mengung)
#### Post date: [July 20, 2004, 12:24am UTC](https://forum.kirupa.com/t/menu-scrolling/116617/1 "2004-07-20T00:24:11Z")

</div>

Hi,

I have difficulty in understanding the following codes. Can anyone out there explain what the code is doing.

// FIX original Button:  
butn:text = /:Menu0;  
while (Number(n)\<Number((/:tmi_2)-1)) {  
n = Number(n)+1;  
dup = “butn” add n;  
duplicateMovieClip(“butn”, dup, n);  
setProperty(dup, \_x, Number(getProperty(dup, \_x))+Number(n_getProperty(dup, \_width)));  
setProperty(dup add “/b”, \_x, getProperty (dup add “/b”, \_x) + (1));  
set(dup add “:n”, n);  
// assign button name from variables  
if (Number(n)\<Number(…:tmi)) {  
set(dup add “:text”, eval("/:Menu" add n));  
} else {  
set(dup add “:text”, eval("/:Menu" add (n-/:tmi)));  
}  
}

// -------------------------------------------  
// MAKE THE DRAG WORK  
// -------------------------------------------  
drag = “/dragControl”;  
/:w = getProperty("/nav", \_width);  
/:xPos = getProperty(drag, \_x);  
/:yPos = getProperty(drag, \_y);  
// next 2 lines center the menu drag to the screen  
/:yPos = /:yPos-200;  
/:xPos = /:xPos-350;  
// SET DRAG SPEED (inverse)  
speed = 45;  
setProperty("/nav", \_x, getProperty("/nav", \_x)-(/:xPos/speed));  
if (Number(getProperty("/nav", \_x))\<Number(-(/:w/2))) {  
setProperty("/nav", \_x, 0.01);  
} else if (Number(getProperty("/nav", \_x))\>0) {  
setProperty("/nav", \_x, -/:w/2);  
}

// Old Fashioned Bubble Sort  
c = /:ti;  
while (Number©\>1) {  
c = c-1;  
d = 0;  
while (Number(d)\<Number©) {  
d = Number(d)+1;  
e = Number(d)+1;  
if (eval("/:Item" add d) gt eval("/:Item" add e)) {  
temp = eval("/:Item" add d);  
set("/:Item" add d, eval("/:Item" add e));  
set("/:Item" add e, eval(temp));  
f = 0;  
while (Number(f)\<Number(/:ti)) {  
f = Number(f)+1;  
trace(“Item” add f add “=” add eval("/:Item" add f));  
}  
}  
}  
}  
attached is the fla file.

Thanks,

Meng
