In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

インベーダー「圧倒的じゃないか、我が軍は」

十字キーでUFO(旗艦)を操作、インベーダー編隊がうじゃうじゃ追従します
使ってない変数とか保留したスクリプトが残っていたりしますがご了承ください
ようわからん。
Press key "LEFT","RIGHT","UP" and "DOWN" and "z"
auther maxcaffy
// forked from maxcaffy's インベーダーうじゃうじゃ

//十字キーでUFO(旗艦)を操作、インベーダー編隊がうじゃうじゃ追従します
//使ってない変数とか保留したスクリプトが残っていたりしますがご了承ください
//ようわからん。
//Press key "LEFT","RIGHT","UP" and "DOWN" and "z"
//auther maxcaffy

package {
    import flash.display.Sprite;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.text.TextField;
    import flash.display.MovieClip;
    import flash.ui.Keyboard;
    import flash.events.KeyboardEvent;
    import flash.accessibility.Accessibility;
    import flash.events.Event;
    import flash.text.TextFormat;
    import flash.text.*;
    
    [SWF(width="465", height="465", frameRate="30", backgroundColor="0x000000")]
    public class TestingNow extends Sprite 
    {
    		private var i:int = 0;	//汎用繰り返し数
    		private var k:int = 0;	//同上
    		
    		private var flag_l:Boolean = false;	//キーボード押しっぱなしフラグ
    		private var flag_r:Boolean = false;	//同上
    		private var flag_u:Boolean = false;	//同上
    		private var flag_d:Boolean = false;	//同上
    		private var flag_Z:Boolean = false;
    		
    		private var flag_shot:Boolean = false;//ショット連射防止フラグ
    		public var flag_c_live:Boolean = true;//cannonの生存フラグ
    		private var timer:int = 0;			//タイマーカウント

    		private var dx:Number = 0;		//x加速度
    		private var dy:Number = 0;		//y加速度
    		private var dmax:Number = 10;	//最大速度
    		private var dx_c:Number = 0;		//砲台x加速度
    		private var dy_c:Number = 0;		//砲台y加速度
    		
    		private var txf_trace:TextField = new TextField();	//トレース用のテキストフィールド(スコアになった)
    		private var txf_messe:TextField = new TextField();
    		private var txf_voice:TextField = new TextField();
    		private var txf_voice_f:TextFormat = new TextFormat();
    		private var txf_messe_f:TextFormat = new TextFormat();
    		private var color_enem:uint = 0xFF000000;

    		private var ar_e:Array = new Array();//敵用の配列
    		public var cann:Cann;
    		private var ufo:Ufo;
    		private var beam:Beam;
    		private var dest:Dest;
    		private var ar_b:Array = new Array();//敵弾
    		
        public function TestingNow() {
            initFunc();
            initAdd();
            
            
        }
        
        private function initFunc():void{
        		
        		//テキスト関係
			txf_trace.textColor = 0xFFFFFF;
            txf_trace.text = "score:0";
            txf_trace.width = 500;
            addChild(txf_trace);
            Global.txf_trace = txf_trace;
            
            txf_voice.textColor = 0xFFFFFF;
            txf_voice.text = "< 矢印キーで移動、zでビーム撃つよ!";
            txf_voice.width = 500;
            txf_voice_f.align = TextFormatAlign.RIGHT;
            txf_voice.defaultTextFormat=txf_voice_f;
            txf_voice.x =stage.stageWidth - txf_voice.textWidth;
            addChild(txf_voice);
            Global.txf_voice = txf_voice;
            
            txf_messe.textColor = 0xFFFFFF;
            txf_messe.text = "";
            txf_messe.width = 500;
            txf_messe_f.size = 50;
            txf_messe_f.align = TextFormatAlign.CENTER;
            txf_messe.defaultTextFormat=txf_messe_f;
            txf_messe.x = stage.stageWidth/2 - txf_messe.width/2;
            txf_messe.y = stage.stageHeight/2 - txf_messe.height/2 + 100;
            addChild(txf_messe);
            Global.txf_messe = txf_messe;
            
        		//旗艦召喚、配置 
        		ufo = new Ufo(0xFFFFFFFF);
        		addChild(ufo);
        		ufo.x = (stage.stageWidth - ufo.width)/2;
        		ufo.y = 7;
        		        		
        		//インベーダー召喚、配置
        		var temp1:int = 0;
        		var temp2:int = -10;
        		var widthnum:int = 32;
        		var widthoffset:int = (stage.stageWidth - widthnum * (10 + 1))/2;
        		var heightoffset:int = 20;

        		for(i=0;i<512;i++){
        			ar_e[i] = [new Inve(0xFFFFFFFF),0,0,0,0,0];
        				//ムービークリップ、初期x座標,、初期y座標,加速度dx,加速度dy
        			addChild(ar_e[i][0]);
        			temp1 += ar_e[i][0].width + 1;
        			if(i%widthnum==0){
        				temp1 = 0;
        				temp2 += ar_e[i][0].height+1;
        			}
        			ar_e[i][0].x = temp1 + widthoffset;
        			ar_e[i][0].y = temp2 + heightoffset;
        			ar_e[i][1] = ar_e[i][0].x;	//初期座標
        			ar_e[i][2] = ar_e[i][0].y;	//初期座標
    				ar_e[i][3] = 0;			//各々の加速度
        			ar_e[i][4] = 0;
        			ar_e[i][5] = 0.6 + Math.random()*0.4;	//追従速度(個性) 
        		}
        		
        		//凸召喚、配置
        		cann = new Cann(0xFFFFFFFF);	//凸は一個でいいや。
        		stage.addChild(cann);
        		cann.x = (stage.stageWidth + cann.width)/2;
        		cann.y = stage.stageHeight -20;	//下からオフセット20の地点に停滞させる

        		//敵弾召喚
        		for(i=0;i<512;i++){
        			ar_b[i] = [new Beam(0xFFFFFFFF)];	//ビーム定義と発射オーライフラグ
        		}        		
        }
        
        private function initAdd():void{
        		stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownFunc);	
        		stage.addEventListener(KeyboardEvent.KEY_UP,keyUpFunc);
        		stage.addEventListener(Event.ENTER_FRAME,enterFunc);
        }
        	
        	private function keyDownFunc(event:KeyboardEvent):void{
        		switch(event.keyCode){       				
        			case Keyboard.LEFT:
        			flag_l = true;
        			break;
        			case Keyboard.RIGHT:
        			flag_r = true;
        			break;
        			case Keyboard.UP:
        			flag_u = true;
        			break;
        			case Keyboard.DOWN:
        			flag_d = true;
        			break;
        			case 90://Z
        			flag_Z = true;
        			break;
        		}
        	}
        	
        	private function keyUpFunc(event:KeyboardEvent):void{
        		Global.txf_voice.text = "\かもすぞオラァァァァ!/";
        		Global.txf_voice.x =stage.stageWidth - Global.txf_voice.width;
        		switch(event.keyCode){				
        			case Keyboard.LEFT:
        			flag_l = false;
        			break;
        			case Keyboard.RIGHT:
        			flag_r = false;
        			break;
        			case Keyboard.UP:
        			flag_u = false;
        			break;
        			case Keyboard.DOWN:
        			flag_d = false;
        			break;				
        			case 90://Z
        			Global.txf_voice.text = "\死ねええ!!!!!/";
        			flag_Z = false;
        			break;
        		}
        	}
        	
        	private function enemMove():void{
        		
			timer++;
        		if(timer>30){
        			
        			for(i=0;i<512;i++){
	        			ar_e[i][0].inveAnim();
        			}
        			timer = 0;
        		}
        		for(i=0;i<512;i++){
        			ar_e[i][1] += dx;	//目標地点は初期座標+UFOの速度(UFOの次の地点)
        			ar_e[i][2] += dy;	//
        			ar_e[i][3] *= 0.95;	//速度の減衰
        			ar_e[i][4] *= 0.95;	//
        			//ar_e[i][0].x += (ar_e[i][1] - ar_e[i][0].x)/ar_e[i][5];//精密追従タイプ
        			//ar_e[i][0].y += (ar_e[i][2] - ar_e[i][0].y)/ar_e[i][5];
        			ar_e[i][0].x += ar_e[i][3];	//各々の座標に各々の速度を足す
        			ar_e[i][0].y += ar_e[i][4];
        			if(ar_e[i][0].x < ar_e[i][1]){	//もし目標地点より小さい値だったら
        				ar_e[i][3] += ar_e[i][5];	//速度に加速度を足し込む(ar_e[i][5]はインベーダ生成時に設定したランダム値)
        			}else if(ar_e[i][0].x > ar_e[i][1]){
        				ar_e[i][3] -= ar_e[i][5];
        			}
        			if(ar_e[i][0].y < ar_e[i][2]){
        				ar_e[i][4] += ar_e[i][5];
        			}else if(ar_e[i][0].y > ar_e[i][2]){
        				ar_e[i][4] -= ar_e[i][5];
        			}
        			
        		}
        		
        		ufo.x += dx;
        		ufo.y += dy;
        		
        		//空気摩擦
        		dx *= 0.95;
        		dy *= 0.95;
        		//操作系
        		if(Math.abs(dx)+Math.abs(dy) < dmax){
	        		if(flag_l){
	        			dx -= 1;
	        		}if(flag_r){
	        			dx += 1;
	        		}if(flag_u){
	        			dy -= 1;
	        		}if(flag_d){
	        			dy += 1;
	        		}
        		}if(flag_Z){
        			if(flag_shot==false){
        				for(i=0;i<512;i++){
        					if(ar_b[i][0].flag_reload){//リロードがすんだ状態
        						ar_b[i][0].flag_reload = false;
        						ar_b[i][0].flag_sta = 0;
        						addChild(ar_b[i][0]);
        						ar_b[i][0].x = ar_e[i][0].x + (ar_e[i][0].width - ar_b[i][0].width)/2;
        						ar_b[i][0].y = ar_e[i][0].y + ar_e[i][0].height;
        					}
        				}
	        			flag_shot = true;
        			}
        		}else{
        			flag_shot = false;	
        		}
        		//行き過ぎ防止
        		/*if(ufo.x < 0){
        			ufo.x = 0;
        			dx = 0;
        		}
        		
        		if(ufo.x > stage.stageWidth - ufo.width){
        			ufo.x = stage.stageWidth - ufo.width;
        			dx = 0;
        		}
        		if(ufo.y < 0){
        			ufo.y = 0;
        			dy = 0;
        		}
        		if(ufo.y > stage.stageHeight - ufo.height){
        			ufo.y = stage.stageHeight - ufo.height;
        			dy = 0;
        		}*/
        	}
       
        	private function cannonMove():void{
			cann.cannonAct();
        	}
        
        private function beamMove():void{
	        	for(i=0;i<512;i++){
       			ar_b[i][0].beamAct(5);
	        	}
        }
        
        	private function enterFunc(event:Event):void{
        		enemMove();
	        	cannonMove()
	        	beamMove();
        	}
        	private function breakFunc(event:Event):void{
	        	trace("test");	
        	}
    }
}
/*---------------------------------------------------------------------
グローバルクラス。実は一番悩んだところ。ずっと値渡しを参照渡しだと勘違いしてて、直接cann.xみたいにやってた^p^
---------------------------------------------------------------------*/
class Global
{
	public static var cann:Object;
	//public static var cann_beam:Object;
	public static var txf_trace:Object;
	public static var txf_messe:Object;
	public static var txf_voice:Object;
	public static var txf_messe_f:Object;
}

