flash跟随鼠标移动_FLASH跟随鼠标的旋转星星


快速阅读 2019-10-24 18:14:44 快速阅读
[摘要]第一步:打开FLASH,新建一个影片剪辑元件,命名为“星星”,在里面绘制一个星星出来,并且把它的中心点和舞台注册点对齐,在第20帧和第40处各插入一个关键帧。选中第20帧,在它

【www.jsxqjc.com--快速阅读】


  第一步:

  打开FLASH,新建一个影片剪辑元件,命名为“星星”,在里面绘制一个星星出来,并且把它的中心点和舞台注册点对齐,在第20帧和第40处各插入一个关键帧。选中第20帧,在它的中心点和舞台的注册点对齐的情况下按住SHIFT键进行等比例缩小(你认为差不多就行了),然后选中第1到20帧的任意一帧创建补间动画,打开属性面板把它的转调成逆时针,选中第20到40帧的任意一帧创建补间动画,打开属性面板把它的转调成顺时针。

  第二步:

  在新建一个影片剪辑元件,命名为“转圈的星星”,在图层面板的地方找到“添加运动引导层”添加一个引导层出来,在选中该图层的情况下按住AIT+SHIFT键在舞台上绘制一个有边框无填充色的圆(大小你认为合适就OK),然后用鼠标圈住它的一点边选中后删除(这样做是给它一缺口),选中绘制好的圆,把它的左和上对齐舞台中心的注册点,选中第40帧处添加一个帧,锁定该图层,选择第一个图层把我们库中的星星拖进来并把它的中心点对齐引导层中圆的上边的那个缺口的地方,选中第四十帧插入一个关键帧把它的中心点对齐引导层中圆的下边的那个缺口的地方。回到舞台,把库中转圈的星星放到舞台任意位置,并给它一个实例名称mc。

  第三步:

  继续插入一个影片剪辑元件,命名为“as",选中第一帧添加以下代码:

  var k:Number=64;//用来定义星星的个数;

  var n:Number=16;//用来定义一圈星星的个数;

  var r:Number=2;X坐标和Y坐标的缓动,值越大跟随鼠标移动时就越慢;

  for(var i=1;i<=k;i++){

  duplicateMovieClip("_root.mc","mc"+i,i);

  setProperty("_root.mc"+i,_rotation,360/n*i);

  setProperty("_root.mc"+i,_alpha,100/k*i);

  }

  setProperty(_root.mc,_visible,0);

  选中第二帧处插入一个空白关键帧添加以下代码:

  for(var j=1;j<=k;j++){

  setProperty("_root.mc"+j,_x,_root["mc"+j]._x+(_root["mc"+(j-1)]._x-_root["mc"+j]._x)/r);

  setProperty("_root.mc"+j,_y,_root["mc"+j]._y+(_root["mc"+(j-1)]._y-_root["mc"+j]._y)/r);

  }

  选中第三帧处插入一个空白关键帧添加以下代码:

  gotoAndPlay(2);

  添加完代码以后回到主场景;

  第四步:

  把库中名为as的元件拖放到舞台上,给它一个实例名称mc0.在主场景内添加一个图层在第一帧加上拖动代码:

  startDrag("_root.mc0",true);

  注意这里是mc0不是mc,虽然你拖动的影片里面没有东西,在下面我后细说的;

  做到现在就算完工了,我在这里就把重点的地方说一下。N为什么是它的一圈星星的个数

  在第一个for循环语句里有这样一段,

  setProperty("_root.mc"+i,_rotation,360/n*i);

  看它的_rotation的值是360/n*i

  也就是"_root.mc"+i,_rotation=360/16*i

  也就是

  _root.mc1._rotation=360/16*1

  _root.mc2._rotation=360/16*2

  _root.mc3._rotation=360/16*3

  _root.mc4._rotation=360/16*4

  _root.mc5._rotation=360/16*5

  _root.mc6._rotation=360/16*6

  _root.mc7._rotation=360/16*7

  _root.mc8._rotation=360/16*8

  _root.mc9._rotation=360/16*9

  _root.mc10._rotation=360/16*10

  .............._root.mc64._rotation=360/16*64

  也就是说把360度平均分成16份,它们的角度就是这个值,360/16=22.5。

  第一个MC的角度是从原MC角度22.5的地方开始复制出来的,第二个MC的角度是从原MC角度45的地方开始复制出来的,第三个MC的角度是从原MC角度67.5的地方开始复制出来的,直到乘到17的时候就重叠了,因为360/16*6=382.5,角最大值是360,当到382.5的时候它就把360看成0来计算了,结果就是22.5,当你把N的值调大的时候,比如36它就会有36个星星围成一圈了,360/36*i  也就是mc1角度是10*1,mc2的角度是10*2 ,mc3的角度是10*3  当乘到37的时候它的角度多了10也就是370,第37个MC的角度会是原MC角度的370-360也就是10,这就是N的值等于一圈星星的原因。

  我们在主场景第一帧里放的代码明明是拖动的MC0,为什么MC复制出来的影片会跟着鼠标走,把在AS第二帧设置X、Y坐标的循环代码拿下来分析一下:

  for(var j=1;j<=k;j++){

  setProperty("_root.mc"+j,_x,_root["mc"+j]._x+(_root["mc"+(j-1)]._x-_root["mc"+j]._x)/2);

  setProperty("_root.mc"+j,_y,_root["mc"+j]._y+(_root["mc"+(j-1)]._y-_root["mc"+j]._y)/2);

  }

  看它的X坐标,

  setProperty("_root.mc"+j,_x,_root["mc"+j]._x+(_root["mc"+(j-1)]._x-_root["mc"+j]._x)/2);

  setProperty这句话是说设置括号内(目标,目标的属性,该属性的值);

  我们现在的目标就是主场景上面的mc1,mc2,mc3,mc4,mc5......mc64;

  它们的X坐标值各是多少,为什么会跟随鼠标移动,我们来仔细地看下它们的值

  _root.mc+i._x_root["mc"+j]._x+(_root["mc"+(j-1)]._x-_root["mc"+j]._x)/2

  也就是

  mc1._x=mc1._x+(mc+(j-1)._x-mc1._x)/2

  假设mc1现在的坐标是300

  也就是mc1._x=300+(mc+(j-1)._x-300)/2

  现在我们已经得到两个数字了,还有一个mc+(j-1)._x,先算括号内,j-1第一次运行循环的时候j的值是1,就是1-1,也就是0;也就是mc+0,也就是mc0,也就是我们拖动的那个没有东西的影片剪辑。mc0是跟着我们的鼠标动的,上面搞清楚后,我们就在给mc0也就是我们鼠标的坐标假设一个值。随便设定一个我们就假设100吧,值有了我们在接着做算术。

  mc1._x=300+(100-300)/2

  也就是

  mc1._x=300+负200/2

  也就是

  mc1._x=300+负100 //注意下负值是越乘负的越多,越除负的越少,加减相反

  也就是

  mc1._x=200;

  当计算机运行到这里时,mc1的坐标是200了,但200还不符合我们所看到的效果,我们运行的时候是它的坐标是跟着鼠标走的,那么程序会接着往下走,它就会执行设定MC2的坐标了,MC2的坐标会是250,接着是MC3的坐标是275,总之是越往下它们坐标的间隔就会越小,你自己可以测试下看。

  当循环完64次以后程序跳出循环了,那么就会TOGO到下一帧,执行gotoAndPlay(2);

  又回来了,接着又是循环64次,代码还是相同的代码,不一样的是这次的坐标都是已经设置过的了,我们在看一下MC1现在的坐标是多少了,上次设置过后是200,那么现在是

  mc1._x=200+(100-200)/2

  也就是

  150

  这个坐标值会离鼠标越来越近的,直到和鼠标的坐标一样,那么相同后面的MC也一样会近,直到它们的坐标和鼠标相等为止,而且它们的坐标永远也不会小于鼠标的坐标。

