flash 小特效:粒子随机运动
发布时间:2020-12-15 18:41:53 所属栏目:百科 来源:网络整理
导读:? package {import flash.display.Sprite;import flash.geom.*;import flash.display.GradientType;public class Ball extends Sprite{public var speed:Number;public var angle:Number;public var rx:Number;public var ry:Number;public function Ball(){
?
package { import flash.display.Sprite; import flash.geom.*; import flash.display.GradientType; public class Ball extends Sprite { public var speed:Number; public var angle:Number; public var rx:Number; public var ry:Number; public function Ball() { this.graphics.beginFill(0xffffff); this.graphics.drawCircle(0,1); this.graphics.endFill(); var matrix:Matrix = new Matrix(); matrix.createGradientBox(10,10,0); var colors:Array = [0xCCFF00,0xCCFF00]; var alphas:Array = [0,255]; var ratios:Array = [0,0xFF]; this.graphics.beginGradientFill(GradientType.RADIAL,colors,alphas,ratios,matrix); this.graphics.drawCircle(0,2); this.graphics.endFill(); } } } ? import flash.events.Event; import flash.display.Sprite; import flash.filters.GlowFilter; var pixSprite:Sprite=new Sprite(); addChild(pixSprite); var list:Array = []; var perAngle:Number = 2 * Math.PI / 500; for (var i:int=0; i<500; i++) { var ball:Ball=new Ball(); ball.x = Math.cos(i*perAngle) * Math.random()*100; ball.y = Math.sin(i*perAngle) * Math.random()*100; ball.angle = i * perAngle; ball.speed = 5;//Math.random() * 5 + 1; ball.rx = Math.random() * 100; ball.ry = Math.random() * 100; ball.z=Math.random()*80; ball.filters=[new GlowFilter(0xffffff)] pixSprite.addChild(ball); list.push(ball); } pixSprite.x=(stage.stageWidth-pixSprite.width)*0.7; pixSprite.y=(stage.stageHeight-pixSprite.height); addEventListener(Event.ENTER_FRAME,onRun); function onRun(event:Event):void { var len:int = list.length; for (var i:int=0; i<list.length; i++) { var ball:Ball = list[i] as Ball; if (ball) { ball.x = Math.cos(ball.angle + ball.speed * Math.PI / 180) * (ball.rx ); ball.y = Math.sin(ball.angle + ball.speed * Math.PI / 180) * (ball.ry ); ball.speed += 2; ball.scaleX = ball.scaleY=Math.random(); ball.alpha -= 0.01; if (ball.alpha <= 0) { if (pixSprite.contains(ball)) { pixSprite.removeChild(ball); ball = null; } list.splice(i,1); } } } if (list.length == 0) { removeEventListener(Event.ENTER_FRAME,onRun); } }
??? ??? 它的基本思路:先对粒子进行一个随机分布,让它出现在预设的位置上,然后产生圆周运动。在运动过程当中,加入随机的想法。在这里,我想告诉大家,这种随机可以创造出很多意想不到的效果。加入的随机,可以对坐标随机,深度随机,透明度随机,大小随机,颜色随机,等等这些都可以加入去。在实验过程当中,多尝试这些组合就可以变化出很多效果。 ???? ? ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |