2022年Flash新手入门教程:AS代码中duplicateMOvieClip的应用 .pdf
《2022年Flash新手入门教程:AS代码中duplicateMOvieClip的应用 .pdf》由会员分享,可在线阅读,更多相关《2022年Flash新手入门教程:AS代码中duplicateMOvieClip的应用 .pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、AS2 代码中 duplicateMOvieClip 的应用duplicateMovieClip在 AS2.0 起复制影片剪辑作用.通过对这个函数的灵活应用,可以制作出很多特效来 .诸如鼠标跟随,火焰 ,什么变换的彩色线条,下雨下雪效果, 烟花等等 .通常的做法是先创建一个影片剪辑元件 ,放到舞台上 ,然后编写代码 ,使影片剪辑不可见,通过一个无限的循环不停地复制影片剪辑元件 ,并设置复制出来的影片剪辑元件的各种属性.一般是 :x、Y 坐标 ,透明度 ,大小 ,旋转 ,颜色等属性 .通过一个变量 ,初始值设为1,每循环一次 ,即每复制一个元件,变量值增加1,当数字达到需要复制的数量时将变量重新
2、设为1.这样就利用当深度相同时新复制的元件会覆盖原来的元件的原理,使元件不断的更新,同时也使舞台上的元件始终只有一个固定的数量.根据个人的习惯不同,实现的方法也有不同,下面分别介绍一下几种方法. 一种方法是 :在主场景中插入三个关健帧.在第一帧输入 : i=1;/ 这就是上面说的,初始值为1 的变量元件名称 ._Visible=0;/ 让元件不可见在第二帧输入: duplicateMOvieClip(元件名称 ,元件名称 十 i,i); / 复制元件 ,新复制的元件名为:元件名称i, 深度为 i 新名称 =eVal(元件名称 十 i);/ 用新名称来代表新复制出来的元件名称/下面就是没置新复制
3、出来元件的各种属性新名称 ._x= ;新名称 ._Y=;新名称 ._rotation=;新名称 ._alpha= ;i+; if(i 需要的元件数量) i=1; / 当复制的数量达到需要的数量时,将变量值设为1 第三帧代码 : gotoAndPlay(2);/ 这样就形成了一个无限循环. 笫二种方法是只用一帧,代码为 : i=1; 元件名称 ._visible=O; OnEnterFrame=functiOn()/ 每一帧执行一次,这实际就形成了无限循环上面第二帧的代码 第三种方法 ,也只用一帧 ,代码为 : i=1; 元件名称 ._visible=O; function 函数名称 () 上面
4、第二帧的代码 var 任一取个变量名=setInterval( 函数名称 ,间隔的毫秒数);/每隔多少毫秒执行一次函数中的代码. 第三种方法在有时是很有用的,当你不是每一帧复制一个元件时,这种方法就特别适合. 根据上面的个绍,大家充分发挥想象,以你的聪明才智,一定能制作出非常酷眩的特效的. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - (提示: 复制元件后 , 设置其旋转属性 ) 下面介绍一下影片剪辑元件的制作方法:在元件编
5、辑面板中 , 从十字点开始向右画一条红色的直线. 在第帧插入关键帧,将线条的颜色一次为黄色,用选择工具将线条调为向上的弧形创建补间形状第20 帧插入关键帧,将线条重新调为直线,创建补间形状,在第 30 帧插入关键帧, 将线条颜色调为绿色,形状调为向下的弧形,创建补间形状第40 帧插入关键帧,将线条颜色调为蓝色,形状调为直线,创建补间形状就行了通过实例学习AS(四) 画折扇即然是纯 AS的,那么就在第一帧打开动作面板,开始写代码吧。首先的两句:import flash.geom.* import com.darronschall.DynamicRegistration; 首先引入两个类,第一个是
6、我们在后面的矩阵要用到它,第二个是一个动态改变注册点的类。import 是引入的意思,我只需记住要用到矩阵就要引入上面第一个类,要动态改变注册点就要引入第二类就行了。首先画扇梗,先分析一下,如下图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - 要画扇梗,首先要确定这四个点的坐标,先说a 点,扇子要放场景中间,那么a 点的 x就应该是在场景中心偏右一点, a 点的 y 值就应该在场景的下半部了。 为了确定 a 的坐标我们就要找
7、到场景的中心,所以接下来我这样写:var px:Number = Stage.width/2;/场景中心的 x var py:Number = Stage.height/2;/场景中心的 y var ax:Number = px+30; var ay:Number = py+100; Staege 可以理解为舞台, width 是宽度, height是高度。那么上面这句就应该理解了吧。接下来看b 点,我们在确定某点的坐标时,始终以离它最近的一点作参考,就好确定了。那么离 b 点最近的是 a 点。从图上看, b 点的 x 值比a 点稍在一点点, b 点的 y 值是扇梗下端的宽度,所以,接下来的是
8、:var bx:Number = ax+5 ; var by:Number= ay - 10; c 点:bx cx = 扇梗的长度,能明白吗?从图上看,扇梗上斜着的,也就是说c 的位置比 b的位置略高。所以:var cx = bx -250; var cy = by-100; d 点,从图上看, d 点比 c 点稍偏左,而 dy cy = 扇梗的上端宽度。所以:var dx = cx-5; var dy = cy + 18; 这中个点就确定了,实际这些点都是大概的数字,画出来后,如果图形不规则再作调整就行了。现在开始画扇梗,首先在创建一个mc :this.createEmptyMovieCli
9、p(sg,0); 这句:createEmptyMovieClip ():创建一个空的 mc ,括号中两个参数,第一个用引号引起的是 mc的名称,逗号后面是深度。有了上面一句,一个叫sg 的 mc被创建,然后我们就可以用sg 来绘扇梗了:sg.lineStyle(1,0 x6c6146,100); sg.beginFill(0 xfbf2d0,100); sg.moveTo(ax,ay); sg.lineTo(bx,by); sg.lineTo(cx,cy); sg.lineTo(dx,dy); sg.lineTo(ax,ay); sg.endFill(); 上面几句语句介绍:lineStyle
10、():确定线条的的样式,括号中个参数,分别是:粗细、颜色、透明度beginFill():开始填充,括号中个参数分别是:填充颜色、透明度moveTo(x,y) :将画笔移到括号中的x,y 坐标处lineTo(x,y):从画笔所在位置开始画一条直线到括号中的x,y 坐标处,并将画笔停留在这里。如果下面还有lineTo()那么将这里向下面的lineTo 中的 x,y 画直线。endFill():结束填充,这时将会这图形填上色。如果你画的不是一个闭合图形,那么将自动闭合填充。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理
11、- - - - - - - 第 3 页,共 11 页 - - - - - - - - - 画到现在第一条扇梗就画好了,这时应测试影片,看看画出的扇梗是否符合要求,如果不对,就调整上面各点的x,y 坐标,直到符合要求。如图:next 接下来我们来画其它的扇梗,我们采用复制旋转的方式来画其它的扇梗。但这里有个问题,用 AS画出的图形它的注册点上其左上角,用复制旋转的方法显然不行。 解决的办法,就只能是改变 mc的注册点,好在我们在网上找到一个可以动态改变注册点的类:DynamicRegistration,关于这个类的教程, 请参见我在论坛中的“动态改变注册点“的教程。打开的扇子底边并不是一条直线,
12、而是向上斜的,其夹角大概是度,我们的扇梗以度画一条,刚好可以画条,下面的代码完成了其它扇梗的绘制:for (var i = 1;i11;i+) sg.duplicateMovieClip(sg+i,i); var fzsg = eval(sg+i); / eval 将括号中的” sg”+i 变成了 sgi DynamicRegistration.initialize(fzsg); fzsg.setRegistration(ax-20, ay-14); / 将注册点改到了ax-20,ay-14的地方。fzsg._rotation2 = i*15; 现在测试影片看到的应该是这样的效果:扇梗画好了,
13、现在我们画扇面,首先还是先确定几个点的坐标:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - e 点用 d 点作参考: ex-dx = 扇面的高度;因为扇梗是倾斜的,所以e 点应比 d 点略向下一些。h 点:x 坐标应是场景中心,即hx = px ;py-hy ex-dx; f 点、g 点、i 点 f 均参考上面的方法确定。 f 、g 点的位置要注意一下,应该要把最后一根扇梗露出来,不要盖住。sma 、smb则分别在两段园弧的中
14、间。再次说明,这些点的位置并不十分准确,画好后测试景片,不对再调整,就跟鼠绘一样,你在用鼠绘画的时候也不会去精确计算,哪一笔该画到什么位置。那么有没有精确的点呢,这个当然是存在的。很多AS绘图教程都会介绍怎样去计算这些点。又是数字计算,又是几何知识,三角函数,写了一大堆,能懂的人不多。仅管这些知识都是学过的,至少我都还给老师了。所以我们不用去计算,我们用非常先进的仪器来测量这些点的位置,那就是眼睛。我们注意到,扇面中出现了弧形,而上面的lineTo 只能画直线,所以我们要用到画弧线的方法:curveTo(x ,y ,x ,y ) :这是画弧线的方法,它是从画笔所在位置画一条通过(x1,y1 )
15、到( x2,y2 )的弧线。好,现在可以画扇面了:var ex = dx +150; var ey = dy + 55; var fx = ax +60; var fy = ay - 32; var gx = fx + 158; var gy = fy - 29; var jx = dx - 15; var jy = dy - 5; var hy = ay -150; var hx =ax-10 ; var ix = ax +10; var iy = ay -260; var smax = gx - 40; var smay = gy -170; var smbx = jx+80; var s
16、mby = jy-170; this.createEmptyMovieClip(sm,11);/注意,因为扇梗将的深度占了,所以这里的深度应该是 . 赿上面的深度数字应该赿大。sm.beginFill(0 xffffff,100); sm.moveTo(ex,ey); sm.curveTo(hx,hy,fx,fy); sm.lineTo(gx,gy); sm.curveTo(smax,smay,ix,iy); sm.curveTo(smbx,smby,dx,dy); sm.lineTo(ex,ey); sm.endFill(); 画出的扇面应该如上图的样子,不对就调整。next 名师资料总结
17、- - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - 接下来,画阴影,确定如图K点的位置,然后就可以画了。var kx = ex +13; var ky = ey - 8;this.createEmptyMovieClip(yy,20);yy.beginFill(0 x000000,10);yy.moveTo(ex,ey);yy.lineTo(kx,ky);yy.lineTo(cx,cy);yy.lineTo(dx,dy);yy.lineTo(e
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年Flash新手入门教程:AS代码中duplicateMOvieClip的应用 2022 Flash 新手入门 教程 AS 代码 duplicateMOvieClip 应用
限制150内