本文来源:http://www.jsxqjc.com/ksyd/13474.html

相关阅读
  • 快速阅读术读后感700字系列汇编3篇 快速阅读术读后感700字系列汇编3篇
  • 四六级英语考试“四式”快速阅读 四六级英语考试“四式”快速阅读
  • 英语四级快速阅读解题两步走 英语四级快速阅读解题两步走
  • 四六级考试突破快速阅读四大法则 四六级考试突破快速阅读四大法则
  • 英语四级考试快速阅读解题思路及方法 英语四级考试快速阅读解题思路及方法
  • 15分钟规定时间内完胜英语四六级快速阅读 15分钟规定时间内完胜英语四六级快速阅读
  • 关于人对快速阅读的误解【四篇】 关于人对快速阅读的误解【四篇】
  • 四级考试快速阅读题型特征及解题步骤 四级考试快速阅读题型特征及解题步骤
为您推荐
  • 自考英语快速阅读三大法则
    自考英语快速阅读三大法则
    以下是小编收集整理的自考英语快速阅读三大法则,仅供参考,希望能够帮助到大家。
  • 2016年国家公务员考试行测主旨概括题快速阅读技巧
    2016年国家公务员考试行测主旨概括题快速阅读技巧
    以下是小编为大家收集的2016年国家公务员考试行测主旨概括题快速阅读技巧,仅供参考,欢迎大家阅读。
  • 人对快速阅读的误解范文三篇
    人对快速阅读的误解范文三篇
    快速阅读是一种阅读方法和技巧,是一种可以提高阅读效率的方法和技巧,那你知道人们对快速阅读的有哪些误解吗。下面是小编精心整理的人对快速阅读的误解范文三篇,仅供参考,大家一起来看看吧。
  • 人对快速阅读的误解精选五篇
    人对快速阅读的误解精选五篇
    快速阅读是一种阅读方法和技巧,是一种可以提高阅读效率的方法和技巧,那你知道人们对快速阅读的有哪些误解吗。以下是小编为大家收集的人对快速阅读的误解精选五篇,仅供参考,欢迎大家阅读。
  • 2021年快速阅读的方法及不良习惯(合集3篇)
    2021年快速阅读的方法及不良习惯(合集3篇)
    阅读是人们增长才能、获取知识的重要能力。培养人的阅读能力必须从小抓起。小学生阅读心理发展状态,对其阅读能力提高有着至关重要的作用。以下是小编为大家收集的2021年快速阅读的方法及不良习惯(合集3篇),仅供参考,欢迎大家阅读。
  • 关于英语快速阅读的技巧和方法【三篇】
    关于英语快速阅读的技巧和方法【三篇】
    英语快速阅读的技巧和方法有哪些 现在英语考试的时间特别紧张,几乎没有时间慢慢琢磨,必须要实现英语快速阅读。下面是小编为大家整理的关于英语快速阅读的技巧和方法【三篇】,欢迎大家借鉴与参考,希望对大家有所帮助。
  • 快速阅读术读后感800字【6篇】
    快速阅读术读后感800字【6篇】
    任何时间皆可读书,不需桌椅器具,不需约定时间地点。读完作者写的作品,我对里面的剧情充满了兴趣,读后感有三种写法:一种是缩写内容提纲,一种是写阅读后的体会感想,一种是摘录好的句子和段落。您是否对写好作品的读后感感到一头雾水呢。我们的工作总结之家小编特意搜集并整理了快速阅读术读后感范文,相信你能找到对自
  • 如何写好会议纪要和会议记录_如何写好会议纪要
    如何写好会议纪要和会议记录_如何写好会议纪要
    各级机关、人民团体、企事业单位要经常召开会议,交流情况,研究问题,布置工作等,对会议的情况、精神作归纳整理,将决策意见记载下来,这就形成了会议纪要。因而会议纪要就是记载和传达会议情况和议定事项的公文。
  • 快速阅读的方法训练|快速阅读必须克服的10种不良阅读习惯
    快速阅读的方法训练|快速阅读必须克服的10种不良阅读习惯
    这些习惯妨碍阅读速度和理解,还可能损害身体健康。高效阅读必须克服这些不良阅读习惯。 一、音读 音读包括以下几种情况:①读出声;②唇动;③舌或喉、声带动;④心诵,即大脑 中
  • 快速阅读的方法训练_快速阅读训练中影响注意力的十大因素
    快速阅读的方法训练_快速阅读训练中影响注意力的十大因素
    注意力是心理活动对一定事物的指向和集中。注意力是衡量注意程度的指标,包括注意的广度、稳定性、分配和转移的力度。注意力是智力活动的警卫,也是智力活动的组织者和维护者。前苏联的教育家马申斯基说过:&ldq