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

Enemy

敵の画像です。1匹しかいません。
* 気力があったら、追加します。
Get Adobe Flash player
by osamX 11 Jan 2010
/**
 * Copyright osamX ( http://wonderfl.net/user/osamX )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/pImw
 */

/**
 * 敵の画像です。1匹しかいません。
 * 気力があったら、追加します。
 */
package 
{
	import flash.display.Sprite;
	import flash.events.*;
	
	[SWF(width="465", height="465", frameRate="30", backgroundColor="0x000000")]
	public class Main extends Sprite 
	{
		//こんな画像も用意しました。(全部入り)
		// http://flash-scope.com/wonderfl/WonderflQuest/shikabane/shikabaneAll.png
		private const shikabaneImgList:Array = [
			"http://flash-scope.com/wonderfl/WonderflQuest/shikabane/shikabaneF1.png",	//前向き1
			"http://flash-scope.com/wonderfl/WonderflQuest/shikabane/shikabaneF2.png",	//前向き2
			"http://flash-scope.com/wonderfl/WonderflQuest/shikabane/shikabaneB1.png",	//後ろ向き1
			"http://flash-scope.com/wonderfl/WonderflQuest/shikabane/shikabaneB2.png",	//後ろ向き2
			"http://flash-scope.com/wonderfl/WonderflQuest/shikabane/shikabaneL1.png",	//左向き1
			"http://flash-scope.com/wonderfl/WonderflQuest/shikabane/shikabaneL2.png",	//左向き2
			"http://flash-scope.com/wonderfl/WonderflQuest/shikabane/shikabaneR1.png",	//右向き1
			"http://flash-scope.com/wonderfl/WonderflQuest/shikabane/shikabaneR2.png"		//右向き2
		];
		
		private var shikabane:Party;
		
		private var keyFlags:Array = [false, false, false, false]; //下上左右のキーが押されているか
		private var frameCount:Number = 0;	//onEnterFrameで使用
		
		public function Main():void 
		{
			shikabane = new Party(shikabaneImgList);
			shikabane.scaleX = shikabane.scaleY = 3;
			shikabane.x = (465-48)/2;
			shikabane.y = (465-48)/2;
			addChild(shikabane);
			
			addEventListener(Event.ENTER_FRAME, onEnterFrame);//イベントリスナーの登録
			stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);	//イベントリスナーの登録
			stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);		//イベントリスナーの登録
		}
		
		/**-----------------------------------------------------
		 * 毎フレームの処理。
		 * ----------------------------------------------------- */
		private function onEnterFrame(event:Event):void {
			
			//15フレーム毎に処理する
			if (frameCount++ > 10) {
				frameCount = 0;
				shikabane.walk();
			}
			
			switch(true) {
				case keyFlags[0]:	//下
					shikabane.changeDirection(0);
					break;
				case keyFlags[1]:	//上
					shikabane.changeDirection(1);
					break;
				case keyFlags[2]:	//左
					shikabane.changeDirection(2);
					break;
				case keyFlags[3]:	//右
					shikabane.changeDirection(3);
					break;
			}
			
		}
		
		/**-----------------------------------------------------
		 * キーボードのキーが押された時の処理。
		 * ----------------------------------------------------- */
		private function onKeyDown(event:KeyboardEvent):void {
			switch(event.keyCode) {
				case 40: case 83:	//↓ s
					keyFlags[0] = true;
			}
			switch(event.keyCode) {
				case 38: case 87:	//↑ w
					keyFlags[1] = true;
			}
			switch(event.keyCode) {
				case 37: case 65:	//← a
					keyFlags[2] = true;
			}
			switch(event.keyCode) {
				case 39: case 68:	//→ d
					keyFlags[3] = true;
			}
		}
		
		/**-----------------------------------------------------
		 * キーボードのキーが離された時の処理。
		 * ----------------------------------------------------- */
		private function onKeyUp(event:KeyboardEvent):void {
			switch(event.keyCode) {
				case 40: case 83:	//↓ s
					keyFlags[0] = false;
			}
			switch(event.keyCode) {
				case 38: case 87:	//↑ w
					keyFlags[1] = false;
			}
			switch(event.keyCode) {
				case 37: case 65:	//← a
					keyFlags[2] = false;
			}
			switch(event.keyCode) {
				case 39: case 68:	//→ d
					keyFlags[3] = false;
			}
		}
	}
	
}

import flash.display.Sprite;
import flash.display.Loader;
import flash.net.URLRequest;
/**-----------------------------------------------------
 * 勇者クラスです。勇者を作ったり、足踏させたり、向きを変えたりします。
 * ----------------------------------------------------- */
class Party extends Sprite {
	public var direction:int = 0;		//向き (0:前 1:後 2:左 3:右)
	private var walkFlag:Boolean = true;//足踏み用
	private var yuushaImages:Array = [];//画像集
	private var ImageURL:Array;
	
	/**-----------------------------------------------------
	 * コンストラクタ。
	 * ----------------------------------------------------- */
	public function Party(imgList:Array):void {
		ImageURL = imgList;
		for (var i:uint = 0; i < 8; i++) {
			var loader:Loader = new Loader();
			loader.load(new URLRequest(ImageURL[i]));
			yuushaImages.push(loader);
			if(i) yuushaImages[i].visible = false;
			addChild(yuushaImages[i]);
		}
	}
	
	/**-----------------------------------------------------
	 * 足踏みさせます。
	 * ----------------------------------------------------- */
	public function walk():void {
		walkFlag = !walkFlag;
		for (var i:uint = 0; i < 8; i++) {
			if (i == 2*direction+int(walkFlag)) yuushaImages[i].visible = true;
			else yuushaImages[i].visible = false;
		}
	}
	
	/**-----------------------------------------------------
	 * 向きを変更します。
	 * numは向きを表します。(0~3)
	 * ----------------------------------------------------- */
	public function changeDirection(num:int):void {
		direction = num;
		for (var i:uint = 0; i < 8; i++) {
			if (i == 2*direction+int(walkFlag)) yuushaImages[i].visible = true;
			else yuushaImages[i].visible = false;
		}
	}
}