# Problems with Collapse menu

**URL:** <https://forum.kirupa.com/t/problems-with-collapse-menu/179866>\
**Category:** flash\
**Created:** [February 23, 2006, 3:36pm UTC](https://forum.kirupa.com/t/problems-with-collapse-menu/179866 "2006-02-23T15:36:44Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![kruption](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/kruption/32/1202_2.png) [@kruption](https://forum.kirupa.com/u/kruption)\
**Post date:** [February 23, 2006, 3:36pm UTC](https://forum.kirupa.com/t/problems-with-collapse-menu/179866/1 "2006-02-23T15:36:44Z")

</div>

For the past day or so I’ve been trying to figure out why I keep  
getting some sections in my menu with a blur to the fonts. I’ve made  
sure they were aligned properly and tried different fonts but still, no  
go.

The Menu SWF  
[http://www.mooresclothing.com/test/merchandise\_content.html](http://www.mooresclothing.com/test/merchandise_content.html)

The FLA  
[http://www.mooresclothing.com/test/merchandise\_content.fla](http://www.mooresclothing.com/test/merchandise_content.fla)

The only thing I have noticed is that anymore than 3 movieclips within  
the main movieclip, it blurs them when closed. If theres more than 3  
buttons in the movieclip, it blurs them also. I’m really fustrated and  
just can not seem to figure it out. I’ll post the actionscripting  
below.

```
 ActionScript Code:
 [FONT=Courier New][LEFT][COLOR=#808080]*// Variables*[/COLOR]

```

[COLOR=#000000] **var** [/COLOR] speed = [COLOR=#000080]10[/COLOR]; [COLOR=#808080]_// constant speed for menu opening and closing_[/COLOR]  
[COLOR=#000000] **var** [/COLOR] opened = [COLOR=#000000] **null** [/COLOR]; [COLOR=#808080]_// variable to determine which menu is currently opened_[/COLOR]  
[COLOR=#000000] **var** [/COLOR] menus = [COLOR=#000000][[/COLOR][COLOR=#000000]][/COLOR]; [COLOR=#808080]_// array to store all menu items_[/COLOR]

[COLOR=#808080]_// FindMenus: finds movieclips within this movieclip and adds them to [/COLOR]  
[COLOR=#808080]// the menus array. Only place menu clips within this clip otherwise_[/COLOR]  
[COLOR=#808080]_// this function will assume the non-menu clips to be clips as well_[/COLOR]  
FindMenus = [COLOR=#000000] **function** [/COLOR]COLOR=#000000[/COLOR][COLOR=#000000]{[/COLOR]  
[COLOR=#0000ff]for[/COLOR] [COLOR=#000000]([/COLOR]value [COLOR=#0000ff]in[/COLOR] [COLOR=#0000ff]this[/COLOR][COLOR=#000000])[/COLOR][COLOR=#000000]{[/COLOR]  
[COLOR=#0000ff]if[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#0000ff]this[/COLOR][COLOR=#000000][[/COLOR]value[COLOR=#000000]][/COLOR] [COLOR=#0000ff]instanceof[/COLOR] [COLOR=#0000ff]MovieClip[/COLOR][COLOR=#000000])[/COLOR][COLOR=#000000]{[/COLOR]  
menus.[COLOR=#0000ff]push[/COLOR]COLOR=#000000[/COLOR];  
[COLOR=#000000]}[/COLOR]  
[COLOR=#000000]}[/COLOR]  
menus.[COLOR=#0000ff]sort[/COLOR]COLOR=#000000[/COLOR]; [COLOR=#808080]_// order so the highest is first_[/COLOR]  
[COLOR=#000000]}[/COLOR]  
[COLOR=#808080]_// SortByVertical: sort function to sort menus in menus array_[/COLOR]  
[COLOR=#808080]_// so that the highest menu appears first_[/COLOR]  
SortByVertical = [COLOR=#000000] **function** [/COLOR][COLOR=#000000]([/COLOR]a, b[COLOR=#000000])[/COLOR][COLOR=#000000]{[/COLOR]  
[COLOR=#0000ff]return[/COLOR] [COLOR=#000000]([/COLOR]a.[COLOR=#0000ff]\_y[/COLOR] \> b.[COLOR=#0000ff]\_y[/COLOR][COLOR=#000000])[/COLOR];  
[COLOR=#000000]}[/COLOR]

[COLOR=#808080]_// ApplyMenuMask: creates and draws a function for the i’th menu_[/COLOR]  
[COLOR=#808080]_// in the menus array. That menu clips is then assigned a_[/COLOR]  
[COLOR=#808080]_// property “masker” representing this clip_[/COLOR]  
ApplyMenuMask = [COLOR=#000000] **function** [/COLOR]COLOR=#000000[/COLOR][COLOR=#000000]{[/COLOR]  
[COLOR=#000000] **var** [/COLOR] [COLOR=#0000ff]menu[/COLOR] = menus[COLOR=#000000][[/COLOR]i[COLOR=#000000]][/COLOR];  
[COLOR=#000000] **var** [/COLOR] mask = [COLOR=#0000ff]this[/COLOR].[COLOR=#0000ff]createEmptyMovieClip[/COLOR][COLOR=#000000]([/COLOR][COLOR=#ff0000]“mask”[/COLOR]+i, i[COLOR=#000000])[/COLOR];  
mask.[COLOR=#0000ff]\_x[/COLOR] = [COLOR=#0000ff]menu[/COLOR].[COLOR=#0000ff]\_x[/COLOR];  
mask.[COLOR=#0000ff]\_y[/COLOR] = [COLOR=#0000ff]menu[/COLOR].[COLOR=#0000ff]\_y[/COLOR];  
mask.[COLOR=#0000ff]beginFill[/COLOR]COLOR=#000000[/COLOR];  
mask.[COLOR=#0000ff]moveTo[/COLOR][COLOR=#000000]([/COLOR][COLOR=#000080]0[/COLOR], [COLOR=#000080]0[/COLOR][COLOR=#000000])[/COLOR];  
mask.[COLOR=#0000ff]lineTo[/COLOR][COLOR=#000000]([/COLOR][COLOR=#0000ff]menu[/COLOR].[COLOR=#000080]title[/COLOR].[COLOR=#0000ff]\_width[/COLOR], [COLOR=#000080]0[/COLOR][COLOR=#000000])[/COLOR];  
mask.[COLOR=#0000ff]lineTo[/COLOR][COLOR=#000000]([/COLOR][COLOR=#0000ff]menu[/COLOR].[COLOR=#000080]title[/COLOR].[COLOR=#0000ff]\_width[/COLOR], [COLOR=#0000ff]menu[/COLOR].[COLOR=#000080]title[/COLOR].[COLOR=#0000ff]\_height[/COLOR][COLOR=#000000])[/COLOR];  
mask.[COLOR=#0000ff]lineTo[/COLOR][COLOR=#000000]([/COLOR][COLOR=#000080]0[/COLOR], [COLOR=#0000ff]menu[/COLOR].[COLOR=#000080]title[/COLOR].[COLOR=#0000ff]\_height[/COLOR][COLOR=#000000])[/COLOR];  
mask.[COLOR=#0000ff]endFill[/COLOR]COLOR=#000000[/COLOR];  
[COLOR=#0000ff]menu[/COLOR].[COLOR=#0000ff]setMask[/COLOR]COLOR=#000000[/COLOR];  
[COLOR=#0000ff]menu[/COLOR].[COLOR=#000080]masker[/COLOR] = mask;  
[COLOR=#000000]}[/COLOR]  
[COLOR=#808080]_// StartMenuPosition: positions the menu to start. This is its closed_[/COLOR]  
[COLOR=#808080]_// position beneath the menu above it unless its the first menu where its 0._[/COLOR]  
StartMenuPosition = [COLOR=#000000] **function** [/COLOR]COLOR=#000000[/COLOR][COLOR=#000000]{[/COLOR]  
[COLOR=#000000] **var** [/COLOR] [COLOR=#0000ff]menu[/COLOR] = menus[COLOR=#000000][[/COLOR]i[COLOR=#000000]][/COLOR];  
[COLOR=#0000ff]if[/COLOR] [COLOR=#000000]([/COLOR]i == [COLOR=#000080]0[/COLOR][COLOR=#000000])[/COLOR][COLOR=#000000]{[/COLOR]  
[COLOR=#0000ff]menu[/COLOR].[COLOR=#0000ff]\_y[/COLOR] = [COLOR=#0000ff]menu[/COLOR].[COLOR=#000080]masker[/COLOR].[COLOR=#0000ff]\_y[/COLOR] = [COLOR=#000080]0[/COLOR];  
[COLOR=#000000]}[/COLOR][COLOR=#0000ff]else[/COLOR][COLOR=#000000]{[/COLOR]  
[COLOR=#000000] **var** [/COLOR] menu\_above = menus[COLOR=#000000][[/COLOR]i-[COLOR=#000080]1[/COLOR][COLOR=#000000]][/COLOR];  
[COLOR=#0000ff]menu[/COLOR].[COLOR=#0000ff]\_y[/COLOR] = [COLOR=#0000ff]menu[/COLOR].[COLOR=#000080]masker[/COLOR].[COLOR=#0000ff]\_y[/COLOR] = [COLOR=#0000ff]Math[/COLOR].[COLOR=#0000ff]round[/COLOR][COLOR=#000000]([/COLOR]menu\_above.[COLOR=#0000ff]\_y[/COLOR] + menu\_above.[COLOR=#000080]title[/COLOR].[COLOR=#0000ff]\_height[/COLOR]+[COLOR=#000080]1[/COLOR][COLOR=#000000])[/COLOR];  
[COLOR=#000000]}[/COLOR]  
[COLOR=#000000]}[/COLOR]

[COLOR=#808080]_// MenuOpen: this function opens a menu when its title is clicked_[/COLOR]  
MenuOpen = [COLOR=#000000] **function** [/COLOR]COLOR=#000000[/COLOR][COLOR=#000000]{[/COLOR]  
[COLOR=#000000] **var** [/COLOR] [COLOR=#0000ff]menu[/COLOR] = [COLOR=#0000ff]this[/COLOR];  
[COLOR=#0000ff]menu[/COLOR].[COLOR=#000080]masker[/COLOR].[COLOR=#0000ff]\_height[/COLOR] += speed;  
[COLOR=#0000ff]if[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#0000ff]menu[/COLOR].[COLOR=#000080]masker[/COLOR].[COLOR=#0000ff]\_height[/COLOR] \>= [COLOR=#0000ff]menu[/COLOR].[COLOR=#0000ff]\_height[/COLOR][COLOR=#000000])[/COLOR][COLOR=#000000]{[/COLOR]  
[COLOR=#0000ff]menu[/COLOR].[COLOR=#000080]masker[/COLOR].[COLOR=#0000ff]\_height[/COLOR] = [COLOR=#0000ff]menu[/COLOR].[COLOR=#0000ff]\_height[/COLOR];  
[COLOR=#0000ff]delete[/COLOR] [COLOR=#0000ff]this[/COLOR].[COLOR=#0000ff]onEnterFrame[/COLOR];  
[COLOR=#000000]}[/COLOR]  
PositionMenusBelowCOLOR=#000000[/COLOR];  
[COLOR=#000000]}[/COLOR]

[COLOR=#808080]_// MenuClose: this function closes a menu when its title is clicked_[/COLOR]  
[COLOR=#808080]_// When a menu has closed, its onClose callback is called (then deleted)_[/COLOR]  
MenuClose = [COLOR=#000000] **function** [/COLOR]COLOR=#000000[/COLOR][COLOR=#000000]{[/COLOR]  
[COLOR=#000000] **var** [/COLOR] [COLOR=#0000ff]menu[/COLOR] = [COLOR=#0000ff]this[/COLOR];  
[COLOR=#0000ff]if[/COLOR] [COLOR=#000000]([/COLOR]speed \>= [COLOR=#0000ff]menu[/COLOR].[COLOR=#000080]masker[/COLOR].[COLOR=#0000ff]\_height[/COLOR][COLOR=#000000])[/COLOR] [COLOR=#0000ff]menu[/COLOR].[COLOR=#000080]masker[/COLOR].[COLOR=#0000ff]\_height[/COLOR] = [COLOR=#0000ff]menu[/COLOR].[COLOR=#000080]title[/COLOR].[COLOR=#0000ff]\_height[/COLOR];  
[COLOR=#0000ff]else[/COLOR] [COLOR=#0000ff]menu[/COLOR].[COLOR=#000080]masker[/COLOR].[COLOR=#0000ff]\_height[/COLOR] -= speed;  
[COLOR=#0000ff]if[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#0000ff]menu[/COLOR].[COLOR=#000080]masker[/COLOR].[COLOR=#0000ff]\_height[/COLOR] \<= [COLOR=#0000ff]menu[/COLOR].[COLOR=#000080]title[/COLOR].[COLOR=#0000ff]\_height[/COLOR][COLOR=#000000])[/COLOR][COLOR=#000000]{[/COLOR]  
[COLOR=#0000ff]menu[/COLOR].[COLOR=#000080]masker[/COLOR].[COLOR=#0000ff]\_height[/COLOR] = [COLOR=#0000ff]menu[/COLOR].[COLOR=#000080]title[/COLOR].[COLOR=#0000ff]\_height[/COLOR];  
opened = [COLOR=#000000] **null** [/COLOR];  
[COLOR=#0000ff]menu[/COLOR].[COLOR=#0000ff]onClose[/COLOR]COLOR=#000000[/COLOR];  
[COLOR=#0000ff]delete[/COLOR] [COLOR=#0000ff]menu[/COLOR].[COLOR=#0000ff]onClose[/COLOR];  
[COLOR=#0000ff]delete[/COLOR] [COLOR=#0000ff]this[/COLOR].[COLOR=#0000ff]onEnterFrame[/COLOR];  
[COLOR=#000000]}[/COLOR]  
PositionMenusBelowCOLOR=#000000[/COLOR];  
[COLOR=#000000]}[/COLOR]  
[COLOR=#808080]_// TitleButtonPress: this is the action assigned to a titlebar onRelease in a menu_[/COLOR]  
[COLOR=#808080]_// based on that menu’s status; whether its open or closed and if anything is open_[/COLOR]  
[COLOR=#808080]_// at all to begin with (if there is, the open menu would need to close first)_[/COLOR]  
TitleButtonPress = [COLOR=#000000] **function** [/COLOR]COLOR=#000000[/COLOR][COLOR=#000000]{[/COLOR]  
[COLOR=#000000] **var** [/COLOR] [COLOR=#0000ff]menu[/COLOR] = [COLOR=#0000ff]this[/COLOR].[COLOR=#0000ff]\_parent[/COLOR];  
[COLOR=#0000ff]if[/COLOR] COLOR=#000000[/COLOR][COLOR=#000000]{[/COLOR]  
[COLOR=#0000ff]if[/COLOR] [COLOR=#000000]([/COLOR]opened == [COLOR=#0000ff]menu[/COLOR][COLOR=#000000])[/COLOR][COLOR=#000000]{[/COLOR]  
[COLOR=#0000ff]menu[/COLOR].[COLOR=#0000ff]onEnterFrame[/COLOR] = MenuClose;  
[COLOR=#000000]}[/COLOR][COLOR=#0000ff]else[/COLOR][COLOR=#000000]{[/COLOR]  
opened.[COLOR=#0000ff]onClose[/COLOR] = [COLOR=#000000] **function** [/COLOR]COLOR=#000000[/COLOR][COLOR=#000000]{[/COLOR]  
[COLOR=#0000ff]menu[/COLOR].[COLOR=#0000ff]onEnterFrame[/COLOR] = MenuOpen;  
opened = [COLOR=#0000ff]menu[/COLOR];  
[COLOR=#000000]}[/COLOR]  
opened.[COLOR=#0000ff]onEnterFrame[/COLOR] = MenuClose;  
[COLOR=#000000]}[/COLOR]  
[COLOR=#000000]}[/COLOR][COLOR=#0000ff]else[/COLOR][COLOR=#000000]{[/COLOR] [COLOR=#808080]_// nothing opened_[/COLOR]  
[COLOR=#0000ff]menu[/COLOR].[COLOR=#0000ff]onEnterFrame[/COLOR] = MenuOpen;  
opened = [COLOR=#0000ff]menu[/COLOR];  
[COLOR=#000000]}[/COLOR]  
[COLOR=#000000]}[/COLOR]  
[COLOR=#808080]_// PositionMenusBelow: Positions all menus below the i’th menu based on that_[/COLOR]  
[COLOR=#808080]_// menus mask. This is used when opening or closing a menu so that menu items_[/COLOR]  
[COLOR=#808080]_// beneath update their position properly_[/COLOR]  
PositionMenusBelow = [COLOR=#000000] **function** [/COLOR]COLOR=#000000[/COLOR][COLOR=#000000]{[/COLOR]  
[COLOR=#000000] **var** [/COLOR] [COLOR=#0000ff]menu[/COLOR] = menus[COLOR=#000000][[/COLOR]i[COLOR=#000000]][/COLOR];  
[COLOR=#0000ff]if[/COLOR] [COLOR=#000000]([/COLOR]i \< menus.[COLOR=#000080]length[/COLOR]-[COLOR=#000080]1[/COLOR][COLOR=#000000])[/COLOR][COLOR=#000000]{[/COLOR]  
[COLOR=#000000] **var** [/COLOR] menu\_below = menus[COLOR=#000000][[/COLOR]i+[COLOR=#000080]1[/COLOR][COLOR=#000000]][/COLOR];  
[COLOR=#0000ff]for[/COLOR] [COLOR=#000000]([/COLOR]i=i+[COLOR=#000080]1[/COLOR]; i\<menus.[COLOR=#0000ff]length[/COLOR]; i++[COLOR=#000000])[/COLOR][COLOR=#000000]{[/COLOR]  
[COLOR=#0000ff]if[/COLOR] [COLOR=#000000]([/COLOR]menus[COLOR=#000000][[/COLOR]i[COLOR=#000000]][/COLOR] == menu\_below[COLOR=#000000])[/COLOR][COLOR=#000000]{[/COLOR]  
menus[COLOR=#000000][[/COLOR]i[COLOR=#000000]][/COLOR].[COLOR=#0000ff]\_y[/COLOR] = menus[COLOR=#000000][[/COLOR]i[COLOR=#000000]][/COLOR].[COLOR=#000080]masker[/COLOR].[COLOR=#0000ff]\_y[/COLOR] = [COLOR=#0000ff]menu[/COLOR].[COLOR=#0000ff]\_y[/COLOR] + [COLOR=#0000ff]menu[/COLOR].[COLOR=#000080]masker[/COLOR].[COLOR=#0000ff]\_height[/COLOR];  
[COLOR=#000000]}[/COLOR][COLOR=#0000ff]else[/COLOR][COLOR=#000000]{[/COLOR]  
[COLOR=#000000] **var** [/COLOR] menu\_above = menus[COLOR=#000000][[/COLOR]i-[COLOR=#000080]1[/COLOR][COLOR=#000000]][/COLOR];  
menus[COLOR=#000000][[/COLOR]i[COLOR=#000000]][/COLOR].[COLOR=#0000ff]\_y[/COLOR] = menus[COLOR=#000000][[/COLOR]i[COLOR=#000000]][/COLOR].[COLOR=#000080]masker[/COLOR].[COLOR=#0000ff]\_y[/COLOR] = menu\_above.[COLOR=#0000ff]\_y[/COLOR] + menu\_above.[COLOR=#000080]masker[/COLOR].[COLOR=#0000ff]\_height[/COLOR];  
[COLOR=#000000]}[/COLOR]  
[COLOR=#000000]}[/COLOR]  
[COLOR=#000000]}[/COLOR]  
[COLOR=#000000]}[/COLOR]

[COLOR=#808080]_// Initialization function. Does setup operations_[/COLOR]  
Init = [COLOR=#000000] **function** [/COLOR]COLOR=#000000[/COLOR][COLOR=#000000]{[/COLOR]  
FindMenusCOLOR=#000000[/COLOR]; [COLOR=#808080]_// find movieclips within this movieclip and assign to menus array_[/COLOR]  
[COLOR=#808080]_// for each menu (as in menus array)_[/COLOR]  
[COLOR=#0000ff]for[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#000000] **var** [/COLOR] i=[COLOR=#000080]0[/COLOR]; i\<menus.[COLOR=#0000ff]length[/COLOR]; i++[COLOR=#000000])[/COLOR][COLOR=#000000]{[/COLOR]  
menus[COLOR=#000000][[/COLOR]i[COLOR=#000000]][/COLOR].[COLOR=#000080]i[/COLOR] = i; [COLOR=#808080]_// assign a number to represent its position in the array_[/COLOR]  
ApplyMenuMaskCOLOR=#000000[/COLOR]; [COLOR=#808080]_// give it a mask_[/COLOR]  
StartMenuPositionCOLOR=#000000[/COLOR]; [COLOR=#808080]_// position it accordingly (vertical only)_[/COLOR]  
menus[COLOR=#000000][[/COLOR]i[COLOR=#000000]][/COLOR].[COLOR=#000080]title[/COLOR].[COLOR=#0000ff]onPress[/COLOR] = TitleButtonPress; [COLOR=#808080]_// apply the actions to the titlebar_[/COLOR]  
[COLOR=#000000]}[/COLOR]  
[COLOR=#000000]}[/COLOR]  
InitCOLOR=#000000[/COLOR];  
[/LEFT]  
[/FONT]
