PDA

Просмотр полной версии : задать количество передвижений через поле ввода


veles2008
29.11.2009, 18:53
Приветствую!

На сцене есть 3 объекта:

1.кнопка
2.поле(вводимый текст)
3.кружок

При нажатии на кнопку кружок делает перемещение на 1 px.

Вводим в поле какое то число (например10). Как сделать чтобы кружок перемещался на такое значение пикселов, какое я ввёл в поле (10)?

mooncar
29.11.2009, 19:18
Написать функцию движения, которая бы брала значение из поля ввода, приводила бы его к типу Number и использовала результат как значение приращения (шага). Всего строчки три кода.

veles2008
29.11.2009, 19:57
вроде бы так и делаю
speed=0;

t= Number(txt.text);

onEnterFrame = function () {
knopka.onPress = function () {
for (i=0; i<t; i++) {
speed=20;
}

}

krug._x+=speed*(Math.round(Math.sin(0.0175 * krug._rotation)));
krug._y+=speed*(Math.round(-Math.cos(0.0175 * krug._rotation)));
speed*=0;
}

Но что то ничего не получается

mooncar
29.11.2009, 20:03
О том, как организовано движение, вы ничего не говорили, и будем считать для простоты, что я ваш код не видел. Если нужно совершить разовый шаг по нажатию на кнопку, то нужно так:


var step:Number ;
move_btn.onRelease = function () {
step = Number(step_tf.text);
circle_mc._x += step;
}
Что касается вашего кода, то там я вижу непрерывное переназначение на кнопку некой функции нажатия. Так неправильно делать. Начните с того, что приведите в порядок структуру кода - вытащите назначение функции нажатия из onEnterFrame.

Если нужно менять параметры непрерывного движения, то сделайте аналогично этому:
var step:Number ;
move_btn.onRelease = function () {
step = Number(step_tf.text);
}

this.onEnterFrame = function () {
if (!isNaN(step)) { //если приведенное значение step является числом
circle_mc._x += step;
}
}

veles2008
29.11.2009, 20:09
спасибо