| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > ActionScript教程 > 文章正文 用户登录
flash画线之经典教
Flash面向对象程序
关于color对象的使
MC和对象数据类型
电影剪辑对象的绘
关于面向对象编程
应用Key对象控制元
TextSnapshot对象
AS2.0面向对象编程
AS基础精典教程 第

数学对象的应用           

数学对象的应用

作者:佚名 来源:闪吧 作者: 龙族酷少 更新:2007-1-13 20:48:58 错误报告 我要投稿

一个基本的旋转效果:
点击浏览该文件 点击开新窗口欣赏该FLASH动画![全屏欣赏]


学习AS有一段时间了,最近越来越感觉到数学对象在脚本中的重要性,不仅在画线问题上必须用到这些函数,在一些比较普遍的物体绕圆形或者椭圆旋转的问题中也广泛用到数学对象。因为旋转问题已经成为实现效果最常见的问题之一,而且也经常遇到一些朋友询问这方面的问题,结合有些现有的材料,加上自己的想法大体总结一下,希望对大家有用。
言归正传,作为一门编程语言,进行数学计算是必不可少的。在数学计算中经常会使用到数学函数,如取绝对值、开方、取整、求三角函数值等,还有一种重要的函数是随机函数。AS将所有这些与数学有关的方法、常数、三角函数以及随机数都集中到一个对象里面——Math对象。
下面先按顺序简要讲解一下数学对象的基础知识
Math.abs(数字或表达式);
就是用来计算一个数的绝对值,即一个数去掉正负符号后的值。其用法如下:
x=Math.abs(-1);或者x=Math.abs(x1-x2);
Math.ceil方法取比一个浮点数大且最接近的整数。//ceil是天花板也就是上面的意思
例如:trace(Math.ceil(1.1));输出 2
Math.floor方法取比一个浮点数小且最接近的整数。//floor是地板也就是下面的意思
例如:trace(Math.floor(1.1));输出1
Math.min方法取两个数中较小的一个数,Math.max方法取两个数中较大的一个数,
例如:trace(Math.min(2, 1));输出1,而trace(Math.max(2, 1));输出2。
Math.pow方法用来计算一个数的乘方,它包含两个参数,第1个参数是底数(要乘方的数),第2个参数是幂(乘方数)。
例如:要计算3的平方:trace(Math.pow(3, 2));
除了用Math.pow计算一个数的开方,还可以使用Math.sqrt计算一个数的平方根,
例如计算16的平方根:
trace(Math.sqrt(16));将输出4。等同于trace(Math.pow(16, 1/2));
数学对象的常数有以下几个:
Math.PI:圆周率(大约为3.141593)。
Math.SQRT1_2:1/2的平方根的倒数(大约为0.707107)。
Math.SQRT2:2的平方根(大约为1.414214)。
Math.E:欧拉(Euler)常数,自然对数的底(大约为2.718282)。
Math.LN2:2的自然对数(大约为0.693147)。
Math.LN10:10的自然对数(大约为2.302585)。
Math.LOG2E:e的以2为底的对数(大约为1.442695)。
Math.LOG10E:e的以10为底的对数(大约为0.434294)。
其中Math.PI用得较多,在很多画线效果以及旋转效果要用到这个常数
如下面的脚本将弧度值arcdegree转换为角度值angledegree:
angledegree = arcdegree*(180/Math.PI);
三角函数
数学对象中的三角函数有:
Math.sin:正弦
Math.cos:余弦
Math.tan:正切
Math.asin:反正弦
Math.acos:反余弦
Math.atan:反正切
Math.atan2:从x坐标轴到点的角度
三角函数在脚本中有着举足轻重的地位,它们在制作一些特效动画时比如影片剪辑绕一个圆形或者椭圆旋转等效果的时候将发挥重要的作用。
在程序语言中通常以x和y标记位置,但是在一个圆周上使用x和y来标记位置并不是很容 易。三角函数在处理与圆周相关的位置参数时很有效。如用某个圆的圆心位置为(x0,y0) ,半径为r,可以用y0+r*Math.sin(0)表示该圆水平直径右端点的纵坐标,x0+r*Math.cos (0)表示该圆水平直径右端点的横坐标。
根据上面的原理,下面我们做一个小例子,让一个影片剪辑绕着一个圆形旋转。
主要步骤是:
1、新建文件,然后创建一影片元件,在影片元件中随便做一个物体或者物体动作的效果。
2、回到场景中,按F11,将影片剪辑拖到场景中,选中,在动作面板中写上下面代码:
onClipEvent (load) {//影片载入的时候初始化一些变量
i = 0;
r = 150;//运动轨道的半径
x0 = 275;
y0 = 200;//确定影片绕着运动的圆形的圆心坐标
}
onClipEvent (enterFrame) {//逐桢执行动作
i += 10;//角度自加
this._x = x0+r*Math.cos(i/(180/Math.PI));
this._y = y0+r*Math.sin(i/(180/Math.PI));//设置影片的XY坐标,让影片在圆形轨道上运动
}
3、Ctrl+Enter测试效果。
当然,你也可以在多个影片中加入上面的程序,方法是分别选中影片,加入脚本即可。另外,你也可以把旋转的影片再做的复杂点,这样就有比较好的效果。一些很眩的效果其实就是由这样的一些基本效果组合而成的,基本原理明白了以后,再加上个人的创意就会有好的效果产生。 今天先写到这里吧,下次想起来更多的内容再写,如果有什么不合理的地方,欢迎大家提出,一起探讨,共同进步,谢谢先……
再帖两个旋转效果, 点击开新窗口欣赏该FLASH动画![全屏欣赏]

点击开新窗口欣赏该FLASH动画![全屏欣赏]

上面三个效果的原文件:后面两个就是多加了几个影片而已,代码都是类似的,几个影片的旋转轨道半径、旋转速度都做了一些改变
点击浏览该文件
点击浏览该文件
点击浏览该文件

文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。