Я хотел бы сделать draggable movieclip target другой мувиклип (drop target).Простое перетаскивание в цель as3
Не нужно иметь функцию повторного использования (т. Е. Event.target необязательно), и она не должна быть частью массива.
Не могу понять, почему приведенный ниже код не будет работать. Я попытался использовать символ назначения (=) вместо equals (==) в местах, но это не имеет никакого значения.
Любая обратная связь очень ценится.
//Creating variables to store original x/y position of draggable movieclip (my_mc2):
var startX:Number;
var startY:Number;
//Enabling hand cursor over draggable mc:
my_mc2.buttonMode = true;
//Adding event listeners for mouse up and mouse down.
my_mc2.addEventListener(MouseEvent.MOUSE_DOWN, drag);
my_mc2.addEventListener(MouseEvent.MOUSE_UP, drop);
//Drag function (mouse down):
function drag(event:MouseEvent):void {
startX = my_mc2.x;
startY = my_mc2.y;
my_mc2.startDrag();
}
//Drop function (mouse up):
function drop(event:MouseEvent):void {
my_mc2.stopDrag();
if (my_mc2.x == target_mc2.x && my_mc2.y == target_mc2.y) {
my_mc2.removeEventListener(MouseEvent.MOUSE_DOWN, drag);
} else {
my_mc2.x == startX;
my_mc2.y == startY;
}
}
Извините, кажется, что этот код появляется в окне отладки как причина ошибки Появляется сообщение 1009. В рамках успешной функции возврата моя временная шкала перескакивает (gotoAndPlay). С этого момента в любой момент, когда я нажимаю сцену (или что-либо на ней) в SWF, вывод говорит мне, что у меня ошибка 1009 и указывает на функция отбрасывания. Консоль Debug указывает на конкретную строку, которая в вашем примере кода выше - строка «if». Честно говоря, я столкнулся с этим в другом файле, поэтому решил начать заново. Любые советы приветствуются. – hangoJango
Кстати, я проследил все в этом разделе «если» функции капли. Ничто не появилось как null. – hangoJango
yay! нашли ответ (но я не знаю теории, лежащей в его основе). Мне нужно было расширить объекты перетаскивания (my_mc2 и target_mc2 в приведенном выше примере) на временной шкале, чтобы они все еще существовали, когда позже был нажат этап. Чтобы обойти это, я просто установил для их видимого свойства значение false. Это кривая обучения! – hangoJango