如何改变元件的移动速度

gonxi1001 2005-08-26 06:55:22
从网上下的源码如下:
onClipEvent (load)
{
var n = 0;
var i = 0;
var x = random(100) + 1;
var y = random(50) + 1;
var c = Math.pow(-1, random(2));
}
onClipEvent (enterFrame)
{
if (_name != "num")
{
_x = x * c * Math.sin(i = i + 0.100000) + 230;
_y = _y - y;
if (_y < 100)
{
this.removeMovieClip();
} // end if
}
else
{
n = n > 3 ? (0) : (n + 1);
this.duplicateMovieClip("num" + n, n);
mc = _parent["num" + n];
mc._xscale = mc._yscale = random(12) + 3;
} // end if
}
放在 元件名,<num> 处,原来的程序中通过修改y的定义可以改变心的移动速度
但是我原样拷过来,修改y时只能改变心的移动高度,却不能改变速度了
不知道是何原因?请各位指教!!
...全文
187 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gonxi1001 2005-08-30
  • 打赏
  • 举报
回复
确实如此,但如何解释呢?
gonxi1001 2005-08-29
  • 打赏
  • 举报
回复
to tjficcbw(津津)
我只需要改变元件的移动速度,你看题目就知道了;
to ywb1973(虎骨酒)
我们的想法是一致的,而且在下载的.fla测试结果也验证了我们的想法
问题是我照葫芦画瓢,出来的就是不对,修改y只能改变振幅却不能改变速度,
不知道是什么原因,感觉好像是有些源码看不见一样
ywb1973 2005-08-29
  • 打赏
  • 举报
回复
_y = _y - y;
上面这行语句修改元件当前的_y坐标值,改变y应该是可以改变速度呀
if (_y < 100){ this.removeMovieClip(); }
当元件到达一定高度(y足够小)时,删除元件
应该是这个意思吧?
ywb1973 2005-08-29
  • 打赏
  • 举报
回复
我测试了一下,把n加大一点,速度就可以控制了。
至于是为什么,我也不清楚了,等待高手来解决。
gonxi1001 2005-08-29
  • 打赏
  • 举报
回复
to tjficcbw(津津):
很感谢你花那么多时间来帮助我解决问题,但是你没有明白我要问的是什么,反而是你所说的我都知道。我现在把我要说的换种方式再说一次:
1、在我下载的源码中(情有独钟第三帧处--根据陈晓春的歌“神呀,救救我吧”改编)修改y值,在运行的时候速度可以改变。y越大速度越快!!
2、把源码拷贝出来(也就是我贴出来的这一段),修改y值的时候,元件运行的速度就不会根据y的改变而改变--也就是说,无论你怎么修改y,元件都是以相同的速度向上运动。但是不同的y值在运行时会使元件的移动范围受限。理论上元件移动范围和y是无关的,只和if (_y < 100)这行语句中的100这个数值有关
现在我要问的问题是,为什么我不能够通过修改源码中的y值来改变修改后运行时元件的移动速度??
明白我要问的问题了吗??

这样说话好累呀,擦把汗
tjficcbw 2005-08-29
  • 打赏
  • 举报
回复
我再给你说一说这段话,
onClipEvent (load)
{
var n = 0;
var i = 0;
var x = random(100) + 1;
var y = random(50) + 1;
var c = Math.pow(-1, random(2));
}
这是你给y赋一个随机的初始值,比如23
_y = _y - y
这样它的高度在一定的时间内就要减小23,听清是在一定的时间内,这样肯定是匀速。

var y = random(50) + 1;
是1到50的一个数,
你想的挺好,这么大一个数一秒种运行12次,不到一秒种就到头了,还看的见效果吗。


tjficcbw 2005-08-29
  • 打赏
  • 举报
回复
这样会有弹性
y=i(i为自动增长的数)
_y = _y + 100-100/y(100为你的运动高度)
tjficcbw 2005-08-29
  • 打赏
  • 举报
回复
你要想改变速度,就不能是匀速,_y = _y - y;这样只能是匀速,只有当y值是变量时才是改变速度,如
y=2*i(i为自动增长的数)
_y = _y - y(这样会越来越快)
反之
y=2*i(i为自动增长的数)
_y = _y + y(这样会越来越慢)

tjficcbw 2005-08-26
  • 打赏
  • 举报
回复
你这不是改变速度的AS,你这是,复制num的剪辑,之字上升的动画,速度是随机的,
你想达到什么目的,我告诉你怎么改。

2,275

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计/Flash/Silverlight 开发 Flash流媒体开发
社区管理员
  • Flash流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