每天学一点flash(70)应景写个360 VsQQ

本文介绍了一个使用ActionScript实现的动画效果,该效果通过粒子系统模拟了“360vsQQ”的文字战斗场景。文章提供了完整的源代码,并详细解释了如何创建文本、扫描像素以及粒子的移动过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

应景写个无聊的东西,说实在两个公司打架,极度无聊。工作起来经常打架真不方便,今晚连QQ都退了几次。

小马哥,伟哥 别打架了。老是斗来都去,加起来都60多岁。你不脸红 我们都脸红。有事打官司解决吧!

不想多说!无聊家伙!

 看效果。

 package { import flash.display.Sprite; import flash.display.Bitmap; import flash.display.*; import flash.display.BitmapData; import flash.events.*; import flash.text.*; import flash.geom.*; import flash.filters.*; import com.greensock.TweenMax; import com.greensock.easing.*; public class Main extends Sprite { private var str:String="360 vs QQ"; private var arrayList:Array=[];//保存粒子 private var contain:Sprite=new Sprite();//容器 private var key:Boolean=false; public function Main() { init(); } private function init():void { addChild(contain); contain.y=100; //创建文本 var txt:TextField=new TextField(); txt.defaultTextFormat=new TextFormat("Arail",25,0xffff00); txt.autoSize=TextFieldAutoSize.LEFT; txt.text=str; addChild(txt); txt.x=10; txt.y=10; var bmpdata:BitmapData=new BitmapData(txt.width,txt.height,false,0x0);//创建位图复制文本 bmpdata.draw(txt); //扫描像素 for (var i:int=0; i<bmpdata.width; i++) { for (var j:int=0; j<bmpdata.height; j++) { var color:uint=bmpdata.getPixel(i,j); var red:uint=(color>>16 )&0xff; if (red>0) { var px:Number=j*5; var py:Number=i*5; var qq:QQ=new QQ(); qq.x=Math.random()*550; qq.y=Math.random()*400; qq.filters=[new GlowFilter(),new BlurFilter(1,1)]; var p:Particle=new Particle(); p.x=px; p.y=py; p.obj=qq; contain.addChild(qq); arrayList.push(p); } } } render(); stage.addEventListener(MouseEvent.CLICK,onClickHandler); } //渲染效果 private function render( ):void { for (var i:int=0; i<arrayList.length; i++) { TweenMax.to(arrayList[i].obj,Math.random()*2+1,{x:arrayList[i].y,y:arrayList[i].x}); } } //随机移动 private function randomMove():void { for (var i:int=0; i<arrayList.length; i++) { TweenMax.to(arrayList[i].obj,Math.random()*2+1,{x:Math.random()*550,y:Math.random()*400}); } } private function onClickHandler(event:MouseEvent):void { if (!key) { key=true; randomMove(); } else { key=false; render(); } } } } //简单的粒子模型 internal class Particle { public var x:Number; public var y:Number; public var radius:Number=0;//半径 public var color:uint;//颜色 public var obj:*; public var angle:Number; public function Particle() { } } import flash.display.Sprite; import flash.text.*; internal class QQ extends Sprite { public function QQ() { var txt:TextField=new TextField(); txt.defaultTextFormat=new TextFormat("Arail",10,0xffff00); txt.autoSize=TextFieldAutoSize.LEFT; txt.text="QQ"; txt.x=-txt.width/2; txt.y=-txt.height/2; txt.selectable=false; addChild(txt); } //设置坐标 public function move(x:Number,y:Number):void { this.x=x; this.y=y; } }

转载于:https://www.cnblogs.com/guoyiqi/archive/2010/11/03/2069005.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值