多媒体交互应用基础(7)

问题一:如何让复制影片剪辑产生动态旋转效果?

 

步骤:复制10个小球,将每一个小球用数组管理。然后为数组里面每一个对象更改位置,和角度让其产生旋转效果

 

  1. package 
  2. {
  3.     import flash.display.MovieClip;
  4.     import flash.events.*;
  5.     import flash.display.SimpleButton;
  6.     public class Example extends MovieClip
  7.     {
  8.         private var R:int=120;//半径长度
  9.         private var angle:Number;//每一个小球相差的角度数
  10.         private var speed:Number=0;//小球的运动速度
  11.         private var list:Array=new Array();
  12.         public function Example()
  13.         {
  14.             init();
  15.         }
  16.         private function init():void
  17.         {
  18.             for (var i:int=0; i <10; i++)
  19.             {
  20.                 angle=2 * Math.PI / 10 * i + speed;
  21.                 var obj:mc=new mc;
  22.                 addChild(obj);
  23.                 list.push(obj);
  24.                 trace(list);
  25.                 obj.x=stage.stageWidth / 2 + Math.cos(angle) * R;
  26.                 obj.y=stage.stageHeight / 2 + Math.sin(angle) * R;
  27.                 obj.addEventListener(Event.ENTER_FRAME,Run);
  28.             }
  29.         }
  30.         private function Run(e:Event):void
  31.         {
  32.             speed+= 0.005;
  33.             for (var j:int=0; j < 10; j++)
  34.             {
  35.                 var angle:Number=(2 * Math.PI / 10 )* j + speed;
  36.                 list[j].x=stage.stageWidth / 2 +Math.cos(angle) * R;
  37.                 list[j].y=stage.stageHeight / 2 +Math.sin(angle) * R;
  38.             }
  39.         }
  40.     }
  41. }

 

第一步:复制10个小球在场景里面。

第二步:让10小球压栈,用数组管理。 list.push()

第三步:让速度每一帧产生改变,并循环为每一个小球改变位置,改变角度。

 

这样效果就出来了

 

如果改变一下其R半径,就可以实现椭圆的算法。小球围绕的轨迹运动是椭圆曲线。

如:

 

  1. list[j].x=stage.stageWidth / 2 +Math.cos(angle) *R;
  2.                 list[j].y=stage.stageHeight / 2 +Math.sin(angle) *30;
  1. list[j].x=stage.stageWidth / 2 +Math.cos(angle) *30;
  2.                 list[j].y=stage.stageHeight / 2 +Math.sin(angle) *R;

看看他们会发生什么改变呢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值