sp.setChildIndex(pp[t],t);
}
n=(n+1)%(4*s);
}
functioncol(xx:
Number,xz:
Number):
Number{
varcz:
Number,cx:
Number;
xx>1?
cx=1:
(xx<0?
cx=0:
cx=xx);
200/(280+xz)>1?
cz=1:
cz=200/(280+xz);
returncx*cz;
}
stage.addEventListener(MouseEvent.MOUSE_UP,function(e){bbb=false;});
stage.addEventListener(MouseEvent.MOUSE_DOWN,function(e){dy=mouseY,bbb=true;});
鼠标跟随的鱼
[SWF(backgroundColor=0x00eeff,width=640,height=480)]
varsp:
Sprite=addChild(newSprite())asSprite;
sp.y=-200,sp.x=320;
varpx:
Array=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],pp:
Array=[];
varpz:
Array=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],yur:
Array=[];
varx0:
Array=[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]];
varz0:
Array=[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]];
vary0:
Array=[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]];
varr:
Array=[1,9,15,19.5,22,23,23.5,23,22,19.5,16.5,13,10,9,10,12,14,16];
varr1:
Array=[0,8,12,14.5,16,17,17.5,17,15.5,13,10,7.5,5,3,1,0.2,0,0];
for(i=0;i<281;i++){
pp[i]=newMovieClip();
sp.addChild(pp[i]);
}
varf:
Number=1800,i:
uint,m:
int,t:
int,k:
int,h:
int,j:
int,c1:
uint,c2:
uint,c3:
uint,r2:
Number;
varmc:
Sprite=newSprite();
varbox:
Matrix=newMatrix();
box.createGradientBox(20,10,1.57,240,0);
mc.graphics.beginGradientFill("linear",[0xddaaaa,0x882211,0xddaaaa],[1,1,1],[150,200,250],box,"reflect");
mc.graphics.drawRect(280,0,120,400);
for(i=0;i<36;i++){
for(j=0;j<16;j++){
c1=255<<16|Math.abs(j-7.5)*20+20<<8|40;
c2=255<<16|Math.abs(j-7.5)*20+60<<8|Math.abs(j-7.5)*20+30;
c3=255<<16|Math.abs(j-7.5)*20<<8|0;
r2=(5-Math.cos(i*Math.PI/40))/8;
box.createGradientBox(56,40,0,270-i*9*r2,j*25-20+(i%2)*12.5);
mc.graphics.beginGradientFill("radial",[c3,c1,c2],[1,1,1],[70,120,200],box);
mc.graphics.moveTo(275-i*9*r2,j*25+(i%2)*12.5);
mc.graphics.lineTo(315-i*9*r2,j*25-14+(i%2)*12.5);
mc.graphics.curveTo(315+(20-i*9)*r2,j*25+(i%2)*12.5,315-i*9*r2,14+j*25+i%2*12.5);
mc.graphics.lineTo(275-i*9*r2,j*25+(i%2)*12.5);
mc.graphics.endFill();
}
}
for(i=0;i<2;i++){
box.createGradientBox(200,400,0,-30,i*400-200);
mc.graphics.beginGradientFill("radial",[0xffddaa,0xff6633,0xff2200],[1,1,1],[50,150,205],box);
mc.graphics.moveTo(0,i*200);
mc.graphics.lineTo(60+i*10,i*200);
mc.graphics.curveTo(125,110+i*180,70-i*10,200+i*200);
mc.graphics.lineTo(0,200+i*200);
mc.graphics.endFill();
}
for(i=0;i<2;i++){
box.createGradientBox(20,40,0,45,i*200+80);
mc.graphics.beginGradientFill("radial",[0,0xbbbbbb,0x555555],[1,1,1],[50,100,255],box);
mc.graphics.drawEllipse(45,80+i*200,20,40);
mc.graphics.endFill();
}
for(i=0;i<2;i++){
mc.graphics.lineStyle(3,0xee6622,0.6);
mc.graphics.moveTo(65+i*20,i*250+50);
mc.graphics.curveTo(85,60+i*280,85-i*20,100+i*250);
}
varbmp1:
BitmapData=newBitmapData(400,400);
bmp1.draw(mc);
addEventListener(Event.ENTER_FRAME,fff);
functionfff(e:
Event){
pz[0]+=(200*f/sp.mouseY-f-pz[0])/15;//高度坐标转换成深度坐标
px[0]+=(sp.mouseX*(f+pz[0])/f-px[0])/15;
yur[0]=Math.atan2(pz[0]-200*f/sp.mouseY+f,px[0]-sp.mouseX*(f+pz[0])/f);
for(i=1;i<18;i++){
i<=4?
yur[i]=yur[0]:
yur[i]=Math.atan2(pz[i]-pz[i-1],px[i]-px[i-1]);
px[i]=px[i-1]+10*Math.cos(yur[i-1]);
pz[i]=pz[i-1]+10*Math.sin(yur[i-1]);
}
for(i=0;i<18;i++){
for(m=0;m<17;m++){
z0[i][m]=pz[i]-r1[i]*Math.sin(m*Math.PI/8)*Math.cos(yur[i]);
x0[i][m]=(px[i]+r1[i]*Math.sin(m*Math.PI/8)*Math.sin(yur[i]))*f/(f+z0[i][m]);
y0[i][m]=(r[i]*Math.cos(m*Math.PI/8)+200)*f/(f+z0[i][m]);
}
}
for(m=0;m<2;m++){
z0[18][m]=z0[4][2+m*12]+10*Math.sin(yur[4]-h*Math.PI/20*Math.pow(-1,m));
x0[18][m]=x0[4][2+m*12]+10*Math.cos(yur[4]-h*Math.PI/20*Math.pow(-1,m))*f/(f+z0[18][m]);
y0[18][m]=217*f/(f+z0[18][m]);
z0[18][m+2]=z0[4][3+m*10]+5*Math.sin(yur[4]-h*Math.PI/20*Math.pow(-1,m));
x0[18][m+2]=x0[4][3+m*10]+5*Math.cos(yur[4]-h*Math.PI/20*Math.pow(-1,m))*f/(f+z0[18][m+2]);
y0[18][m+2]=207*f/(f+z0[18][m+2]);
z0[18][m+4]=z0[8][1+m*14]+10*Math.sin(yur[8]-(9-h)*Math.PI/20*Math.pow(-1,m));
x0[18][m+4]=x0[8][1+m*14]+10*Math.cos(yur[8]-(9-h)*Math.PI/20*Math.pow(-1,m))*f/(f+z0[18][m+4]);
y0[18][m+4]=221*f/(f+z0[18][m+4]);
z0[18][m+6]=z0[8][2+m*12]+5*Math.sin(yur[8]-(9-h)*Math.PI/20*Math.pow(-1,m));
x0[18][m+6]=x0[8][2+m*12]+5*Math.cos(yur[8]-(9-h)*Math.PI/20*Math.pow(-1,m))*f/(f+z0[18][m+6]);
y0[18][m+6]=214*f/(f+z0[18][m+6]);
}
t=0;
for(i=0;i<17;i++){//鱼体
for(m=0;m<16;m++){
varvArr:
Vector.=Vector.([x0[i][m],y0[i][m],x0[i][m+1],y0[i][m+1],x0[i+1][m+1],y0[i+1][m+1],x0[i+1][m],y0[i+1][m]]);
varuArr:
Vector.=Vector.([i/17,m/16,i/17,(m+1)/16,(i+1)/17,(m+1)/16,(i+1)/17,m/16]);
pp[t].Z=z0[i][m]+z0[i][m+1]+z0[i+1][m+1]+z0[i+1][m];
fce(t,vArr,uArr,"negative");
t++;
}
}
for(i=5;i<9;i++){//背鳍
vary2:
Number=(186+i-r[i+1])*f/(f+z0[i+1][7]),y3:
Number=(187+i-r[i+2])*f/(f+z0[i+2][7]);
vArr=Vector.([x0[i][8],y0[i][8],x0[i+1][8],y2,x0[i+2][8],y3,x0[i+1][8],y0[i+1][8]]);
uArr=Vector.