请和这个地址
http://www.webjx.com/htmldata/2007-03-31/1175277297.html的苹果菜单对比一下,给的改进意见,这个菜单困扰我很久了,怎么做都做不像,只好来求救,希望大家帮我看看,到底问题出现在哪里,是算法不对,还是数值设置有问题。谢谢。
下面是AS3 代码
var iconSum=5;
var iconIns:Array=new Array(iconSum);
var deltaX:Number;
loader();//装载图标
function loader()
{
for(var i:Number=0;i<iconSum;i++)
{
iconIns[i]=new icon();
addChild(iconIns[i]);
iconIns[i].nameLabel.text=i;
//iconIns[i].addEventListener(MouseEvent.MOUSE_MOVE,tracei);
iconIns[i].addEventListener(MouseEvent.MOUSE_MOVE,scaler);
iconIns[i].addEventListener(MouseEvent.ROLL_OUT,reset);
iconIns[i].x=stage.stageWidth/2-50*iconSum/2+i*50+25;
trace(iconIns[i].x);
iconIns[i].y=stage.stageHeight/2;
}
}
function scaler(e:Event)//缩放每个图片,并重新安排x坐标
{
for(var i:Number=0;i<iconSum;i++)
{
iconIns[i].scaleX=1+100/(Math.abs(mouseX-iconIns[i].x)+30);
iconIns[i].scaleY=iconIns[i].scaleX;
}
var j:Number=e.target.nameLabel.text;
trace("j=",j);
if(j==0)
{
//iconIns[0].x=iconIns[2].x-0.5*(mouseX-(stage.stageWidth/2-100*iconSum/2+0*100+50));
iconIns[1].x=iconIns[0].x+iconIns[0].width/2+iconIns[1].width/2;
iconIns[2].x=iconIns[1].x+iconIns[1].width/2+iconIns[2].width/2;
iconIns[3].x=iconIns[2].x+iconIns[2].width/2+iconIns[3].width/2;
iconIns[4].x=iconIns[3].x+iconIns[3].width/2+iconIns[4].width/2;
}
if(j==1)
{
//iconIns[1].x=iconIns[2].x-0.5*(mouseX-(stage.stageWidth/2-100*iconSum/2+1*100+50));
iconIns[0].x=iconIns[1].x-iconIns[1].width/2-iconIns[0].width/2;
iconIns[2].x=iconIns[1].x+iconIns[1].width/2+iconIns[2].width/2;
iconIns[3].x=iconIns[2].x+iconIns[2].width/2+iconIns[3].width/2;
iconIns[4].x=iconIns[3].x+iconIns[3].width/2+iconIns[4].width/2;
}
if(j==2)
{
//iconIns[2].x=iconIns[2].x-0.5*(mouseX-(stage.stageWidth/2-100*iconSum/2+2*100+50));
iconIns[0].x=iconIns[1].x-iconIns[1].width/2-iconIns[0].width/2;
iconIns[1].x=iconIns[2].x-iconIns[2].width/2-iconIns[1].width/2;
iconIns[3].x=iconIns[2].x+iconIns[2].width/2+iconIns[3].width/2;
iconIns[4].x=iconIns[3].x+iconIns[3].width/2+iconIns[4].width/2;
}
if(j==3)
{
//iconIns[3].x=iconIns[2].x-0.5*(mouseX-(stage.stageWidth/2-100*iconSum/2+3*100+50));
iconIns[0].x=iconIns[1].x-iconIns[1].width/2-iconIns[0].width/2;
iconIns[1].x=iconIns[2].x-iconIns[2].width/2-iconIns[1].width/2;
iconIns[2].x=iconIns[3].x-iconIns[3].width/2-iconIns[2].width/2;
iconIns[4].x=iconIns[3].x+iconIns[3].width/2+iconIns[4].width/2;
}
if(j==4)
{
//iconIns[4].x=iconIns[2].x-0.5*(mouseX-(stage.stageWidth/2-100*iconSum/2+4*100+50));
iconIns[0].x=iconIns[1].x-iconIns[1].width/2-iconIns[0].width/2;
iconIns[1].x=iconIns[2].x-iconIns[2].width/2-iconIns[1].width/2;
iconIns[2].x=iconIns[3].x-iconIns[3].width/2-iconIns[2].width/2;
iconIns[3].x=iconIns[4].x-iconIns[4].width/2-iconIns[3].width/2;
}
}
function reset(e:Event)
{
for(var i:Number=0;i<iconSum;i++)
{
iconIns[i].x=stage.stageWidth/2-50*iconSum/2+i*50+25;
iconIns[i].scaleX=iconIns[i].scaleY=1;
}
}
演示文件:
源文件:
[
本帖最后由 seacloud 于 2008-6-23 13:53 编辑 ]