/*---------------------------------------------------------------------
凸クラス(いわゆる自機)
---------------------------------------------------------------------*/
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.display.Bitmap;
import flash.display.BitmapData;

class Cann  extends Sprite {

	private var i:int = 0;
	private var k:int = 0;
	
	private var col:uint = 0x00000000;	//カラー保存用
	private var bmd:BitmapData  = new BitmapData(10,10,true,0xFF000000);
	private var bm:Bitmap = new Bitmap(bmd);
	private var mc:MovieClip = new MovieClip()
	private var goto_spot:Number = x;
	
	private const SPD:uint = 2;
	
	public var flag_sta:int = 0;
	
	private var dest:Dest;
	//private var beam:Beam;
	
	public function Cann(c:uint):void{//色指定 、コンストラクタ
		col = c;
		Global.cann = this;
		cannonDraw(col);
		mc.addChild(bm);
		addChild(mc);
		
	}
	
	public function cannonAct():void{
		switch(flag_sta){
			case 0:
			if(x < goto_spot){
				x += SPD;
			}else{
				x -= SPD;
			}
			if(Math.abs(Math.abs(x)-Math.abs(goto_spot)) < 20){
				goto_spot = Math.random()* stage.stageWidth;
				//beam = new Beam(0xFFFFFFFF);
				//beam.x = x + 4;
				//beam.y = y;
				//addChild(beam);
			}

			break;
			case 1:
			removeChild(mc);
			dest = new Dest(0xFFFFFFFF);
			addChild(dest);
			flag_sta ++;
			break;
			case 2: 
			dest.anim();
   			if(dest.flag_end){
   				removeChild(dest);
   				dest = null;
   				flag_sta = -1;
   			}
			break;
		}
	}

