国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 辦公 > Flash > 正文

Flash AS3代碼打造絢爛的星形變幻效果

2020-07-17 13:06:47
字體:
供稿:網(wǎng)友

這篇教程主要向大家講解如何利用Flash AS3代碼打造絢爛的星形變幻效果,教程并沒有對每一個代碼做出講解,但也不是很難,分享到武林網(wǎng),喜歡的朋友一起來學(xué)習(xí)吧! 


復(fù)制代碼
代碼如下:
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
 {
 // 小星
 patternList.push( new Pattern(stage.stageWidth / 2, stage.stageHeight / 2, false, 50, 0xFF5555, (270 + 72 * 0), 3 ) );
 patternList.push( new Pattern(stage.stageWidth / 2, stage.stageHeight / 2, false, 50, 0xFF5555, (270 + 72 * 1), 3 ) );
 patternList.push( new Pattern(stage.stageWidth / 2, stage.stageHeight / 2, false, 50, 0xFF5555, (270 + 72 * 2), 3 ) );
 patternList.push( new Pattern(stage.stageWidth / 2, stage.stageHeight / 2, false, 50, 0xFF5555, (270 + 72 * 3), 3 ) );
 patternList.push( new Pattern(stage.stageWidth / 2, stage.stageHeight / 2, false, 50, 0xFF5555, (270 + 72 * 4), 3 ) );
 // 大星
 patternList.push( new Pattern(stage.stageWidth/2, stage.stageHeight/2, false, 100, 0x5555FF, (270 + 72 * 0), 5 ) );
 patternList.push( new Pattern(stage.stageWidth/2, stage.stageHeight/2, false, 100, 0x5555FF, (270 + 72 * 1), 5 ) );
 patternList.push( new Pattern(stage.stageWidth/2, stage.stageHeight/2, false, 100, 0x5555FF, (270 + 72 * 2), 5 ) );
 patternList.push( new Pattern(stage.stageWidth/2, stage.stageHeight/2, false, 100, 0x5555FF, (270 + 72 * 3), 5 ) );
 patternList.push( new Pattern(stage.stageWidth/2, stage.stageHeight/2, false, 100, 0x5555FF, (270 + 72 * 4), 5 ) );
 }
 }
 }
 //////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////
 import flash.display.Sprite;
 import flash.geom.Point;
 //-----------------------------
 // 圖案類
 class Pattern {
 private var reverse:Boolean = false;
 private var starSize:Number = 150;
 private var bulletColor:uint = 0x000000;
 private var slideAngle:Number = 0;
 private var slideSpeed:Number = 0;
 private var end:Boolean = false;
 private var count:int = 0;
 private var defX:int = 0;
 private var defY:int = 0;
 private var target:Array = new Array();
 private static const PATH_OBJ_NUM:int = 20; // 子彈數(shù)
 private static const TARGET_NUM:int = 5;
 private static const TARGET_ANGLE:Array = [ 270 + 72 * 3, 270 + 72 * 1, 270 + 72 * 4, 270 + 72 * 2, 270 ]; // 通過的目標地點的角度
 private static const TARGET_ANGLE2:Array = [ 270 + 72 * 2, 270 + 72 * 4, 270 + 72 * 1, 270 + 72 * 3, 270 ]; //
 public var waitBullet:Array = new Array();
 public function Pattern(
 _gx:int = 0, _gy:int = 0,
 _rev:Boolean = false,
 _starSize:Number = 80,
 _bulletColor:uint = 0x000000,
 _slideAngle:Number = 0,
 _slideSpeed:Number = 0
 ) {
 count = 0;
 defX = _gx;
 defY = _gy;
 reverse = _rev;
 starSize = _starSize;
 bulletColor = _bulletColor;
 slideAngle = _slideAngle;
 slideSpeed = _slideSpeed;
 for ( var i:int = 0; i < 5; i++ )
 {
 var angle:Number = TARGET_ANGLE[i];
 if ( reverse ) angle = TARGET_ANGLE2[i] + 180; // 反 主站蜘蛛池模板: 玛沁县| 甘德县| 射阳县| 建昌县| 巴林左旗| 九龙城区| 隆昌县| 化德县| 咸宁市| 平湖市| 双鸭山市| 文水县| 枣强县| 阜康市| 宁明县| 政和县| 台中市| 定南县| 西华县| 达拉特旗| 政和县| 章丘市| 盐亭县| 交口县| 辽中县| 肇东市| 民乐县| 盘山县| 淮南市| 治多县| 宁南县| 亳州市| 平谷区| 织金县| 衢州市| 平度市| 应城市| 安多县| 尖扎县| 江陵县| 合川市|