Вот код

Код AS3:
package
{
import flash.display.MovieClip;
import flash.events.TouchEvent;
import flash.events.Event;
import flash.ui.Multitouch;
import flash.ui.MultitouchInputMode;
import flash.desktop.NativeApplication;
public class Tank extends MovieClip
{
private var Speed:Number = 4;
private var _left:Boolean = false;
private var _right:Boolean = false;
private var _up:Boolean = false;
private var _down:Boolean = false;
private var platforms:Array = new Array ;
private var platform;
public function Tank()
{
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
tank.stop();
//----------------------------------------------------------------------------------------------//
left.addEventListener(TouchEvent.TOUCH_BEGIN,leftTrue);
right.addEventListener(TouchEvent.TOUCH_BEGIN,rightTrue);
up.addEventListener(TouchEvent.TOUCH_BEGIN,upTrue);
down.addEventListener(TouchEvent.TOUCH_BEGIN,downTrue);
//----------------------------------------------------------------------------------------------//
left.addEventListener(TouchEvent.TOUCH_END,leftFalse);
right.addEventListener(TouchEvent.TOUCH_END,rightFalse);
up.addEventListener(TouchEvent.TOUCH_END,upFalse);
down.addEventListener(TouchEvent.TOUCH_END,downFalse);
//----------------------------------------------------------------------------------------------//
left.addEventListener(TouchEvent.TOUCH_OUT,leftOut);
right.addEventListener(TouchEvent.TOUCH_OUT,rightOut);
up.addEventListener(TouchEvent.TOUCH_OUT,upOut);
down.addEventListener(TouchEvent.TOUCH_OUT,downOut);
//----------------------------------------------------------------------------------------------//
stage.addEventListener(Event.ENTER_FRAME,moveTank);
for (var i:int = 0; i < map.numChildren; i++)
{
platforms.push(map.getChildAt(i));
}
}
public function leftTrue(e:TouchEvent)
{
_left = true;
tank.gotoAndStop("left");
}
public function rightTrue(e:TouchEvent)
{
_right = true;
tank.gotoAndStop("right");
}
public function upTrue(e:TouchEvent)
{
_up = true;
tank.gotoAndStop("up");
}
public function downTrue(e:TouchEvent)
{
_down = true;
tank.gotoAndStop("down");
}
//----------------------------------------------------------------------------------------------//
public function leftFalse(e:TouchEvent)
{
_left = false;
}
public function rightFalse(e:TouchEvent)
{
_right = false;
}
public function upFalse(e:TouchEvent)
{
_up = false;
}
public function downFalse(e:TouchEvent)
{
_down = false;
}
//----------------------------------------------------------------------------------------------//
public function leftOut(e:TouchEvent)
{
_left = false;
}
public function rightOut(e:TouchEvent)
{
_right = false;
}
public function upOut(e:TouchEvent)
{
_up = false;
}
public function downOut(e:TouchEvent)
{
_down = false;
}
//----------------------------------------------------------------------------------------------//
public function moveTank(e:Event)
{
if (_left)
{
tank.x -= Speed;
}
if (_right)
{
tank.x += Speed;
}
if (_up)
{
tank.y -= Speed;
}
if (_down)
{
tank.y += Speed;
}
detection(tank);
}
public function detection(_tank)
{
//перебираем все платформы и проверяем пересечение с персонажем
for (var p:int = 0; p < platforms.length; p++)
{
platform = platforms[p];
if (_tank.left.hitTestObject(platform))
{
_left = false;
}
if (_tank.right.hitTestObject(platform))
{
_right = false;
}
if (_tank.up.hitTestObject(platform))
{
_up = false;
}
if (_tank.down.hitTestObject(platform))
{
_down = false;
}
}
}
}
}