征集网锐志网络淘途找素材上91
创意在线首页
平面设计交互设计CG动漫工业设计建筑环境数码影像创意搜
 首页大赛征集资讯教程画廊访谈作品集创企同盟设计招聘人才专区竞赛台专题论吧 找素材看酷站设计网址库
CG动漫首页
当前位置:首页 > CG动漫 > 资源 > 正文
Flash特效制作常用的源代码大放送
作者: 来源: 发表时间:2006-8-31 9:57:00 浏览:

代码:

以下是引用片段:

for(variin_root){

if(_root[i].onEnterFrame!=null){//如果这个Object实现了onEnterFrame接口的话

_root[i].oldFunc=_root[i].onEnterFrame;//首先保存原来的onEnterFrame的句柄

_root[i].onEnterFrame=function(){//然后开始替换了~~加上一层壳~~

trace(this+":onEnterFrameCalled.");

this.oldFunc();//我们用保留的句柄调用原来的函数

trace(this+":onEnterFrameReturned.");

}

}

}

如果要取消这些附加的操作:

代码:

以下是引用片段:

for(variin_root){

if(_root[i].oldFunc!=null){//如果发现改过得痕迹

_root[i].onEnterFrame=_root[i].oldFunc;

delete(oldFunc);

}

}

呵呵这些操作的关键在于 Flash里面的引用机制:

所有函数名都是引用,而函数本身是浮在数据的海洋里面的。如果没有任何变量引用他,他就会被回收。如果有,

他就不会被回收。所以有着样一个有趣的事情:delete函数不会删掉任何东西,除了要求删掉的那个名字:(和java

机制相似,而和C不同)

以下是引用片段:

a=function(){trace("Functionacalled");}

b=a;

delete(a);//除了a这个名字被删掉以外,没有任何事情发生

b();

函数通过this得到其调用者的实例。

MovieClipPlus.as

定义了一些简单的MC操作

//画点:由于Flash没有画点,那我们就画短线

以下是引用片段:

MovieClip.prototype.point=OxMovieClipPoint;

functionOxMovieClipPoint(x,y){

this.moveTo(x,y);

this.lineTo(x+1,y);

}

//画矩形,左上角x1,y1 右下角x2,y2, 颜色rgb, 不透明度alpha

以下是引用片段:

MovieClip.prototype.rect=OxMovieClipRect;

functionOxMovieClipRect(x1,y1,x2,y2,rgb,alpha){

this.beginFill(rgb,alpha);

this.moveTo(x1,y1);

this.lineTo(x1,y2);

this.lineTo(x2,y2);

this.lineTo(x2,y1);

this.lineTo(x1,y1);

this.endFill();

}

//画圆:这么bt的冬冬当然不是我写的,作者素JodyKeating

//圆心x,y,半径r

MovieClip.prototype.circle=OxMovieClipCircle;

functionOxMovieClipCircle(x,y,r){

vara=r*0.414213562;

varb=r*0.707106781;

this.moveTo(x+r,y);

this.curveTo(x+r,y-a,x+b,y-b);

this.curveTo(x+a,y-r,x,y-r);

this.curveTo(x-a,y-r,x-b,y-b);

this.curveTo(x-r,y-a,x-r,y);

this.curveTo(x-r,y+a,x-b,y+b);

this.curveTo(x-a,y+r,x,y+r);

this.curveTo(x+a,y+r,x+b,y+b);

this.curveTo(x+r,y+a,x+r,y);

}

两点间的直线移动

以下是引用片段:

vars=15;

_root.onMouseDown=function(){

varoldM_x=_root._xmouse;

varoldM_y=_root._ymouse;

ax=aa._x;

ay=aa._y;

dis=Math.sqrt((oldM_x-ax)*(oldM_x-ax)+(oldM_y-ay)*(oldM_y-ay));

xa=(oldM_x-ax)/dis;

ya=(oldM_y-ay)/dis;

amove();


1 2 3 
在线编辑:不不小猫
本文链接:


推荐阅读:
·2021第十五届“创意中国”设计大奖 征稿章程
·2021第七届“学院派奖”全国艺术与设计大赛征集公告
·青春唯美插画培训网络远程班正在招生
·第八届中国高等院校设计作品大赛启动
·第十二届中国高校美术作品学年展获奖名单公布
·2021第七届“学院派奖”全国艺术与设计大赛征集公告
·第六届“包豪斯奖”国际设计大赛获奖名单揭晓
免责声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息。对本文有异议,请联络本站!
转载要求:文章作者及来源信息必需保留。转载之图片、文件请不要盗链本站地址,且不准打上各自站点的水印!

近期推荐报道 返回首页更多精彩等着你!

Illustrator| 用AI创建精细矢量插图徽章Photoshop| PS经典合成张开血盆大嘴樱桃
Photoshop| Photoshop自制个性的黑色翅膀摄影佳作| 德国Thomas Wuhrer长腿女郎性
Photoshop| Photoshop制作超酷的边缘发光的荧CorelDraw| CorelDRAW制作编织效果详细教程
Illustrator| illustrator制作潮流海报字体摄影佳作| 惊艳的Francesco Marconi
Photoshop| 利用画笔及图层样式制作方格子艺术纹理背景Photoshop| Photoshop制作简单时尚的彩色放射
关于本站 | 联系方式 | 商业服务 | 合作伙伴 | 站点地图 | 免责声明 | 版权声明 | 在线投稿