仓酷云
标题:
来谈谈:Flash AS3实例教程:制造火苗动画-Flash actionscript
[打印本页]
作者:
冷月葬花魂
时间:
2015-1-15 20:48
标题:
来谈谈:Flash AS3实例教程:制造火苗动画-Flash actionscript
FlashScreensaversMaker能够迅速的将您的Flash作品转化为屏保程序。
poluoluo中心提醒:本次例子没能做到削减体系资本的才能.刚做完这个效果今后.也查找了一些粒子方面的材料.看到了良多高人写的粒子可使用上千个粒子却不占用更多的体系资本,高人.可是,假如能把那算法发布我会更感激你.
这个例子做了有段工夫了.可是也跟当时候发的AS2的纯代码火效果是一样的,也是残次品.
本次例子没能做到削减体系资本的才能.刚做完这个效果今后.也查找了一些粒子方面的材料.看到了良多高人写的粒子可使用上千个粒子却不占用更多的体系资本,高人.可是,假如能把那算法发布我会更感激你.
实在,FLASHAS的作品不过具有两点就能够.
1.对AS函数的懂得.
2.肯专研的精力.
FLASH天下里没有做不到的器材.只要你想不到.你不想做的器材.此次的代码收回来.十分但愿有更多的伴侣往完美.共享精力的目标就是这个.配合前进.一团体的勉力只能范围在本人的天下里.当把一切人的勉力会萃起来的时分才是FLASH昌盛时代.这就是为何多年前的AS程序员各各都刁悍的缘故原由.当时候的FLASH8仍是很热烈的.
但愿这个帖子能让更多的伴侣宣布本人的意见.我今后要回到FLASH天下,但愿更多的伴侣能帮我.接待FLASH喜好者加我QQ配合发展
空话不说了.拿出器材.
本次程序同进门级下雪效果一样,利用了2个AS文件和一个FLA文件,两个AS文件分离是mack_fire.as火花粒子制造文件,fire.as火花挪动把持文件,和fire.fla场景文件.
代码以下:
mack_fire.as:
/***************AntQQ:305033389******************/
/*************请撑持原创,请开源代码****************/
/**********请让更多的AS喜好者有材料进修*************/
/********本作品是我进修作品,并不是完美作品***********/
package{
importflash.geom.Matrix;//色彩突变类库倒进
importflash.display.Sprite;//Sprite类是基础显现列表机关块
importflash.display.GradientType;//Graphics类包括一组可用来创立矢量外形的办法
publicclassmack_fireextendsSprite{//本类为火花本相类
privatevarfire:Sprite;
varmyMatrix:Matrix;
publicfunctionmack_fire(){
fire=newSprite();//初始化一个影片剪辑
myMatrix=newMatrix();//必要用到的FLASH自带类,在这里这个类的感化是制造火花粒子的色彩突变效果
varboxWidth:int=16;//火花粒子色彩突变宽高设置,上面是高度
varboxHeight:int=16;
varboxRotation:uint=Math.PI/2;//色彩突变利用的变量
vartx:int=0;//影片剪辑的初试坐标
varty:int=0;
myMatrix.createGradientBox(boxWidth,boxHeight,boxRotation,tx,ty);//上面入手下手是色彩付值部分,具体请查阅createGradientBox的详细用法
vartype:String=GradientType.RADIAL;
varmyColors:Array=[0xFFFF00,0xFFFF00];//色彩突变,红色到红色
varmyAlphaS:Array=[1,0];//通明度从,通明到不通明
varmyRalphaS:Array=[0,255];
varspreadMethod:String="pad";
varinterp:String="rgb";
varfocalPtRatio:Number=0;
fire.graphics.beginGradientFill(type,myColors,myAlphaS,myRalphaS,myMatrix,spreadMethod,interp,focalPtRatio);//这里请参考手册中关于beginGradientFill来了解
fire.graphics.drawCircle(8,8,8);//制造一个圆形,半径和中央点坐标,详细能够参考drawCircle
addChild(fire);
}
}
}
fire.as:
/***************AntQQ:305033389******************/
/*************请撑持原创,请开源代码****************/
/**********请让更多的AS喜好者有材料进修*************/
/********本作品是我进修作品,并不是完美作品***********/
package{
importflash.display.MovieClip;
importflash.events.EventDispatcher;
importflash.events.Event;
importflash.display.BlendMode;
importflash.filters.GlowFilter;
importflash.geom.ColorTransform;
publicclassfireextendsMovieClip{
privatevarfires:mack_fire;
privateconstmaxBalls:int=60;//火花数目
privateconstMc_x:int=stage.stageHeight/2;//起火入手下手X坐标
privateconstMc_y:int=stage.stageHeight/2;//+stage.stageHeight/4;//起火入手下手Y坐标
privateconstMc_more:int=1;//极点,挪动和通明度的极点,1为完整不通明或没有缩放比例,AS3中以1做为极点,AS2中是100
privateconstMcY:int=1;//向上挪动速率
privatevari=1;//记数变量
privatevarobj_scal:Array=newArray();//缩放变量保留数组
privatevarobj_fast:Array=newArray();//挪动速率变量保留数组
privatevarobj_action:Array=newArray();//横向挪动速率变动变量
privatevarobj_n:Array=newArray();//横向挪动偏向把持变量
privatevarobj_s:Array=newArray();//横向挪动速率把持变量
privatevarobj_gs:Array=newArray();
privatevarobj_g:Array=newArray();//色彩把持变量
publicfunctionfire(){
addEventListener(Event.ENTER_FRAME,fire_mv);
}
publicfunctionfire_mv(event:Event):void{
vark=Math.random();//打造随即数字,这个变量决意火花的挪动间隔,已挪动局限
varscale:Number=k?k:1;//打造一个随即数字,这个数字要小于1,年夜于0
fires=newmack_fire();//新元件创立
fires.scaleX=fires.scaleY=fires.alpha=scale;//元件的缩放和通明度设置,依据下面的随即数设置
obj_g
=100;
obj_gs
=(1-scale+.2)*3;//界说一个新的数组元素,用途在变动元件色彩
obj_fast
=Math.floor(scale*2);//纵向挪动速率主变量
obj_action
=(Math.random()>0.5)?1:-1;//纵向挪动偏向主变量
obj_scal
=1-obj_fast
/10;//关于举行中火花的缩放举行把持
obj_n
=obj_s
=1;
fires.x=Mc_x;//界说火花发生的横坐标
fires.y=Mc_y;//界说火花发生的纵坐标
fires.blendMode=BlendMode.ADD;//这部分是纯代码火花的重点,色彩叠加。让火花和火花之间看起来更油滑。没有这个部分,火的效果基本不建立
fires.name="fire"+i;//界说一个火花的名字,鄙人面经由过程getChildByName来利用。这是笨办法。记得之前有伴侣不必界说也能够利用的。
addChild(fires);
for(varn:int=1;n<maxBalls;++n){
varm=getChildByName("fire"+n);//利用下面界说的火花影片剪辑
if(m){
varcolorInfo:ColorTransform=m.transform.colorTransform;//界说色彩把持器
varxx=obj_gs[n]*2;
obj_g[n]-=Math.ceil(xx);
if(obj_g[n]<10)obj_g[n]="00";//变动色彩,这部分就是为何黄色的影片剪辑酿成白色的来由
varrgbs="0xff"+obj_g[n]+"00";//本义为字符串,这部分我是用最傻的举措来做的,其实是不懂得AS3。请妙手多引导
colorInfo.color=rgbs;
m.transform.colorTransform=colorInfo;
m.y-=1-obj_s[n]+.4;//向上挪动
m.x+=obj_fast[n]*obj_action[n]*obj_n[n]*obj_s[n];//举行横向挪动
m.scaleX+=(obj_scal[n])/20*obj_n[n]*obj_s[n];//举行横向缩放
m.scaleY+=(obj_scal[n])/20*obj_n[n]*obj_s[n];//举行纵向缩放
m.alpha+=.1*obj_n[n]*obj_s[n];//举行通明度设置
if(m.scaleX>=Mc_more){;
obj_n[n]=-1;//横向反偏向挪动
obj_s[n]=.2;//横向挪动速率减缓
};
if(m.alpha>=Mc_more){m.alpha=Mc_more;}elseif(m.alpha<=Math.random()*.1){removeChildAt(m);}//假如通明度高于大概底于指定命值,举行操纵
}
}
if(i>=maxBalls){i=0;}
++i;
}
}
}
fire.fla文件为场景文件,只需导进fire.as文件就能够了
详细办法:
在场景属性中,查找文档类,并输出fire就能够了
本次效果以下:
[media=wmv,550,400][/media]
前次有伴侣说没法运转.此次我发上打包的源文件,可是但愿更多的伴侣仍是本人下手制造.
fire源文件:fire.rar
FlashPlayer是一款能够播放小又快速的多媒体动画,以及交互式的动画、飞行标志和用macromediaflash做出的图像。
作者:
飘灵儿
时间:
2015-1-17 14:24
逐渐改变了我们生活及生活习惯的一些工具,而正是互联网的大势兴起,Flash动画越来越受到宠爱,现在,Flash动画已成为网络广告的中坚力量。
作者:
谁可相欹
时间:
2015-1-24 15:26
FLASH在网站建设过程中既然有这么多的问题,那为什么我们还继续使用FLASH,不可否认FLASH的问题的确存在,但也不可忽视FLASH在网站建设中。
作者:
柔情似水
时间:
2015-2-1 23:54
原始动画为单纯的手绘,累而且费时耗资严重,随着科技的发展应运而生了很多制作动画的软件,然而flash在各个方面的应用尤为广泛,作用最为突出,具有一定的影响力。
作者:
分手快乐
时间:
2015-2-7 18:05
各类广告形式,相信大部分网民基本都关注过,而毋庸置疑,一个画面精美,生动活泼的互动Flash动画广告,比其他广告形式更加吸引你我的眼球。这就是Flash动画的优势。
作者:
爱飞
时间:
2015-2-23 00:22
矢量图形有一些固有的限制。例如,照片由于包含太多的信息而不能使用矢量图形这 种形式。但是对于由实体颜色形状构成的图像,Flash很管用。
作者:
蒙在股里
时间:
2015-3-7 06:32
常见的富媒体广告形式有横幅广告(BANNER,旗帜广告)按钮广告(BUTTON)弹出窗口广告(pop-up ads,弹窗)浮动广告(floting ads,飘浮广告,floaters)插播式广告(Interstitial)全屏广告(full screen)
作者:
精灵巫婆
时间:
2015-3-14 17:00
各种性能才能运用的得心应手,制作出优秀的动画。
作者:
莫相离
时间:
2015-3-21 14:25
传播上的优势——无国界跨媒体;创作群体的形成;媒体及比赛的推进
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2