|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
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做出的图像。 |
|