В данный момент вы ждете, когда пользователь нажмет пробел, а затем переместит символ вправо на один пиксель 200 раз.
Но, как OXMO456 все 200 раз говорил, что он движется вправо, происходит в то же время, как если бы вы вручную набрали "point.x + = 1;" 200 раз.
если ваше намерение состоит в том, чтобы только 200 раз сдвинуть его вправо, вы можете заменить оператор while на оператор if:
if(counter<200){
trace(counter);
point.x+=1;
counter+=1;
}
Затем вы можете изменить скорость, с которой он движется, изменив число после «point.x + =».
Еще лучшим способом изменения скорости было бы использование переменной, чтобы было понятнее, что делает число. Это также облегчает использование этого числа для других целей, например, для движения в других направлениях с той же скоростью.
Вот как будет выглядеть готовый код с этими изменениями и небольшим исправлением:
var counter:int = 0; // setting this variable as you define it saves space
var speed:Number = 1; // here's the speed variable (declared as a number so you can have fractions)
var point:symbol1 = new symbol1();
addChild(point);
point.x = 75; // 25+50 is 75, one less thing for flash to work out
point.y = 75;
stage.addEventListener(KeyboardEvent.KEY_DOWN, move_handler);
function move_handler(e) {
if (e.keyCode == Keyboard.SPACE) {
if (counter < 200)
{
trace(counter);
point.x += 1;
counter += 1;
}
}
}
Имеет ли это смысл?