Здравствуйте, ребят, я новичек, и мне кое-что не понятно.. Собираюсь игрушку сделать) И столкнулся с такой проблемой: делал движение объекта стрелками, на временной диаграмме если код писать, то все получается; а в классе не работает..
Вот код) мы проверяем, нажаты ли клавиши, а исходя из этого перемещаем объект в нужные нам стороны.

Код AS3:
//объект называется cub
import flash.events.KeyboardEvent;
import flash.events.Event;
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKD);
stage.addEventListener(KeyboardEvent.KEY_UP, onKU);
var up:Boolean = false;
var down:Boolean = false;
var right:Boolean = false;
var left:Boolean = false;
var upS:Number = 1;
var downS:Number = 1;
var rightS:Number = 1;
var leftS:Number = 1;
function onKD(e:KeyboardEvent):void {
if (e.keyCode == 37) {
left = true;
}
if (e.keyCode == 38) {
up = true;
}
if (e.keyCode == 39) {
right = true;
}
if (e.keyCode == 40) {
down = true;
}
}
function onKU(e:KeyboardEvent):void {
if (e.keyCode == 37) {
left = false;
}
if (e.keyCode == 38) {
up = false;
}
if (e.keyCode == 39) {
right = false;
}
if (e.keyCode == 40) {
down = false;
}
}
stage.addEventListener(Event.ENTER_FRAME, onMovoHero);
function onMovoHero(e:Event):void {
if (left) {
cub.x -= leftS;
leftS ++;
} else {
cub.x -= leftS;
leftS *= .7;
}
if (up) {
cub.y -=upS;
upS ++ ;
} else {
cub.y -=upS;
upS *= .7;
}
if (right) {
cub.x += rightS;
rightS ++;
} else {
cub.x += rightS;
rightS *= .7;
}
if (down) {
cub.y += downS;
downS ++;
} else {
cub.y += downS
downS *= .7;
}
}
stage.addEventListener(Event.ENTER_FRAME, sled);
function sled(e:Event):void {
swit
}
С ООП у меня не очень. Я так класс написал; видимо, я что-то не так делал..

Код AS3:
package
{
import flash.display.MovieClip;
import flash.display.Stage;
public class Movement extends MovieClip
{
var up:Boolean = false;
var down:Boolean = false;
var right:Boolean = false;
var left:Boolean = false;
var upS:Number = 1;
var downS:Number = 1;
var rightS:Number = 1;
var leftS:Number = 1;
public function Movement()
{
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKD);
stage.addEventListener(KeyboardEvent.KEY_UP, onKU);
stage.addEventListener(Event.ENTER_FRAME, onMoveHero);
}
public function onKD(e:KeyboardEvent):void
{
if (e.keyCode == 37)
{
left = true;
trace("12312")
}
if (e.keyCode == 38)
{
up = true;
}
if (e.keyCode == 39)
{
right = true;
}
if (e.keyCode == 40)
{
down = true;
}
}
public function onKU(e:KeyboardEvent):void
{
if (e.keyCode == 37)
{
left = false;
}
if (e.keyCode == 38)
{
up = false;
}
if (e.keyCode == 39)
{
right = false;
}
if (e.keyCode == 40)
{
down = false;
}
}
public function onMoveHero(e:Event):void
{
if (left)
{
trace("left");
this.x -= leftS;
leftS++;
}
else
{
this.x -= leftS;
leftS *= .7;
}
if (up)
{
this.y -= upS;
upS++;
}
else
{
this.y -= upS;
upS *= .7;
}
if (right)
{
this.x += rightS;
rightS++;
}
else
{
this.x += rightS;
rightS *= .7;
}
if (down)
{
this.y += downS;
downS++;
}
else
{
this.y += downS;
downS *= .7;
}
}
}
}
/* в основном .fla файле создавал экземпляр класса:
var cub:Movement = new Movement;
addChild(cub);
Но мувик не двигался и вообще не реагировал...................*/