Flash基础理论课 第三章 三角学应用Ⅱ

返回“Flash基础理论课 - 目录”

线性垂直运动

在Wave1.as 文件中,加入了线性垂直运动,只是为我们制作动画增加一些灵感。以下是这个文件的代码:

package {
 import flash.display.Sprite;
 import flash.events.Event;
 public class Wave1 extends Sprite {
  private var ball:Ball;
  private var angle:Number = 0;
  private var centerY:Number = 200;
  private var range:Number = 50;
  private var xspeed:Number = 1;
  private var yspeed:Number = .05;
  public function Wave1() {
   init();
  }
  private function init():void {
   ball = new Ball();
   addChild(ball);
   ball.x = 0;
   addEventListener(Event.ENTER_FRAME, onEnterFrame);
  }
  public function onEnterFrame(event:Event):void {
   ball.x += xspeed;
   ball.y = centerY + Math.sin(angle) * range;
   angle += yspeed;
  }
 }
}

心跳运动

使用正弦值作为一种工具,不仅仅只用于控制物理位置。在Pulse.as 文件中,使用一个值来影响小球的缩放,实现一个心跳的效果,代码如下:

package {
 import flash.display.Sprite;
 import flash.events.Event;
 public class Pulse extends Sprite {
  private var ball:Ball;
  private var angle:Number = 0;
  private var centerScale:Number = 1;
  private var range:Number = .5;
  private var speed:Number = .1;
  public function Pulse() {
   init();
  }
  private function init():void {
   ball = new Ball();
   addChild(ball);
   ball.x = stage.stageWidth / 2;
   ball.y = stage.stageHeight / 2;
   addEventListener(Event.ENTER_FRAME, onEnterFrame);
  }
  public function onEnterFrame(event:Event):void {
   ball.scaleX = ball.scaleY = centerScale +Math.sin(angle) * range;
   angle += speed;
  }
 }
}

原理是一样的,centerScale表示100%的缩放比,range 表示范围,speed 表示速度。不仅如此,正弦波还在alpha,rotation 等属性中应用。

时间: 2024-08-02 08:15:35

Flash基础理论课 第三章 三角学应用Ⅱ的相关文章

Flash基础理论课 第三章 三角学应用Ⅰ

返回"Flash基础理论课 - 目录" 从这一章开始,我们将学习三角学,并在第五章开始应用到动画技术中,其实在下一章的绘图技术中就会接触到.如果你已经对三角学有所了解或渴望学习动画方面的知识,那么可以跳过开始这部分,待日后遇到不懂的问题时,再回来学习.我们用到的90%的三角学都需要 Math.sin 和 Math.cos 这两个函数.在我写本书的第一版时,曾说过,除了在中学学习过的那些代数和几何外(而且由于时间久远大多都记不清了),我没有接受过正规的数学培训,最初在本章中的内容都是来自

Flash基础理论课 第十七章 背面剔除与3D灯光Ⅰ

返回"Flash基础理论课 - 目录" 第十六章介绍了所有建立 3D 立体模型的基础包括:如何创建点,线,用多边形组成各种形状,以及如何为每个多边形设置颜色.但是,我们只能让颜色的透明度为50%,才能看到正确的效果.虽然制作出的 3D 立体模型也不差,但是这样做在真实度上还是有所欠缺. 本章,通过介绍背面剔除(不绘制背面的多边形),深度排序(第十五章作了一点介绍,但这次要从多边形的角度重新审视它),以及 3D 灯光,来修正这个问题. 我想应用了这三种技术所得到的 3D 模型一定会让大家

Flash基础理论课 第七章 交互动画:移动物体Ⅰ

返回"Flash基础理论课 - 目录" 我们最初的目标就是要制作出流畅的交互动画,多数都是通过鼠标进行交互的.在第二章里面曾介绍过鼠标事件,但没有涉及到具体的应用. 本章将踏出交互动画的第一步.我们将学会如何处理拖拽,抛落及投掷.但首先要从基本的鼠标按下与释放说起. 按下及释放影片 鼠标可真是件了不起的发明,虽说只是个简单的设备.实际上鼠标只负责两件事:检测移动及点击按钮.计算机用获得的这些信息可以做很多事:通过获知鼠标指针的位置,确定当发生点击的位置,移动的速度,及确定双击事件的发生

