function LSouSouCharacterS(member,belong,direct,command){
	var self = this;
	base(self,LSouSouCharacter,[]);
	self.member = member;
	self.belong = belong;
	self.direction = direct;
	self.command = command;
	self.animeList = [];
	self.action = 0;
	self.actionIndex = 0;
	self.image = {};
	self.image["atk"] = new LBitmapData(LGlobal.imglist["s-view-atk"]);
	self.image["mov"] = new LBitmapData(LGlobal.imglist["s-view-mov"]);
	self.image["spc"] = new LBitmapData(LGlobal.imglist["s-view-spc"]);
	self.image["mov"].setProperties(0,0,48,48);
	self.bitmap = new LBitmap(self.image["mov"]);
	self.addChild(self.bitmap);
	self.setImage();
	self.loadImage();
	
	self.speed = 2;
	self.speedIndex = 0;
	self.addEventListener(LEvent.ENTER_FRAME,self.onframe);
}
LSouSouCharacterS.prototype.locationX = function(){
	return this.x/LSouSouObject.sMap.nodeLength >>> 0;
};
LSouSouCharacterS.prototype.locationY = function(){
	return this.y/LSouSouObject.sMap.nodeLength >>> 0;
};
LSouSouCharacterS.prototype.setImage = function(){
	var self = this;
	var atklist = LGlobal.divideCoordinate(self.image["atk"].image.width,self.image["atk"].image.height,12,1);
	var movlist = LGlobal.divideCoordinate(self.image["mov"].image.width,self.image["mov"].image.height,11,1);
	var spclist = LGlobal.divideCoordinate(self.image["spc"].image.width,self.image["spc"].image.height,5,1);
	var list;
	/*********站立*********/
	//下
	list = [ "mov", 48, 48, [[movlist[6][0],1]] ];
	self.animeList.push(list);
	//左
	list = [ "mov", 48, 48, [[movlist[8][0],1]] ];
	self.animeList.push(list);
	//上
	list = [ "mov", 48, 48, [[movlist[7][0],1]] ];
	self.animeList.push(list);
	//右
	list = [ "mov", 48, 48, [[movlist[8][0],-1]] ];
	self.animeList.push(list);
	/*********移動*********/
	//下
	list = [ "mov", 48, 48, [ [movlist[0][0], 1], [movlist[1][0], 1] ] ];
	self.animeList.push(list);
	//左
	list = [ "mov", 48, 48, [ [movlist[4][0], 1], [movlist[5][0], 1] ] ];
	self.animeList.push(list);
	//上
	list = [ "mov", 48, 48, [ [movlist[2][0], 1], [movlist[3][0], 1] ] ];
	self.animeList.push(list);
	//右
	list = [ "mov", 48, 48, [ [movlist[4][0], -1], [movlist[5][0], -1] ] ];
	self.animeList.push(list);
	
	self.action = self.direction+4;
};
LSouSouCharacterS.prototype.onframe = function(self){
	if(self.speedIndex++ < self.speed)return;
	self.speedIndex = 0;
	var anime = self.animeList[self.action]
	var list = anime[3];
	if(self.actionIndex >= list.length){
		self.actionIndex = 0;
	}
	var obj = list[self.actionIndex++];
	var coordinate = obj[0];
	self.bitmap.bitmapData = self.image[anime[0]];
	self.bitmap.bitmapData.setProperties(coordinate.x,coordinate.y,anime[1],anime[2]);
	self.bitmap.scaleX = obj[1];
	self.move();
};
LSouSouCharacterS.prototype.move = function(){
	var self = this;
	if(!self.path)return;
	if(self.x == self.tagerCoordinate.x && self.y == self.tagerCoordinate.y){
		if(self.path.length == 0){
			self.tagerCoordinate.x = self.locationX();
			self.tagerCoordinate.y = self.locationY();
			self.path = null;
			if(self.onMoveComplete)self.onMoveComplete();
			return;
		}else{
			self.tagerCoordinate.x = self.path[0].x*LSouSouObject.sMap.nodeLength;
			self.tagerCoordinate.y = self.path[0].y*LSouSouObject.sMap.nodeLength;
			self.path.shift();
		}
	}
	if(self.x > self.tagerCoordinate.x){
		self.x -= LStaticSouSouCharacterS.MOVESETP;
		self.action = LStaticSouSouCharacterS.MOVE_LEFT;
	}else if(self.y < self.tagerCoordinate.y){
		self.y += LStaticSouSouCharacterS.MOVESETP;
		self.action = LStaticSouSouCharacterS.MOVE_DOWN;
	}else if(self.y > self.tagerCoordinate.y){
		self.y -= LStaticSouSouCharacterS.MOVESETP;
		self.action = LStaticSouSouCharacterS.MOVE_UP;
	}else{
		self.x += LStaticSouSouCharacterS.MOVESETP;
		self.action = LStaticSouSouCharacterS.MOVE_RIGHT;
	}
};
LSouSouCharacterS.prototype.loadImage = function(){
	var self = this;
	atkLoader = new LLoader();
	atkLoader.parent = self;
	atkLoader.addEventListener(LEvent.COMPLETE,self.loadAtkOver);
	atkLoader.load("images/characters/s/" + self.member.getS() +"/atk.png" + (LGlobal.traceDebug?("?"+(new Date()).getTime()):""),"bitmapData");

	movLoader = new LLoader();
	movLoader.parent = self;
	movLoader.addEventListener(LEvent.COMPLETE,self.loadMovOver);
	movLoader.load("images/characters/s/" + self.member.getS() +"/mov.png" + (LGlobal.traceDebug?("?"+(new Date()).getTime()):""),"bitmapData");

	spcLoader = new LLoader();
	spcLoader.parent = self;
	spcLoader.addEventListener(LEvent.COMPLETE,self.loadSpcOver);
	spcLoader.load("images/characters/s/" + self.member.getS() +"/spc.png" + (LGlobal.traceDebug?("?"+(new Date()).getTime()):""),"bitmapData");
};
LSouSouCharacterS.prototype.loadAtkOver = function(event){
	var self = event.target.parent;
	self.image["atk"] = new LBitmapData(event.currentTarget);
};
LSouSouCharacterS.prototype.loadMovOver = function(event){
	var self = event.target.parent;
	self.image["mov"] = new LBitmapData(event.currentTarget);
};
LSouSouCharacterS.prototype.loadSpcOver = function(event){
	var self = event.target.parent;
	self.image["spc"] = new LBitmapData(event.currentTarget);
};
LSouSouCharacterS.prototype.addEventListener = function(type,listener){
	var s = this;
	arguments.callee[SUPER]["addEventListener"].apply(s,arguments);
	if(type == LSouSouEvent.CHARACTER_MOVE_COMPLETE){
		s.onMoveComplete = listener;
	}
};
LSouSouCharacterS.prototype.removeEventListener = function(type,listener){
	var s = this;
	arguments.callee[SUPER]["removeEventListener"].apply(s,arguments);
	if(type == LSouSouEvent.CHARACTER_MOVE_COMPLETE){
		s.onMoveComplete = null;
	}
};
LSouSouCharacterS.prototype.removeAllEventListener = function(type,listener){
	var s = this;
	arguments.callee[SUPER]["removeAllEventListener"].apply(s,arguments);
	s.onMoveComplete = null;
};