   	private function cannonDraw(c:uint):void{
        for(i=0;i<10;i++){
       		for(k=0;k<10;k++){
       			bmd.setPixel(i,k,0x00000000);
       		}       			
       	}
        		//二段目
        		bmd.setPixel(3,1,c);
        		bmd.setPixel(4,1,c);
        		bmd.setPixel(5,1,c);
        		bmd.setPixel(6,1,c);
        		//三段目
        		bmd.setPixel(3,2,c);
        		bmd.setPixel(4,2,c);
        		bmd.setPixel(5,2,c);
        		bmd.setPixel(6,2,c);
        		//四段目~8段目
        		for(i=0;i<9;i++){
        		bmd.setPixel(0,3+i,c);
        		bmd.setPixel(1,3+i,c);
        		bmd.setPixel(2,3+i,c);
        		bmd.setPixel(3,3+i,c);
        		bmd.setPixel(4,3+i,c);
        		bmd.setPixel(5,3+i,c);
        		bmd.setPixel(6,3+i,c);
        		bmd.setPixel(7,3+i,c);
        		bmd.setPixel(8,3+i,c);
        		bmd.setPixel(9,3+i,c);
        		}
        	}
}

/*---------------------------------------------------------------------
インベーダークラス(ぴこぴこ動く)
---------------------------------------------------------------------*/
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.display.Bitmap;
import flash.display.BitmapData;
class Inve  extends Sprite {

