The code is from :
http://laco.wz.cz/tween/?page=examples
[COLOR=#0066cc]Mac OS X Dock menu (without lmctween)[/COLOR]
[COLOR=#0066cc][/COLOR]
[COLOR=#0066cc]Here is the code:[/COLOR]
align = bottom;
centerx = Stage.width/2;
centery = Stage.height/2;
menuholder = createEmptyMovieClip("menuholder", -1);
menuholder._y = centery;
menucount = 10;
menuitems = [];
miwidth = 20;
miborder = 1;
startx = centerx-((menucount-1)*(miwidth+miborder))/2;
trace(startx);
for (var i = 0; i<menucount; i++) {
var menuitem = menuholder.attachMovie("menuitem", "menu"+i, i);
menuitem._x = startx+i*(miwidth+miborder);
menuitem.id = i;
menuitem.onRollOver = function() {
_root.selected = this;
};
menuitems.push(menuitem);
}
onEnterFrame = function () {
var width = 0;
for (var i = 0; i<menucount; i++) {
var xxm = menuitems*._xmouse;
var yym = menuitems*._ymouse;
var xm = Math.sqrt(xxm*xxm+yym*yym);
if (xm<50) {
menuitems*._xscale = menuitems*._yscale += ((200-xm)-menuitems*._yscale)/3;
} else {
menuitems*._xscale = menuitems*._yscale += (100-menuitems*._yscale)/3;
}
width += menuitems*._width;
}
width += (menucount-1)*miborder;
var xpos = Math.round(centerx-width/2);
for (var i = 0; i<menucount; i++) {
xpos += menuitems[i-1]._width/2+miborder+menuitems*._width/2;
menuitems*._x = xpos;
}
};
Here is my as3 code:
package com.boru.display
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.ui.Mouse;
public class DockMenu extends MovieClip
{
private var centerX: uint ;
private var centerY: uint ;
private var menucount: uint = 15;
private var menuitems : Array ;
private var startx: uint;
private var menuwidth: uint = 40;
private var space: uint = 2;
private var container: MovieClip;
public function DockMenu()
{
init();
}
private function init () :void
{
centerX = this.width / 2;
centerY = this.height / 2;
menuitems = [];
startx = centerX -((menucount - 1) * (menuwidth + space)) * 0.5;
for (var i : uint = 0 ; i < menucount; i++ )
{
container = new AlbumContainer ();
container.y = centerY;
container.x = startx + i * (space + menuwidth);
menuitems.push(container);
addChild(container);
}
this.addEventListener(Event.ENTER_FRAME, dockEnterFrame );
}
private function dockEnterFrame (e:Event) : void
{
var mwidth:Number = 0;
for ( var i:uint = 0; i < menucount; i++)
{
var xxm:uint = menuitems*.stage.mouseX;
var yym:uint = (menuitems*.stage.mouseY) - 300;
var xm:uint = Math.round((Math.sqrt(xxm * xxm + yym * yym)))/ 100;
if (xm < 50 )
{
menuitems*.scaleX = menuitems*.scaleY += ((2 - (xm/100)) - menuitems*.scaleY) / 3;
trace("if " + menuitems*.scaleX);
}else {
trace("else " + menuitems*.scaleX);
menuitems*.scaleX = menuitems*.scaleY += (1 - menuitems*.scaleY) / 3;
}
mwidth += menuitems*.width;
}
/*
mwidth += (menucount -1 ) * space;
var xpos:Number = Math.round(centerX - mwidth / 2);
for ( var j : uint = 0; j < menucount; j ++ )
{
xpos += menuitems[j - 1].width/2 + space + menuitems[j].width /2;
menuitems[j].x = xpos;
}
*/
}
}
}