Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.05.2015, 13:44
web5talker вне форума Посмотреть профиль Отправить личное сообщение для web5talker Найти все сообщения от web5talker
  № 1  
Ответить с цитированием
web5talker

Регистрация: May 2014
Сообщений: 22
Код AS1/AS2:
package 
{
 
	import flash.display.MovieClip;
	import flash.ui.MultitouchInputMode;
	import flash.events.*;
	import flash.ui.Multitouch;
 
 
	public class Main extends MovieClip
	{
		private var _hero_mc:hero_mc;
		private const RAD_TO_DEGREES:Number = 180 / Math.PI;
 
		private var _hero_body_ti:int = 0;
		private var _hero_foot_ti:int = 0;
 
		public function Main()
		{
 
			Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
			_hero_mc=new hero_mc();
			_hero_mc.x = 300;
			_hero_mc.y = 400;
			addChild(_hero_mc);
 
			_tap_fire_mc.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchFireBegin);
			_tap_motion_mc.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchMotionBegin);
 
			stage.addEventListener(TouchEvent.TOUCH_END, onTouchEnd);
		}
 
 
		public function onTouchMovie(e:TouchEvent):void
		{
 
			if (e.touchPointID == _hero_body_ti)
			{
				var bDx = e.stageX - _tap_fire_mc.x;
				var bDy = e.stageY - _tap_fire_mc.y;
				var mAngleD = Math.atan2(bDy,bDx) / Math.PI * 360;
				var _hero_rotate =  -  Math.atan2(bDx,bDy) * RAD_TO_DEGREES;
				_hero_mc.body_hero.rotation = _hero_rotate;
			}
 
			if (e.touchPointID == _hero_foot_ti)
			{
				var sDx = e.stageX - _tap_motion_mc.x;
				var sDy = e.stageY - _tap_motion_mc.y;
				var dirAngleD = Math.atan2(sDy,sDx);
				background_mc.x -=  5 * Math.cos(dirAngleD);
				background_mc.y -=  5 * Math.sin(dirAngleD);
			}
		}
 
		public function onTouchFireBegin(e:TouchEvent):void
		{
			if (_hero_foot_ti==0&&_hero_body_ti ==0)
			{
				stage.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMovie);
			}
						_hero_body_ti = e.touchPointID;
 
		}
 
		public function onTouchMotionBegin(e:TouchEvent):void
		{
			if (_hero_foot_ti==0&&_hero_body_ti ==0)
			{
				stage.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMovie);
			}
						_hero_foot_ti = e.touchPointID;
 
		}
 
		public function onTouchEnd(e:TouchEvent):void
		{
			if (e.touchPointID == _hero_body_ti)
			{
				_hero_body_ti = 0;
			}
 
			if (e.touchPointID == _hero_foot_ti)
			{
				_hero_foot_ti = 0;
 
			}
			if (_hero_foot_ti==0&&_hero_body_ti==0)
			{
				stage.removeEventListener(TouchEvent.TOUCH_MOVE, onTouchMovie);
			}
 
		}
 
	}
 
}
Код не оформлял, просто хотел понять принцип.

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:45.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:45.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.