想在一个if语句中调用函数,失败了,代码如下,其中ballList为一个已定义的全局数组,数组元素为一个个对象:
if(currentdisY==0) {
var devAngle=0;
speedComputing(devAngle);
}function speedComputing(inputDevAngle)
{ var angle1;
var angle2;
var v1t;
var v1n;
var v2t;
var v2n;
var u1;
var u1t;
var u1n;
var u2;
var u2t;
var u2n;
var devAngle=inputDevAngle;
angle1=ballList[j].direction-devAngle;
angle2=ballList[n].direction-devAngle;
v1n=ballList[j].speed * Math.cos(angle1 * Math.PI / 180);
v1t=ballList[j].speed * Math.sin(angle1 * Math.PI / 180);
v2n=ballList[n].speed * Math.cos(angle2 * Math.PI / 180);
v2t=ballList[n].speed * Math.sin(angle2 * Math.PI / 180);
u1n=[(1-ballList[j].elaticity2)*v1n+(1+ballList[j].elaticity2)*v2n]/2;
u1t=v1t;
u1=Math.sqrt(u1n*u1n+u1t*u1t);
if(u1n>0){angle1=Math.atan(u1t/u1n)*180/Math.PI;}
if(u1n<0){angle1=Math.atan(u1t/u1n)*180/Math.PI+180;}
if(u1n==0)
{
if(u1t>0){angle1=90;}
else if(u1t<0){angle1=-90;}
else{angle1=0;}
}
u2n=[(1+ballList[j].elaticity2)*v1n+(1-ballList[j].elaticity2)*v2n]/2;
u2t=v2t;
u2=Math.sqrt(u2n*u2n+u2t*u2t);
if(u2n>0){angle2=Math.atan(u2t/u2n)*180/Math.PI;}
if(u2n<0){angle2=Math.atan(u2t/u2n)*180/Math.PI+180;}
if(u2n==0)
{
if(u2t>0){angle2=90;}
else if(u2t<0){angle2=-90;}
else{angle2=0;}
}
ballList[j].speed=u1;
ballList[j].direction=angle1+devAngle;
ballList[j].speedX=ballList[j].speed*Math.cos(ballList[j].direction* Math.PI / 180);
ballList[j].speedY=ballList[j].speed*Math.sin(ballList[j].direction* Math.PI / 180);
ballList[n].speed=u2;
ballList[n].direction=angle2+devAngle;
ballList[n].speedX=ballList[n].speed*Math.cos(ballList[n].direction* Math.PI / 180);
ballList[n].speedY=ballList[n].speed*Math.sin(ballList[n].direction* Math.PI / 180); if(ballList[j].speedX*ballList[n].speedX>0)
{ballList[j].nextX+=ballList[j].speedX;}
if(ballList[j].speedY*ballList[n].speedY>0)
{ballList[j].nextY+=ballList[j].speedY;}
}
if(currentdisY==0) {
var devAngle=0;
speedComputing(devAngle);
}function speedComputing(inputDevAngle)
{ var angle1;
var angle2;
var v1t;
var v1n;
var v2t;
var v2n;
var u1;
var u1t;
var u1n;
var u2;
var u2t;
var u2n;
var devAngle=inputDevAngle;
angle1=ballList[j].direction-devAngle;
angle2=ballList[n].direction-devAngle;
v1n=ballList[j].speed * Math.cos(angle1 * Math.PI / 180);
v1t=ballList[j].speed * Math.sin(angle1 * Math.PI / 180);
v2n=ballList[n].speed * Math.cos(angle2 * Math.PI / 180);
v2t=ballList[n].speed * Math.sin(angle2 * Math.PI / 180);
u1n=[(1-ballList[j].elaticity2)*v1n+(1+ballList[j].elaticity2)*v2n]/2;
u1t=v1t;
u1=Math.sqrt(u1n*u1n+u1t*u1t);
if(u1n>0){angle1=Math.atan(u1t/u1n)*180/Math.PI;}
if(u1n<0){angle1=Math.atan(u1t/u1n)*180/Math.PI+180;}
if(u1n==0)
{
if(u1t>0){angle1=90;}
else if(u1t<0){angle1=-90;}
else{angle1=0;}
}
u2n=[(1+ballList[j].elaticity2)*v1n+(1-ballList[j].elaticity2)*v2n]/2;
u2t=v2t;
u2=Math.sqrt(u2n*u2n+u2t*u2t);
if(u2n>0){angle2=Math.atan(u2t/u2n)*180/Math.PI;}
if(u2n<0){angle2=Math.atan(u2t/u2n)*180/Math.PI+180;}
if(u2n==0)
{
if(u2t>0){angle2=90;}
else if(u2t<0){angle2=-90;}
else{angle2=0;}
}
ballList[j].speed=u1;
ballList[j].direction=angle1+devAngle;
ballList[j].speedX=ballList[j].speed*Math.cos(ballList[j].direction* Math.PI / 180);
ballList[j].speedY=ballList[j].speed*Math.sin(ballList[j].direction* Math.PI / 180);
ballList[n].speed=u2;
ballList[n].direction=angle2+devAngle;
ballList[n].speedX=ballList[n].speed*Math.cos(ballList[n].direction* Math.PI / 180);
ballList[n].speedY=ballList[n].speed*Math.sin(ballList[n].direction* Math.PI / 180); if(ballList[j].speedX*ballList[n].speedX>0)
{ballList[j].nextX+=ballList[j].speedX;}
if(ballList[j].speedY*ballList[n].speedY>0)
{ballList[j].nextY+=ballList[j].speedY;}
}
解决方案 »
- 请问如何用jquery识别图片并点击弹出层放大(一张图片非缩略和原图关系)
- 错误 3 “" + result1[2] + "”不是有效标识符。
- FF正则表达式验证email的问题
- 用 <a href="??????">用户桌面</a>能不能返回呀?????
- 正则表达式问题,在线等...感谢!
- 如何下载此网页中的幻灯片,可能需要分析源码~ 解决问题者另开100分感谢~
- javascript如何实现类似其他语言中的label功能?
- 怎么调用父窗口的函数
- 如何屏蔽当请求资源时(比喻动态的刷新面面)鼠标变成沙漏的形状?
- 如何用js实现下列要求,超简单的
- 急求救
- Extjs面板拖拽实现Portal遇到一个问题
if(currentdisY==0) { var angle1;
var angle2;
var v1t;
var v1n;
var v2t;
var v2n;var u1;
var u1t;
var u1n;
var u2;
var u2t;
var u2n;
var devAngle=0;
angle1=ballList[j].direction-devAngle;
angle2=ballList[n].direction-devAngle;
v1n=ballList[j].speed * Math.cos(angle1 * Math.PI / 180);
v1t=ballList[j].speed * Math.sin(angle1 * Math.PI / 180);
v2n=ballList[n].speed * Math.cos(angle2 * Math.PI / 180);
v2t=ballList[n].speed * Math.sin(angle2 * Math.PI / 180);
u1n=[(1-ballList[j].elaticity2)*v1n+(1+ballList[j].elaticity2)*v2n]/2;
u1t=v1t;
u1=Math.sqrt(u1n*u1n+u1t*u1t);
if(u1n>0){angle1=Math.atan(u1t/u1n)*180/Math.PI;}
if(u1n<0){angle1=Math.atan(u1t/u1n)*180/Math.PI+180;}
if(u1n==0)
{
if(u1t>0){angle1=90;}
else if(u1t<0){angle1=-90;}
else{angle1=0;}
}
u2n=[(1+ballList[j].elaticity2)*v1n+(1-ballList[j].elaticity2)*v2n]/2;
u2t=v2t;
u2=Math.sqrt(u2n*u2n+u2t*u2t);
if(u2n>0){angle2=Math.atan(u2t/u2n)*180/Math.PI;}
if(u2n<0){angle2=Math.atan(u2t/u2n)*180/Math.PI+180;}
if(u2n==0)
{
if(u2t>0){angle2=90;}
else if(u2t<0){angle2=-90;}
else{angle2=0;}
}
ballList[j].speed=u1;
ballList[j].direction=angle1+devAngle;
ballList[j].speedX=ballList[j].speed*Math.cos(ballList[j].direction* Math.PI / 180);
ballList[j].speedY=ballList[j].speed*Math.sin(ballList[j].direction* Math.PI / 180);ballList[n].speed=u2;
ballList[n].direction=angle2+devAngle;
ballList[n].speedX=ballList[n].speed*Math.cos(ballList[n].direction* Math.PI / 180);
ballList[n].speedY=ballList[n].speed*Math.sin(ballList[n].direction* Math.PI / 180);if(ballList[j].speedX*ballList[n].speedX>0)
{ballList[j].nextX+=ballList[j].speedX;}
if(ballList[j].speedY*ballList[n].speedY>0)
{ballList[j].nextY+=ballList[j].speedY;}
}
function speedComputing(ballList,inputDevAngle)
j is not defined
[在此错误处中断] angle1=ballList[j].direction-devAngle;
开始一直试着用function speedComputing(ballList[j],ballList[n],inputDevAngle)
{ var angle1;
var angle2;
var v1t;
var v1n;
var v2t;
var v2n;var u1;
var u1t;
var u1n;
var u2;
var u2t;
var u2n;
var devAngle=inputDevAngle;
angle1=ballList[j].direction-devAngle;
angle2=ballList[n].direction-devAngle;楼主 j 和 n 哪来的 ?