这篇教程主要向大家讲解如何利用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










