dreamlean 2008-6-9 22:09
MC连线缓动(AS2.0)
[color=#000000][font=宋体]前一阵子看闪吧教材,[/font][font=宋体, MS Song]farewell[/font][font=宋体]老师做了一个名为“[/font][font=宋体, MS Song]MC[/font][font=宋体]连线缓动演示[/font][font=宋体, MS Song](AS2.0)[/font][font=宋体]”的教材,特受启发,自己也做了一个,跟老师唯一不一样的地方是缓动效果用的是内置类,效果见下:[/font][/color]
[font=宋体, MS Song][color=#000000][attach]346174[/attach][/color][/font]
[font=宋体][color=#000000]其实做这个缓动跟老师的方法很一样,核心就在缓动的形成。下面一步一步的教大家制作:[/color][/font]
[color=#000000][font=Calibri][font=宋体, MS Song]1.[/font]
[/font][font=宋体]制作一个[/font][font=宋体, MS Song]MC[/font][font=宋体],在[/font][font=宋体, MS Song]MC[/font][font=宋体]里画一个背景,新建图层,加入一个动态文本,命名为”[/font][font=宋体, MS Song]my_txt[/font][font=宋体]”,将[/font][font=宋体, MS Song]MC[/font][font=宋体]保存,命名为”[/font][font=宋体, MS Song]mc[/font][font=宋体]”,下面是制作时的截图:[/font][/color]
[align=center][font=宋体, MS Song][color=#000000][attach]346175[/attach] [/color][/font][/align]
[color=#000000][font=Calibri][font=宋体, MS Song]2.[/font]
[/font][font=宋体]在库面板中右击鼠标,选择“链接”,将”[/font][font=宋体, MS Song]mc[/font][font=宋体]”链接为共享导出,截图如下:[/font][/color]
[align=center][font=宋体, MS Song][color=#000000][attach]346176[/attach] [/color][/font][/align]
[color=#000000][font=Calibri][font=宋体, MS Song]3.[/font]
[/font][font=宋体]在主时间轴上书写代码:[/font][/color]
[font=宋体, MS Song][color=#000000][/color][/font]
[font=宋体, MS Song][color=#00b0f0]var con:Array = new Array("MM", "Flash", "8.0", "Adobe", "Flash", "CS3.0", "Dream", "Lean", "Studio", "Made");[/color][color=red]//[/color][/font][color=red][font=宋体]定义填入”[/font][/color][color=red][font=宋体, MS Song]my_txt[/font][/color][color=red][font=宋体]”中的文字[/font][/color][color=red][/color]
[color=#00b0f0][font=宋体, MS Song]for (i=1; i<=10; i++) {[/font][/color]
[font=宋体, MS Song][color=#00b0f0]
_root.attachMovie("mc", "mc"+i, _root.getNextHighestDepth());[/color][color=red]//[/color][/font][color=red][font=宋体]采用附加的方式创建十个[/font][/color][color=red][font=宋体, MS Song]MC[/font][/color]
[font=宋体, MS Song][color=#00b0f0]
_root["mc"+i]._x = 50*i;[/color][color=red]//[/color][/font][color=red][font=宋体]十个[/font][/color][color=red][font=宋体, MS Song]MC[/font][/color][color=red][font=宋体]的水平位置是固定间距[/font][/color][color=red][/color]
[font=宋体, MS Song][color=#00b0f0]
_root["mc"+i]._y = 30+Math.random()*340;[/color][color=red] //[/color][/font][color=red][font=宋体]十个[/font][/color][color=red][font=宋体, MS Song]MC[/font][/color][color=red][font=宋体]的垂直位置是随机的[/font][/color][color=#00b0f0][/color]
[font=宋体, MS Song][color=#00b0f0]
_root["mc"+i].my_txt.text = con[i-1];[/color][color=red]//[/color][/font][color=red][font=宋体]填入文字[/font][/color][color=red][/color]
[font=宋体, MS Song][color=#00b0f0]
_root["mc"+i].onPress = function() {[/color][color=red]//[/color][/font][color=red][font=宋体]定义按下时的事件[/font][/color][color=red][/color]
[font=宋体, MS Song][color=#00b0f0]
m = false;[/color][color=red]//[/color][/font][color=red][font=宋体]定义这个[/font][/color][color=red][font=宋体, MS Song]m[/font][/color][color=red][font=宋体]是为了防止拖动时纪录位置被改变[/font][/color][color=red][/color]
[font=宋体, MS Song][color=#00b0f0]
my_x = this._x;[/color][color=red]//[/color][/font][color=red][font=宋体]纪录原来的位置[/font][/color][color=red][/color]
[color=#00b0f0][font=宋体, MS Song]
my_y = this._y;[/font][/color]
[font=宋体, MS Song][color=#00b0f0]
this.startDrag(false);[/color][color=red]//[/color][/font][color=red][font=宋体]开始拖动,不选择鼠标位于[/font][/color][color=red][font=宋体, MS Song]MC[/font][/color][color=red][font=宋体]中心[/font][/color][color=red][/color]
[color=#00b0f0][font=宋体, MS Song]
};[/font][/color]
[font=宋体, MS Song][color=#00b0f0]
_root["mc"+i].onRelease = function() {[/color][color=red]//[/color][/font][color=red][font=宋体]定义松开事件[/font][/color][color=red][/color]
[font=宋体, MS Song][color=#00b0f0]
this.stopDrag();[/color][color=red]//[/color][/font][color=red][font=宋体]停止鼠标拖动[/font][/color][color=red][/color]
[font=宋体, MS Song][color=#00b0f0]
m = true;[/color][color=red]//[/color][/font][color=red][font=宋体]现在可以缓动了[/font][/color][color=red][/color]
[font=宋体, MS Song][color=#00b0f0]
if (m) {[/color][color=red]//[/color][/font][color=red][font=宋体]关于下面几行,我用图片说明他们的意义[/font][/color][color=red][/color]
[color=#00b0f0][font=宋体, MS Song]
import mx.transitions.Tween;[/font][/color]
[color=#00b0f0][font=宋体, MS Song]
import mx.transitions.easing.*;[/font][/color]
[color=#00b0f0][font=宋体, MS Song]
new Tween(this, "_x", Elastic.easeOut, this._x, my_x, 2, true);[/font][/color]
[color=#00b0f0][font=宋体, MS Song]
new Tween(this, "_y", Elastic.easeOut, this._y, my_y, 2, true);[/font][/color]
[color=#00b0f0][font=宋体, MS Song]
}[/font][/color]
[color=#00b0f0][font=宋体, MS Song]
};[/font][/color]
[font=宋体, MS Song][color=#00b0f0]
_root["mc"+i].onReleaseOutside = function() {[/color][color=red]//[/color][/font][color=red][font=宋体]为防止鼠标拖动到外面时也有效[/font][/color][color=red][font=宋体, MS Song]~[/font][/color]
[color=#00b0f0][font=宋体, MS Song]
this.stopDrag();[/font][/color]
[color=#00b0f0][font=宋体, MS Song]
m = true;[/font][/color]
[color=#00b0f0][font=宋体, MS Song]
if (m) {[/font][/color]
[color=#00b0f0][font=宋体, MS Song]
new Tween(this, "_x", Elastic.easeOut, this._x, my_x, 2, true);[/font][/color]
[color=#00b0f0][font=宋体, MS Song]
new Tween(this, "_y", Elastic.easeOut, this._y, my_y, 2, true);[/font][/color]
[color=#00b0f0][font=宋体, MS Song]
}[/font][/color]
[color=#00b0f0][font=宋体, MS Song]
};[/font][/color]
[color=#00b0f0][font=宋体, MS Song]}[/font][/color]
[font=宋体, MS Song][color=#00b0f0]_root.createEmptyMovieClip("line", -1);[/color][color=red]//[/color][/font][color=red][font=宋体]定义画线的[/font][/color][color=red][font=宋体, MS Song]MC[/font][/color]
[font=宋体, MS Song][color=#00b0f0]_root.line.onEnterFrame = function() {[/color][color=red]//[/color][/font][color=red][font=宋体]画线是[/font][/color][color=red][font=宋体, MS Song]MC[/font][/color][color=red][font=宋体]的帧事件,所以事先把帧频调高一点,我的是[/font][/color][color=red][font=宋体, MS Song]35fps[/font][/color]
[font=宋体, MS Song][color=#00b0f0]
this.clear();[/color][color=red]//[/color][/font][color=red][font=宋体]清除前面的内容[/font][/color][color=red][/color]
[font=宋体, MS Song][color=#00b0f0]
this.lineStyle(1, 0xFFFFFF, 100);[/color][color=red]//[/color][/font][color=red][font=宋体]设置线条的粗细、颜色和不透明度[/font][/color][color=red][/color]
[font=宋体, MS Song][color=#00b0f0]
this.moveTo(_root["mc1"]._x, _root["mc1"]._y);[/color][color=red]//[/color][/font][color=red][font=宋体]先将[/font][/color][color=red][font=宋体, MS Song]line[/font][/color][color=red][font=宋体]的画线起始点放在[/font][/color][color=red][font=宋体, MS Song]mc1[/font][/color][color=red][font=宋体]的中心[/font][/color][color=red][/color]
[font=宋体, MS Song][color=#00b0f0]
for (var j = 2; j<=10; j++) {[/color][color=red]//[/color][/font][color=red][font=宋体]绘制线条[/font][/color][color=red][/color]
[color=#00b0f0][font=宋体, MS Song]
this.lineTo(_root["mc"+j]._x, _root["mc"+j]._y);[/font][/color]
[color=#00b0f0][font=宋体, MS Song]
}[/font][/color]
[color=#00b0f0][font=宋体, MS Song]};[/font][/color]
[color=#00b0f0][font=宋体]下面是缓动类使用的注释:[/font][/color]
[color=#00b0f0][font=宋体][attach]346177[/attach][/font][/color]
[color=#00b0f0][font=宋体][/font][/color]
[color=#00b0f0][font=宋体]源文件:[attach]346178[/attach][/font][/color]
dreamlean 2008-6-27 22:24
怎么没人看呀?自己顶下吧!(*^__^*) 嘻嘻……:)