	private var cnt:int = 0;	//アニメーション用
	private var i:int = 0;
	private var k:int = 0;
	private var flag_anim:Boolean = false;//アニメーション用flag
	private var col:uint = 0x00000000;	//カラー保存用
	private var bmd:BitmapData  = new BitmapData(10,10,true,0xFF000000);
	private var bm:Bitmap = new Bitmap(bmd);
	private var mc:MovieClip = new MovieClip()
	
	public function Inve(c:uint):void{//色指定 、コンストラクタ
		col = c;
		enemDraw(col);
		mc.addChild(bm);
		addChild(mc);
	}
	
	public function inveAnim():void{	//ピコピコ動かす
		if(flag_anim){
			enemDraw(col);
			flag_anim = false;
		}else{
			enemDraw2(col);
			flag_anim = true;
		}
	}
	
	private function enemDraw(c:uint):void{	//左上は(0,0)らしい??
       		//初期化
       		for(i=0;i<10;i++){
       			for(k=0;k<10;k++){
       				bmd.setPixel(i,k,0x00000000);
       			}       			
       		}
       		//零段目
        		bmd.setPixel(1,0,c);
        		bmd.setPixel(2,0,c);
        		bmd.setPixel(3,0,c);
        		bmd.setPixel(6,0,c);
        		bmd.setPixel(7,0,c);
        		bmd.setPixel(8,0,c);
        		//一段目
        		bmd.setPixel(3,1,c);
        		bmd.setPixel(6,1,c);
        		//ニ段目
        		bmd.setPixel(3,2,c);
        		bmd.setPixel(6,2,c);
        		//三段目
        		bmd.setPixel(2,3,c);
       		bmd.setPixel(3,3,c);
       		bmd.setPixel(4,3,c);
       		bmd.setPixel(5,3,c);
       		bmd.setPixel(6,3,c);
       		bmd.setPixel(7,3,c);
       		//四段目
       		bmd.setPixel(1,4,c);
       		bmd.setPixel(2,4,c);
       		bmd.setPixel(4,4,c);
       		bmd.setPixel(5,4,c);
       		bmd.setPixel(7,4,c);
       		bmd.setPixel(8,4,c);
       		//五段目
       		bmd.setPixel(0,5,c);
       		bmd.setPixel(1,5,c);
       		bmd.setPixel(2,5,c);
       		bmd.setPixel(3,5,c);
       		bmd.setPixel(4,5,c);
       		bmd.setPixel(5,5,c);
       		bmd.setPixel(6,5,c);
       		bmd.setPixel(7,5,c);
       		bmd.setPixel(8,5,c);
       		bmd.setPixel(9,5,c);
       		//六段目
       		bmd.setPixel(0,6,c);
       		bmd.setPixel(2,6,c);
       		bmd.setPixel(3,6,c);
       		bmd.setPixel(4,6,c);
       		bmd.setPixel(5,6,c);
       		bmd.setPixel(6,6,c);
       		bmd.setPixel(7,6,c);
       		bmd.setPixel(9,6,c);
       		//七段目
       		bmd.setPixel(0,7,c);
       		bmd.setPixel(2,7,c);
       		bmd.setPixel(7,7,c);
       		bmd.setPixel(9,7,c);
       		//八段目
       		bmd.setPixel(2,8,c);
       		bmd.setPixel(3,8,c);
       		bmd.setPixel(6,8,c);
       		bmd.setPixel(7,8,c);
    }
    
