影片剪辑的attachMovie方法用来附加影片剪辑。该方法不依靠舞台上现有的影片剪辑实例。而是直接将“库”中的元件添加到动画场景中。要通过attachMovie方法添加到场景中的元件必须具有链接标示符。
下面是两个实例,供大家练习和作比较:
实例一:用duplicateMovieClip方法复制五角星
第一步:创建一个影片剪辑元件star,绘制一个五角星,并拖放到舞台上,实例命名为star 。 内容来自鱼渔工作室******"http://www.022w.net"******
第二步:在主时间轴上第一帧的“动作”面板中添加如下代码:
var i = 1; //变量i用来控制动态复制出的影片剪辑的深度
star._visible = false; //将舞台中的实例设为不可见
star.onMouseDown=function() { //star.onEnterFrame=function()
star.duplicateMovieClip("star"+i, i);//当按下鼠标是复制一个实例并命名为“star”+i
with (_root["star"+i]) { //_root["star"+i]._x = _root._xmouse;
_x = _root._xmouse; //this["star"+i]._x = _root._xmouse;
_y = _root._ymouse;
}
_root["star"+i].onEnterFrame = function() { //令复制出的实例自动旋转
this._rotation += 10; 内容来自鱼渔工作室******"http://www.022w.net"******
};
i++;
}; 内容来自鱼渔工作室******"http://www.022w.net"******
第三步:测试动画,在播放窗空中单击鼠标,在鼠标指针位置处显示一个影片剪辑,继续点击获得更多。
鼠标跟随特效 鱼渔教程******"http://www.022w.net"******
新建影片剪辑,做一个小球移动(左右、上下都行),在小球移动动画的最后一帧添加AS:
this.removeMovieClip();
回到主场景,拖入上一制作的小球MC,命名实例名为qiu_mc
在时间轴上上添加AS:
i=1;//初始化变量 鱼渔课件"http://www.022w.net"
qiu_mc._visible=false;//被复制的母体MC不可见;
qiu_mc.onEnterFrame=function(){//.......... 内容来自鱼渔工作室******"http://www.022w.net"******
duplicateMovieClip(qiu_mc,"qiu_mc"+i,i);//复制MC
this["qiu_mc"+i]._x=_xmouse;//鼠标跟随
this["qiu_mc"+i]._y=_ymouse;
this["qiu_mc"+i]._rotation=random(360);//随机转动
i++;//继续复制
}
效果:http://web.cnhoo.com/wsy520/shixi/sbtx.swf
![duplicateMovieClip方法和attachMovie方法的使用 as3 attachmovie](http://img.413yy.cn/images/01111101/01011431t013a81b8826541274f.jpg)
鱼渔课件"http://www.022w.net"******
实例二:用attachMovie方法制作漫天飞舞
就在我整理实例二的过程中,看到了“动画教室”圈子里苌楚同学做了一个《电影杂色效果》,我觉得和这个我要讲的实例二的原理是一样的,不信等你学会了自己分析一下,呵呵!好了,我们开始吧!
第一步:创建一个影片剪辑元件flower,绘制一个美丽的花瓣,并添加链接标识符flower 。
第二步:在舞台上绘制一个美丽的画面作为背景。
第三步:在主时间轴上新建一个图层,并在第一帧的动作面板中添加如下代码: 022w.net******"http://www.022w.net"******
for(var i=0;i<100;i++){
_root.attachMovie("flower",i,i);
_root[i]._x=550*Math.random();
//Math类的randmom方法返回0~1之间的一个随机数 _root[i]._y=400*Math.random(); _root[i]._rotation=60*Math.random(); _root[i]._xscale=_root[i]._yscale=_root[i]._alpha=100*Math.random(); _root[i].on Enter
//Math类的randmom方法返回0~1之间的一个随机数
_root[i]._y=400*Math.random();
_root[i]._rotation=60*Math.random();
_root[i]._xscale=_root[i]._yscale=_root[i]._alpha=100*Math.random();
_root[i].onEnterFrame=function(){
this._y+=this._xscale/10; //根据_xscale设置下落速度,即大的快小的慢
this._y%=400; //超出下边界时取模使重新回到上边界
};
} 鱼渔工作室"http://www.022w.net"
第三步:测试动画,即可以看到漫天飞舞的效果了。