Я написал код ActionScript 3 для перемещения объекта, когда другой объект близок. Я использую flash cs5.5 Проблема в том, что когда я добавил код для перемещения этого объекта только один раз, код перестанет работать правильно. Возможно, проблема заключается не в самом коде, а в объектах или экземплярах объектов, но я ничего не изменил. Я получаю все следы, которые вы можете видеть в коде, но когда я закрываю «магнит» до «маятника», маятник не вращается, как он.Перемещение объекта не работает, но у меня нет ошибок
import flash.events.MouseEvent;
import flash.events.Event;
var angle:Number = 0; //angle for rotation of object "pendulum"
var rotate:Number = 45; // value to multiple to calculate rotation
//global variable
var moved_once: int=0; //variable for checking the first move of the object
function move_pendulum(e:Event):void{
trace("hit"); //to check if enters the function
pendulum1.rotation = Math.sin(angle) * rotate; //execute rotation
angle +=0.3; //increase angle for next rotation
trace("hit2"); //to check if the function ends
}
magnet1.addEventListener(MouseEvent.MOUSE_DOWN, start_magnet); //for start dragging //object "magnet"
magnet1.addEventListener(MouseEvent.MOUSE_UP, stop_magnet); //for stop dragging //object "magnet"
function start_magnet(event:MouseEvent):void{
magnet1.startDrag(); //start dragging of object "magnet"
//check if the two objects are close enough
if(magnet1.x >pendulum1.x && (magnet1.x-pendulum1.x)<100){
trace("range detect");
//check if it is the first time which the two objects are close enough
if(moved_once==0){
trace("called move");
move_pendulum(event); //call function for rotating object "rotation"
moved_once++; //increase counter for not rotating again
}
}
}//end of function
function stop_magnet(event:MouseEvent):void{
magnet1.stopDrag(); //stop dragging of object
trace("stopped");
}
У меня нет никаких ошибок или еще чего-либо. Что происходит не так? Я ничего не вижу.
Сказать, что код перестает работать должным образом, немного расплывчато. Что происходит ? Вы получаете следы? Если вы не получаете трассировку «обнаружение диапазона», вы должны начать там. Правильно ? – prototypical
@prototypical Да, спасибо. Я добавил эту информацию в описание. Я получил все следы, но у меня не было движения, как это было раньше. – Dchris
нет движения чего? магнит или маятник? На основе вашего кода маятник вообще перестанет двигаться, если это условие EVER true и больше не начнет двигаться. Функция move_pendulum находится там, где угол увеличивается. – prototypical