     private function enemDraw2(c:uint):void{	//左上は(0,0)らしい??
		//初期化
		for(i=0;i<10;i++){
		     for(k=0;k<10;k++){
		       		bmd.setPixel(i,k,0x00000000);
		     }       			
		}
		//零段目
			
		//一段目
        		bmd.setPixel(1,1,c);
        		bmd.setPixel(2,1,c);
        		bmd.setPixel(3,1,c);
        		bmd.setPixel(6,1,c);
        		bmd.setPixel(7,1,c);
        		bmd.setPixel(8,1,c);
        		//ニ段目
        		bmd.setPixel(3,2,c);
        		bmd.setPixel(6,2,c);
        		//三段目
        		bmd.setPixel(0,3,c);
        		bmd.setPixel(2,3,c);
       		bmd.setPixel(3,3,c);
       		bmd.setPixel(4,3,c);
       		bmd.setPixel(5,3,c);
       		bmd.setPixel(6,3,c);
       		bmd.setPixel(7,3,c);
        		bmd.setPixel(9,3,c);
       		//四段目
        		bmd.setPixel(0,4,c);
        		bmd.setPixel(2,4,c);
       		bmd.setPixel(4,4,c);
       		bmd.setPixel(5,4,c);
       		bmd.setPixel(7,4,c);
       		bmd.setPixel(9,4,c);
       		//五段目
       		bmd.setPixel(0,5,c);
       		bmd.setPixel(1,5,c);
       		bmd.setPixel(2,5,c);
       		bmd.setPixel(3,5,c);
       		bmd.setPixel(4,5,c);
       		bmd.setPixel(5,5,c);
       		bmd.setPixel(6,5,c);
       		bmd.setPixel(7,5,c);
       		bmd.setPixel(8,5,c);
       		bmd.setPixel(9,5,c);
       		//六段目
       		//bmd.setPixel(0,6,color_enem);
       		bmd.setPixel(1,6,c);
       		bmd.setPixel(2,6,c);
       		bmd.setPixel(3,6,c);
       		bmd.setPixel(4,6,c);
       		bmd.setPixel(5,6,c);
       		bmd.setPixel(6,6,c);
       		bmd.setPixel(7,6,c);
       		bmd.setPixel(8,6,c);
       		//七段目
       		bmd.setPixel(2,7,c);
       		bmd.setPixel(7,7,c);
       		//八段目
       		bmd.setPixel(2,8,c);
       		bmd.setPixel(3,8,c);
       		bmd.setPixel(6,8,c);
       		bmd.setPixel(7,8,c);
		 }
}

/*---------------------------------------------------------------------
UFOクラス(旗艦)
---------------------------------------------------------------------*/
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.display.Bitmap;
import flash.display.BitmapData;
class Ufo  extends Sprite {

