這篇教程主要向大家講解如何利用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
{
// 小星
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; // 子彈數
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; // 反
主站蜘蛛池模板:
米奇狠狠操
|
久久精品免费
|
国产成人精品一区二区三区视频
|
日本天堂在线
|
国产精品久久久久久久久久久久
|
久久久久久久一区
|
最新黄色网址在线播放
|
一区二区三区免费看
|
亚洲区在线|
蜜桃视频一区二区三区
|
久热最新|
亚洲黄色毛片
|
成人免费在线视频观看
|
中文字幕一区二区三区在线视频
|
日韩视频在线观看
|
欧美日韩国产一区
|
欧美一区二区三区视频在线
|
日韩午夜场
|
成人精品一区二区三区中文字幕
|
成人影院av
|
色噜噜狠狠狠综合曰曰曰88av
|
一级片在线播放
|
久久涩涩
|
在线看污视频网站
|
99re在线视频|
91在线观看免费
|
国产精品视频免费
|
欧美成人一区二区三区片免费
|
亚洲一区二区在线免费观看
|
国产一区二区精品在线观看
|
亚洲人免费
|
综合二区|
精品一区二区三区不卡
|
日韩成人精品视频
|
日韩欧美一区二区视频
|
日韩中文字幕一区二区
|
精品国产乱码久久久久久闺蜜
|
国产无毛|
国产欧美精品区一区二区三区
|
午夜一区二区三区在线观看
|
久久xxx
|