Flash AS3代码打造绚烂的星形变幻效果

2019-10-07 22:25:17王旭

这篇教程主要向大家讲解如何利用Flash AS3代码打造绚烂的星形变幻效果,教程并没有对每一个代码做出讲解,但也不是很难,分享到易采站长站,喜欢的朋友一起来学习吧! 


复制代码package
 {
 import flash.display.Sprite;
 import flash.events.Event;
 import flash.events.MouseEvent;
 [SWF(backgroundColor = "0x000000", frameRate = "60")]
 public class Main extends Sprite
 {
 private var patternList:Array = new Array();
 private var moveBullet:Array = new Array();
 public function Main():void
 {
 if (stage) init();
 else addEventListener(Event.ADDED_TO_STAGE, init);
 }
 private function init(e:Event = null):void
 {
 removeEventListener(Event.ADDED_TO_STAGE, init);
 // entry point
 MouseDown(null);
 addEventListener(Event.ENTER_FRAME, EnterFrame );
 stage.addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);
 }
 private function EnterFrame(event:Event):void
 {
 var i:int = 0;
 for ( i = 0; i < patternList.length; i++ )
 {
 var bullet:Bullet = patternList[i].Run();
 if ( bullet != null )
 {
 addChild( bullet );
 }
 }
 for ( i = patternList.length - 1; i >= 0; i-- )
 {
 if ( patternList[i].isEnd() )
 {
 // 从待命到移动
 for ( var j:int = 0; j < patternList[i].waitBullet.length; j++ )
 {
 patternList[i].waitBullet[j].StartSlide();
 moveBullet.push( patternList[i].waitBullet[j] );
 }
 patternList.splice( i, 1 );
 }
 }
 // 移动
 if ( moveBullet.length > 0 )
 {
 for ( i = moveBullet.length - 1; i >= 0; i-- )
 {
 //
 if ( moveBullet[i].slideFlag )
 {
 moveBullet[i]._xx += Math.cos( moveBullet[i].slideAngle * Math.PI / 180 ) * moveBullet[i].slideSpeed;
 moveBullet[i]._xy += Math.sin( moveBullet[i].slideAngle * Math.PI / 180 ) * moveBullet[i].slideSpeed;
 moveBullet[i].x = moveBullet[i]._xx;
 moveBullet[i].y = moveBullet[i]._xy;
 if ( moveBullet[i].slideSpeed > 0 )
 {
 moveBullet[i].slideSpeed -= moveBullet[i].slideSpeedMax / 50;
 if ( moveBullet[i].slideSpeed < 0 ) moveBullet[i].slideFlag = false;
 }
 }else
 {
 moveBullet[i]._xx += Math.cos( moveBullet[i].moveAngle * Math.PI / 180 ) * 1;
 moveBullet[i]._xy += Math.sin( moveBullet[i].moveAngle * Math.PI / 180 ) * 1;
 moveBullet[i].x = moveBullet[i]._xx;
 moveBullet[i].y = moveBullet[i]._xy;
 if ( moveBullet[i].x < -50 || moveBullet[i].x > stage.stageWidth + 50 || moveBullet[i].y < -50 || moveBullet[i].y > stage.stageHeight + 50 )
 {
 removeChild( moveBullet[i] );
 moveBullet.splice( i, 1 );
 }
 }
 }
 }
 }
 private function MouseDown(event:MouseEvent):void