万有引力定律的证实实验
2008-04-02 10:35:05来源:互联网 阅读 ()
制作过程说明:
1.配置场景,首先我们建立一个400 x 300的文档,然后在文档的中央位置绘制一个大小适宜的正圆。如下图所示:
2.首先我们先初始化几个变量,他们分别是:gravity, restitution 和 friction,并且把下面的代码添加到时间轴的第一桢:
var gravity:Number = 1.2;
var restitution:Number = 0.6;
var friction:Number = 0.9;
stop();
3.然后我们对小球进行配置,首先把小求转变为一个组件,类型选择影片剪辑,名称为:Ball_MC。然后为这个影片剪辑实例添加如下代码:
onClipEvent(load) {
var vel:Object = { x: 0, y: 0 };
var pos:Object = { x: _x, y: _y };
var old:Object = { x: _x, y: _y };
var radius:Number = this._width / 2;
var movie:Object = { width: 400, height: 300 };
var dragging:Boolean = false;
}
4.我们添加如下代码来控制小球的移动
onClipEvent(enterFrame) {
vel.y = _root.gravity;
pos.x = vel.x;
pos.y = vel.y;
// 现在来更新小球的实际位置...
_x = pos.x;
_y = pos.y;
}
5.当小球在按钮的范围,被拖拽并松开时,小球就能够蹦了!加上如下代码:
// Has the ball left the bottom of the stage?...
if( pos.y radius > movie.height ) {
pos.y = movie.height - radius;
vel.y *= -_root.restitution;
}
6.为了让鼠标的动作更加真实,比如您能够用鼠标任意拖拽小球,我们要稍微修改一下Ball_MC元件。在舞台上选择小球实例,然后按Ctrl E来编辑实例,并且配置为黄色,然后转变为一个按钮元件Ball_Button,然后给按钮添加如下代码:
on(press){
startDrag(this,false,16,16,384,284);
dragging = true;
}
on(release, releaseOutside){
stopDrag();
dragging = false;
}
为了能让动画更加具体我们需要配置一个变量dragging来保持小球被拖拽的轨迹,代码如下:
onClipEvent(enterFrame) {
if(!dragging) {
// Actions to apply gravity here...
}
}
为了使动画更加真实,我们需要增加上述的代码的功能,以使我们能在舞台上任意拖拽并扔小球。
onClipEvent(enterFrame) {
if(!dragging) {
// Actions to apply gravity here...
} else {
old.x = pos.x;
old.y = pos.y;
pos.x = _x;
pos.y = _y;
vel.x = ( pos.x - old.x ) / 2;
vel.y = ( pos.y - old.y ) / 2;
}
}
7.另外我们更有2个问题要解决:(1).我们扔小球到左边、右边甚至看不到之后这时添加如下代码来解决:
...
if( pos.x radius > movie.width ) {
pos.x = movie.width - radius;
vel.x *= -_root.restitution;
}
if( pos.x < radius ) {
pos.x = radius;
vel.x *= -_root.restitution;
}
...
(2)让小球在舞台上指定的位置来回跳动
// Has the ball left the bottom of the stage?...
if( pos.y radius > movie.height ) {
pos.y = movie.height - radius;
vel.y *= -_root.restitution;
vel.x *= _root.friction;
}
到此动画就出现了
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 带进度条的Loading制作
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash