Тема: мультитач
Показать сообщение отдельно
Старый 26.01.2015, 03:12
maxisglad вне форума Посмотреть профиль Отправить личное сообщение для maxisglad Найти все сообщения от maxisglad
  № 5  
Ответить с цитированием
maxisglad

Регистрация: Dec 2010
Сообщений: 7
вобщем получилось че хотел ток это так пробник надо как то уйти от имен. Подскажите что подкорректировать или более правильный способ реализации этой задачи.

Код AS1/AS2:
djostik.kontroler.x = djostik.kontrol_zone.width/2-djostik.kontroler.width/2;
djostik.kontroler.y = djostik.kontrol_zone.height/2-djostik.kontroler.height/2;
var massArray:Array;
massArray = [];
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
 
this.stage.addEventListener(TouchEvent.TOUCH_BEGIN, eventTouchBegin);
this.stage.addEventListener(TouchEvent.TOUCH_END, eventTouchEnd);
 
 
function eventTouchBegin(e:TouchEvent): void {
	if(e.type == "touchBegin"){
			if(e.target.name == "kontroler"){
				startPosition = e.stageX-startPositionCenterKontrolerX;
				this.stage.addEventListener(TouchEvent.TOUCH_MOVE, eventMove);
				massArray[e.touchPointID] = "kontroler";
			}
			else if(e.target.name == "attack"){
				eventAttack();
			}
 
	}
	else{
 
	}
}
 
function eventTouchEnd(e:TouchEvent): void {
		n += 1;
	ata.text = n +" : "+massArray[e.touchPointID];
		if(massArray[e.touchPointID] == "kontroler"){
			this.stage.removeEventListener(TouchEvent.TOUCH_MOVE, eventMove);
			djostik.kontroler.x = startPositionCenterKontrolerX-djostik.kontroler.width;
			delete massArray[e.touchPointID];
			timer.stop();
		}
}
 
function eventAttack(): void {
 
}
 
var centerJostika:Number = djostik.kontroler.x;
var moveActions:String = "center";
var timer:Timer = new Timer(10);
timer.addEventListener(TimerEvent.TIMER, eventTimer);
var rightEndPosition:Number = djostik.x+djostik.width;
var startPosition:Number;
var startPositionCenterKontrolerX:Number = djostik.x+djostik.kontroler.x+djostik.kontroler.width/2;
 
var n:Number = 0;
function eventMove(e:TouchEvent): void {
//function eventMove(e:MouseEvent): void {
 
	if((e.stageX-startPosition > djostik.x) && (e.stageX-startPosition < rightEndPosition)){
		djostik.kontroler.x = e.stageX-startPosition-djostik.kontroler.width;
		if(djostik.kontroler.x < centerJostika/2){
			moveActions = "left";
		}
		else if(djostik.kontroler.x > centerJostika+centerJostika/2){
			moveActions = "right";
		}
		else{
			moveActions = "center";
		}
		timer.start();
	}
}
 
 
function eventTimer(e:TimerEvent):void{
	switch(moveActions){
		case "right":
					telo.x +=5;
					break;
		case "left":
					telo.x -=5;
					break;
		case "center":
					timer.stop();
					break;
	}
}
Добавлено через 7 минут
Спасиб уже получилось завтра доковыряю до норм вида.