Flash基础理论课 第四章 渲染技术Ⅰ

返回"Flash基础理论课 - 目录" 前一章面所看到的绘图示例中,只使用了一些非常简单的绘图指令,前面我们也几次提到了这个神秘的"drawing API",但没有加以详细的解释.本章我们将学习使用 ActionScript 创建视觉元素,其中包括 ActionScript的颜色,绘图 API ,ColorTransform类,滤镜(filter)和 BitmapData(位图)类.在本章的很多地方都会用到颜色,那么就先来学习第一课吧. Flash中的颜色 在Fla

Flash基础理论课 第十三章 正向运动学:行走Ⅰ

返回"Flash基础理论课 - 目录" 前面章节介绍的都是ActionScript交互动画的基础,也可以说是一些高级"基础".现在开始,我们进入另一条有趣的技术之路,运动学. 到底什么是运动学呢?我所找到的一些资料看起来都有些让人望而却步,这是一项基于高级 3D 动画编程的技术.上网搜索一下,会发现其涉及到的方程中到处都是些陌生符号,这也成为了我们学习的最大障碍,似乎前面所学的内容都像是很基础的算法.首先,我要说,运动学并没有那么可怕.前面章节中只介绍了我们所需的一

Flash基础理论课 第十一章 撞球物理Ⅰ

返回"Flash基础理论课 - 目录" 我们都希望技术性的书籍,可以潜入深,由简单到复杂.本章内容的复杂度达到了顶点.并不是说接下来的章节会越来越容易,但是希望大家在学习本章内容时不要偷工减料.我会带大家一步步地学习本章的概念,如果到现在为止大家都能很好地跟上我的步伐,那就再好不过了. 本章我们要关注动量:两个物体发生碰撞后动量会发生什么样的变化,动量的守恒,以及如何在ActionScript中应用动量. 在本章的例子中使用的对象,都本这简单直接的原则,这个学科通常是指"撞球

Flash基础理论课 第六章 边界与摩擦力Ⅰ

返回"Flash基础理论课 - 目录" 到目前为止,我们已经学会了如何在影片中绘制图形,并且通过施加外力使影片运动起来.然而,在这些例子中也许会遇到这样的烦恼:物体移动到屏幕外后就不到了.如果在某个角度上运动得过快,那么就没有办法再让物体退回来,只能选择重新运行影片. 我们常常忽视边界的存在如:墙和屋顶,最平常的就是地面.通常在制作太空模拟时,要用环境边界作为一道屏障,保证物体能够在一个可见的范围内运动. 另一个常被忽略的问题是,所处的环境如何改变物体的运动.惯性一词是用来形容物体在空

Flash基础理论课 第五章 速度与加速度Ⅰ

返回"Flash基础理论课 - 目录" 恭喜各位!至此已经到了真正的动作编程部分,这就意味着:(a) 您已经坚持学习了前面的所有章节:(b) 您感觉前面内容已经会过了,所以跳过前面的章节:(c) 您感觉无聊所以跳过了.但是不管怎么样,要记得如果在日后的学习中遇到了相关的问题,可以回到前面几章寻找答案. 本章以基本运动为基础:速度,向量以及加速度.今后所有的ActionScript 动画,几乎都会用到这些概念. 速度向量(Velocity) 物体运动的最基本属性就是速度.很多人把速度向量

Flash基础理论课 第十七章 背面剔除与3D灯光Ⅱ

返回"Flash基础理论课 - 目录" 3D灯光 刚刚这个例子近乎可以让我们的渲染达到完美的效果,但是它似乎还缺少点儿什么.有些单调.OK,OK,大家看到标题就已经知道了,下面就让我们加入3D的灯光效果吧. 同背面剔除一样,3D灯光的细节也是相当复杂并且需要数学运算的.我实在没有太多的空间讨论每个漂亮的细节,但是通过快速的网络搜索大家可以获得非常更多的相关资料,也许这些资料多得我们一生也看不完.在这里,我给大家的都是一些基础的需要用到的函数. 首先,需要一个光源.一个最简单的光源只有两