Добрый день, господа.
Сегодня начал изучать AS2.0...
Стоит задача: Реализовать выезд, при нажатие, кнопок в определенную точку.
Я попробовал реализовать:

Код:
var pixelsRight:Number = 200; // Выезд до опр. направо
var pixelsUp:Number = 10; // Выезд до опр. высоты
var maxSpeed:Number = 30; // Скорость
/* Первая кнопка */
Kn1 = knopka1; // Имя кнопки
Kn1.onRelease = function() {
Kn1.pixX = 1; // Позиция по оси X
Kn1.pixY = 100; // Позиция по оси Y
onEnterFrame = function () {
if (pixelsRight>Kn1.pixX) {
movTo(Kn1.pixX, Kn1.pixY, Kn1);
Kn1.pixX += speed(maxSpeed, Kn1.pixX, pixelsRight);
}
if (pixelsUp<Kn1.pixY && pixelsRight<Kn1.pixX) {
movTo(Kn1.pixX, Kn1.pixY, Kn1);
Kn1.pixY -= speed(maxSpeed, pixelsUp, Kn1.pixY);
}
};
};
/* Первая кнопка */
/* Вторая кнопка */
Kn2 = knopka2; // Имя кнопки
Kn2.onRelease = function() {
Kn2.pixX = 1; // Позиция по оси X
Kn2.pixY = 200; // Позиция по оси Y
onEnterFrame = function () {
if (pixelsRight>Kn2.pixX) {
movTo(Kn2.pixX, Kn2.pixY, Kn2);
Kn2.pixX += speed(maxSpeed, Kn2.pixX, pixelsRight);
}
if (pixelsUp<Kn2.pixY && pixelsRight<Kn2.pixX) {
movTo(Kn2.pixX, Kn2.pixY, Kn2);
Kn2.pixY -= speed(maxSpeed, pixelsUp, Kn2.pixY);
}
};
};
/* Вторая кнопка */
/* Функция перемещения */
function movTo(px:Number, py:Number, ob:Object) {
ob._x = px;
ob._y = py;
}
/* Функция ускорения */
_global.speed = function(sp:Number, a:Number, b:Number) {
return (sp/((b/a)/2));
};
Вопрос:
1. С одной кнопкой данный код работает замечательно. Если добавляем вторую, то при одновременном нажатие на две, первая прекращает движение. Как выйти из ситуации? Не пойму, что у них общего?
2. Как Вы видите, мой код далеко не элегантен. Хотелось бы узнать, можно ли данную задачу реализовать более элегантно, например избавиться от kn1, kn2 ... (я думаю, что следует в акшин самой кнопки прописывать и юзать, что-то типа this .. но тогда, как реализовать перемещение?)
Заранее спасибо.