	private var i:int = 0;
	private var k:int = 0;
	private var col:uint = 0x00000000;	//カラー保存用
	private var bmd:BitmapData  = new BitmapData(20,5,true,0xFF000000);
	private var bm:Bitmap = new Bitmap(bmd);
	private var mc:MovieClip = new MovieClip()
	
	public function Ufo(c:uint):void{//色指定 、コンストラクタ
		col = c;
		ufoDraw(col);
		mc.addChild(bm);
		addChild(mc);
	}

   	private function ufoDraw(c:uint):void{
        for(i=0;i<10;i++){
       		for(k=0;k<10;k++){
       			bmd.setPixel(i,k,0x00000000);
       		}
        }       			
       	//零段目
       	for(i=0;i<12;i++){
       		bmd.setPixel(4+i,0,c);
       	}
       	//一段目
       	for(i=0;i<14;i++){
       		bmd.setPixel(3+i,1,c)
       	}
       	//ニ段目
       	for(i=0;i<20;i++){
       		bmd.setPixel(i,2,c);
       	}
       	bmd.setPixel(5,2,0x00000000);
       	bmd.setPixel(7,2,0x00000000);
       	bmd.setPixel(9,2,0x00000000);
       	bmd.setPixel(11,2,0x00000000);
       	bmd.setPixel(13,2,0x00000000);
       	bmd.setPixel(15,2,0x00000000);
       	
       	//三段目
       	for(i=0;i<14;i++){
       		bmd.setPixel(3+i,3,c);
       	}
       	//四段目
       	for(i=0;i<12;i++){
       		bmd.setPixel(4+i,4,c);
       	}
     }
}

/*---------------------------------------------------------------------
ビームクラス(弾丸)
---------------------------------------------------------------------*/
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.Event;
//import flash.display.*;

class Beam  extends Sprite {

	private var i:int = 0;
	private var k:int = 0;
	private var spd:Number = 0;
	
	private var col:uint = 0x00000000;	//カラー保存用
	private var bmd:BitmapData  = new BitmapData(2,10,true,0xFF000000);
	private var bm:Bitmap = new Bitmap(bmd);
	private var mc:MovieClip = new MovieClip()
	private var dest:Dest;
	
	public var flag_reload:Boolean = true;//発射可能フラグ
	public var flag_sta:int = -1;//状態フラグ
	
	public function Beam(c:uint):void{//色指定、コンストラクタ
		col = c;
		beamDraw(col);
		mc.addChild(bm);
		addChild(mc);
	}

   	private function beamDraw(c:uint):void{
        for(i=0;i<10;i++){
       		for(k=0;k<10;k++){
       			bmd.setPixel(i,k,c);//全部埋める
       		}       			
       	}
    }
     
   	public function beamAct(s:Number):void{
   		
   		switch(flag_sta){
   			case 0:
   			addChild(mc);
   			flag_sta ++;
   			break;
   			
   			case 1:
   			y += s;
   			if(Global.cann.flag_sta == 0){
	   			if(y +height > Global.cann.y){
	   				if(x < Global.cann.x + 10 && x > Global.cann.x){
	   					flag_sta++;
			   			Global.cann.flag_sta ++;
			   			Global.txf_trace.text = "score:100";
			   			Global.txf_messe.text = "Clear!";
	   					break;//こんなふうにbreak使いたくないヒー
	   				}
	   			}
   			}
   			if(y + height > stage.stageHeight ){
 	  			flag_sta ++;	
 	  		}
   			break;
   			
   			case 2:
   			removeChild(mc);		//弾を表示リストから外す
   			dest = new Dest(0xFFFFFFFF);
   			addChild(dest);
   			flag_sta ++;

   			
   			break;
   			
	   		case 3:
   			dest.anim();
   			if(dest.flag_end){
   				removeChild(dest);
   				dest = null;
   				flag_sta = -1;
   				flag_reload = true;	
   			}
	   		break;
   		}
    	}
}
/*---------------------------------------------------------------------
衝突エフェクトクラス(爆発)
---------------------------------------------------------------------*/
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.Event;
class Dest extends Sprite {

