
请高手帮忙解释下该代码的意思
这个是一本书上面的实例出现的代码`我原本列出一下`------------------------------------------_root.onKeyDown=fu...
这个是一本书上面的实例出现的代码`我原本列出一下`
------------------------------------------
_root.onKeyDown = function() {
switch (Key.getCode()) {
case Key.UP :
dancer1._y -= 10;
dancer2._y -= 10;
break;
case Key.DOWN :
dancer1._y += 10;
dancer2._y += 10;
break;
case Key.LEFT :
dancer1._x -= 10;
dancer2._x += 10;
break;
case Key.RIGHT :
dancer1._x += 10;
dancer2._x -= 10;
break;
case Key.SPACE :
v = 50;
onEnterFrame = function () {
dancer1._y -= v;
dancer2._y -= v;
if (v == -50) {
delete onEnterFrame;
}
v -= 10;
};
break;
}
};
Key.addListener(_root);
-----------------------------------
此代码利用键盘上的方向键来控制"dancer1"和"dancer2"的运动`
利用空格键控制跳跃`
而我所不明白的就是这个地方:
case Key.SPACE :
v = 50;
onEnterFrame = function () {
dancer1._y -= v;
dancer2._y -= v;
if (v == -50) {
delete onEnterFrame;
}
v -= 10;
};
break;
就是设定跳跃的代码解释我不理解`连书也不详细说明`
那个高手能够解释的更详细一点呢?
为什么我把那些数值改变了`会变的更奇怪`例如我把10改成0 就一跳就超出范围呢?
回答详细追加分啦`谢谢了` 展开
------------------------------------------
_root.onKeyDown = function() {
switch (Key.getCode()) {
case Key.UP :
dancer1._y -= 10;
dancer2._y -= 10;
break;
case Key.DOWN :
dancer1._y += 10;
dancer2._y += 10;
break;
case Key.LEFT :
dancer1._x -= 10;
dancer2._x += 10;
break;
case Key.RIGHT :
dancer1._x += 10;
dancer2._x -= 10;
break;
case Key.SPACE :
v = 50;
onEnterFrame = function () {
dancer1._y -= v;
dancer2._y -= v;
if (v == -50) {
delete onEnterFrame;
}
v -= 10;
};
break;
}
};
Key.addListener(_root);
-----------------------------------
此代码利用键盘上的方向键来控制"dancer1"和"dancer2"的运动`
利用空格键控制跳跃`
而我所不明白的就是这个地方:
case Key.SPACE :
v = 50;
onEnterFrame = function () {
dancer1._y -= v;
dancer2._y -= v;
if (v == -50) {
delete onEnterFrame;
}
v -= 10;
};
break;
就是设定跳跃的代码解释我不理解`连书也不详细说明`
那个高手能够解释的更详细一点呢?
为什么我把那些数值改变了`会变的更奇怪`例如我把10改成0 就一跳就超出范围呢?
回答详细追加分啦`谢谢了` 展开
1个回答
展开全部
10是每次递减的位移量.你如果把10改成0,那每次位移也就是V都是50,根本不会触发
if (v == -50) {
delete onEnterFrame;
}
这个判断,删除不了循环所以会一直往上走而超过范围.
原本V=10;也就是位移的变化是
上升50-40-30-20-10-0-下落 -10 - -20 - -30 - -40 - -50 删除循环.
是一个缓冲类的移动方式,其实FLASH里面有内置的
tween类可以完成这一动作.
你如果把v改成负数,就是一个下落再弹回的动作
V的绝对值越小,则下落或上升的距离越大
if (v == -50) {
delete onEnterFrame;
}
这个判断,删除不了循环所以会一直往上走而超过范围.
原本V=10;也就是位移的变化是
上升50-40-30-20-10-0-下落 -10 - -20 - -30 - -40 - -50 删除循环.
是一个缓冲类的移动方式,其实FLASH里面有内置的
tween类可以完成这一动作.
你如果把v改成负数,就是一个下落再弹回的动作
V的绝对值越小,则下落或上升的距离越大

2024-12-11 广告
上海亚远景信息科技有限公司是国内汽车行业咨询及评估领军机构之一,深耕于ASPICE、敏捷SPICE、ISO26262功能安全、ISO21434车辆网络安全领域,拥有20年以上的行业经验,专精于培训、咨询及评估服务,广受全球车厂及供应商赞誉,...
点击进入详情页
本回答由亚远景信息科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询