5D艺术网首页
商城
|
资讯
|
作品
|
博客
|
教程
|
论坛
登录
注册
加为好友
发短消息
来自:西安
性别:先生
最后登录:2014-09-24
http://dzxz.5d.cn/
学习编程纯属业余爱好,但时间久了,或多或少就有了一点点的经验和心得。接触 Flash 程序设计是从2005年的10月以后才开始的,在学习Flash的过程中得到了 闪客启航UC聊天室 很多朋友和老师的非常大的帮助,这对我的学习的方向也产生了较大的影响。 目前对游戏设计、课件制作有较浓厚的兴趣,在博客中写了一些这方面的分析文章,与大家一起分享编程的快乐,并且希望我的课件设计方面的讨论对教师朋友能有所帮助。
首页
|
新闻
|
话题
|
博客
|
相册
|
艺术作品
|
社交关系
|
留言板
|
社交圈
2006/09/25 | 应朋友之邀作了个好玩的小东西
类别(Flash课件设计)
|
评论
(6)
|
阅读(224)
|
发表于 13:04
Flash 动画
:
主场景中建两个mc,分别是 太阳(earth_mc)和月亮(moon_mc)处,样式自己定,实例名必须是 earth_mc 和 moon_mc , 主场景第一帧中写入下面的代码即可。
_root.onEnterFrame = enterRoot;
//为了让大球碰撞小球时同样生效,有此一句。
moon_mc.onPress = function() {
startDrag(this);
//小球开始拖拽。
delete this.onEnterFrame;
//删除掉小球的 onEnterFrame 事件。 初始时,该事件并不存在,flash 可以自动忽略它。
_root.onEnterFrame = enterRoot;
//指定主场景的 onEnterFrame 的事件处理程序。
showText = "请拖动球体进行碰撞";
};
moon_mc.onRelease = function() {
stopDrag();
};
moon_mc.onReleaseOutside = function() {
stopDrag();
};
function checkPSN() {
//球体间的碰撞检测是通过半径之和 与两球间的距离进行比较。
var radius = 125 * 125;
var distance = (moon_mc._x - earth_mc._x) * (moon_mc._x - earth_mc._x) + (moon_mc._y - earth_mc._y) * (moon_mc._y - earth_mc._y);
//不开根号,是为了提高运算速度。
if (distance <= radius) {
return true;
} else {
return false;
}
}
function enterRoot() {
if (checkPSN()) {
delete this.onEnterFrame;
//动态删除掉主场景的 onEnterFrame 事件处理程序。
moon_mc.stopDrag();
//小球停止拖拽。
angle = Math.atan2((moon_mc._y - earth_mc._y), (moon_mc._x - earth_mc._x));
//返回值是弧度,该弧度决定初始的碰撞位置。
moon_mc.onEnterFrame = function() {
angle = (angle + 5 * 3.14159 / 180) % (2 * 3.14159);
//角度每次自加5度。
moon_mc._x = earth_mc._x + 126 * Math.cos(angle);
moon_mc._y = earth_mc._y + 126 * Math.sin(angle);
//根据大圆的坐标来确定小圆旋转到的位置。
};
showText = "请把小球拖开";
}
}
//画蛇添个足,让大圆动起来。
earth_mc.onPress = function() {
startDrag(this);
};
earth_mc.onRelease = function() {
stopDrag();
};
earth_mc.onReleaseOutside = function() {
stopDrag();
};
0
评论
Comments
日志分类
首页
[295]
Flash游戏教程
[33]
Flash与飞行程序设计
[10]
Flash课件设计
[62]
Flash学习笔记
[74]
家住西安
[47]
编程资源
[69]