Flash AS3 中,我有实例,mc1;mc2;mc3;mc4 如何遍历mc好1234网址之家 官网每个实例的位置?

MC1、MC2、MC3、MC4极限片各一套
竞转委托管流程Flash实例教程:悦目标跟从鼠标的旋转星星_网页成品网,网页设计,网页制作,毕业设计,网页设计作品
当前位置: >
Flash实例教程:悦目标跟从鼠标的旋转星星
看看结果:&
第一步:打开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也一样会近,直到它们的坐标和鼠标相称为止,并且它们的坐标永久也不会小于鼠标的坐标。到此刻也差不多了,我只是想给新手一个参考。
上一篇:没有了
. 邮箱传送
. 旺旺传送
. 官方优质模板
. 描述100%一致
. 诚信服务
. 安全交易
. 售后保障
. 协助修改页面信息
. 多渠道沟通
. 1:1售后指导
. 在线支付
. 线下汇款
. 大学生作业模板
. 定制大学生作业
. 商家信息发布
. 学生作业任务发布
Copyright & 2010-. 网页成品网 版权所有Flash实例教程:好看的跟随鼠标的旋转星星
此篇flash教程主要用Flash制作好看的跟随鼠标的旋转星星,下面让我们一起来学习吧。
看看效果:
打开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
这个坐标值会离鼠标越来越近的,直到和鼠标的坐标一样,那么相同后面的MC也一样会近,直到它们的坐标和鼠标相等为止,而且它们的坐标永远也不会小于鼠标的坐标。
到现在也差不多了,我只是想给一个参考。
上一篇: 下一篇:
文章链接:
任务赏金:300元 开始时间: 18:02:12 结束时间: 18:02:12 欢迎参加淘宝商品好评采集威客任务,更多的程序/软件开发任务等您中标赚钱! 输入...
时间:日日 展馆:上海美术馆 前言 随着工业革命和...
<img src="http://www.uuuu.cc/images/defaultpic.gif" alt="<font color='#FF艺术设计院校毕业展时间表(更新中)"/>
<font color='#FF艺术设计院校毕业展时间表(更新中)
2011届毕业生即将离开校园走向社会,开启他们人生一段新的航程。毕业...flash中求解函数-学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
flash中求解函数
来源:互联网 发表时间: 10:04:46 责任编辑:鲁晓倩字体:
为了帮助网友解决“flash中求解函数”相关的问题,学网通过互联网对“flash中求解函数”相关的解决方案进行了整理,用户详细问题包括:
mymove = function () {
for (i=1; i&= i++) {
var sudu = eval(&mc&+i).rott += 0.03; //请解eval的函数
var tt = 40*Math.cos(sudu-Math.PI/2)+60;//求解sin与cos的区别 ,同时括号中的意思
eval(&mc&+i)._x = 275+250*Math.cos(sudu-0.5...
+i)._xscale = this._y = 140+20*M eval(&quot.8;/&#47._yscale *= 0; }}._xscale = eval(&求解sina(sudu)的意思 eval(&mc&求解sin与cos的区别 ;求解这句什么意思&#47.sin(sudu);mc&+i);/求解这句什么意思var tt = setInterval(&#47.tt=setInterval(_ eval(&mc&quot.onRollOut = function() { _2)+60;请解eval的函数 var tt = 40*M&#47.cos(sudu-0,10);mc&quot._alpha =+i);+i). i& eval(&+i), 10);=mc&quot.swapDepths(tt);mc&quot._yscale=40*Math,同时括号中的意思 eval(&};&#47.PI&#47.sin(sudu)+70._x = 275+250*M+i).5);+i); i++) { var sudu = eval(&mc&&#47.cos(sudu-Math.03; &#47.rott += 0mymove = function () { for (i=1;&#47
,具体解决方案如下:解决方案1:mc&求解sin与cos的区别 ;+i),同时括号中的意思 &#47,不明白的; eval(&}._alpha = tt,说了也不明白 60是圆心 40是半径 eval(& eval(&+i), / i&定时器 10ms执行一次 就是执行上面的 mymove函数&#47,能看明白._x = 275+250*Math.cos(sudu-0;&#47,鼠标放上去会停._y = 140+20*M eval(&quot,能理解as语言基础的人;整个效果无非就是循环3D菜单;mc&quot,移开会继续转能理解三角函数;/mc&+i);mc&quot.PI/&#47.mymove.sin(sudu)._yscale=40*Math._xscale = eval(&quot,10),根据一个圆心偏转角度罢了.onRollOut = function() { _root.8;跟上面一样mc&+i);&#47.0的取对象函数,它们的名字是 mc1 mc2 mc3 mc4 mc5类似的序列 ,根据字符串名字合成获取指定的对象 var tt = 40*Math,不懂高中三角函数的._yscale *= 0.swapDepths(tt);/mc&quot, 10)._xscale == }}.sin(sudu)+70.tt=setInterval(_ i++) { var sudu = eval(&var tt = setInterval(+i);+i);/2)+60,说了也仅是大概理解罢了;场景中有 N个影片剪辑 ;eval是as1;/cos是求x轴的 sin是求y轴的;+i).5).rott += 0;mc&&#47.cos(sudu-M/ /&#47.03mymove = function () { for (i=1;三角函数 eval(&quot
相关文章:
最新添加资讯
24小时热门资讯
Copyright &#169; 2004- All Rights Reserved. 学网 版权所有
京ICP备号-1 京公网安备02号

我要回帖

更多关于 好1234网址之家 的文章

 

随机推荐