	private var cnt:int = 0;	//アニメーション用
	private var i:int = 0;
	private var k:int = 0;
	private var flag_anim:Boolean = false;//アニメーション用flag
	private var col:uint = 0x00000000;	//カラー保存用
	private var bmd:BitmapData  = new BitmapData(10,10,true,0xFF000000);
	private var bm:Bitmap = new Bitmap(bmd);
	private var mc:MovieClip = new MovieClip()
	public var flag_end:Boolean = false;

	public function Dest(c:uint):void{//色指定 、コンストラクタ
		col = c;
		destDraw1(col);
		mc.addChild(bm);
		addChild(mc);
//		addEventListener(Event.ENTER_FRAME,anim);
	}
	
	public function anim():void{
		cnt++;
		if(cnt/5==1){
			destDraw2(col);	
		}else if(cnt/10==1){
			destDraw3(col);	
		}else if(cnt/15==1){
			destDraw4(col);	
		}else if(cnt/20==1){
//			removeEventListener(Event.ENTER_FRAME,anim);
			removeChild(mc);	//表示リストから消去
			flag_end = true;
		}	
	}

        private function destDraw1(c:uint):void{
        		for(i=0;i<10;i++){
       			for(k=0;k<10;k++){
       				bmd.setPixel(i,k,0x00000000);
       			}       			
       		}
        		//三段目
        		bmd.setPixel(3,3,c);
        		bmd.setPixel(6,3,c);
        		//四段目
        		bmd.setPixel(4,4,c);
        		bmd.setPixel(5,4,c);
        		//五段目
        		bmd.setPixel(4,5,c);
        		bmd.setPixel(5,5,c);
        		//六段目
        		bmd.setPixel(3,6,c);
        		bmd.setPixel(6,6,c);
        	}
        	
        	private function destDraw2(c:uint):void{
        		for(i=0;i<10;i++){
       			for(k=0;k<10;k++){
       				bmd.setPixel(i,k,0xFF000000);
       			}       			
       		}
       		//二段目
        		bmd.setPixel(4,2,c);
        		bmd.setPixel(5,2,c);
        		//四段目
        		bmd.setPixel(2,4,c);
        		bmd.setPixel(7,4,c);
        		//六段目
        		bmd.setPixel(4,6,c);
        		bmd.setPixel(5,6,c);
        	}
        	
        	private function destDraw3(c:uint):void{
        		for(i=0;i<10;i++){
       			for(k=0;k<10;k++){
       				bmd.setPixel(i,k,0xFF000000);
       			}       			
       		}
       		//零段目
        		bmd.setPixel(4,0,c);
        		bmd.setPixel(5,0,c);
       		//一段目
        		bmd.setPixel(1,1,c);
        		bmd.setPixel(8,1,c);
        		//ニ段目
        		bmd.setPixel(2,2,c);
        		bmd.setPixel(7,2,c);
        		//四段目
        		bmd.setPixel(0,4,c);
        		bmd.setPixel(4,4,c);
        		bmd.setPixel(5,4,c);
        		bmd.setPixel(9,4,c);
        		//五段目
        		bmd.setPixel(0,5,c);
        		bmd.setPixel(4,5,c);
        		bmd.setPixel(5,5,c);
        		bmd.setPixel(9,5,c);
        		//七段
        		bmd.setPixel(2,7,c);
        		bmd.setPixel(7,7,c);
        		//八段目
        		bmd.setPixel(1,8,c);
        		bmd.setPixel(8,8,c);
        		//九段目
        		bmd.setPixel(4,9,c);
        		bmd.setPixel(5,9,c);
        	}
        	
        	private function destDraw4(c:uint):void{
        		for(i=0;i<10;i++){
       			for(k=0;k<10;k++){
       				bmd.setPixel(i,k,0xFF000000);
       			}       			
       		}
       		//一段目
        		bmd.setPixel(1,1,c);
        		bmd.setPixel(8,1,c);
        		//ニ段目
        		bmd.setPixel(5,2,c);
        		//四段目
        		bmd.setPixel(2,4,c);
        		//五段目
        		bmd.setPixel(7,5,c);
        		//七段
        		bmd.setPixel(4,7,c);
        		//八段目
        		bmd.setPixel(1,8,c);
        		bmd.setPixel(8,8,c);
        	}
}