То, что у вас здесь есть, проходит по массиву продуктов питания, и для каждого элемента в этом массиве он будет вызывать 'moveToFood' или 'updatePosition' на основе условия расстояния. Предположительно эти две функции управляют движением, поэтому они могут работать друг против друга, и в этом случае вы увидите только последний результат вывода цикла.
Возможно, вы захотите разорвать петлю, когда найден подходящий кусочек пищи, и вызывать updatePosition только в том случае, если продукты не соответствуют вашему состоянию.
if(foodDroppedArray.length > 0)
{
for each (var i:Food in foodDroppedArray)
{
if (getDistance(this.x - i.x, this.y - i.y) < 100)
{
this.moveToFood(i);
return;
}
}
//this only calls when no food matches the condition
updatePosition();
} else {
updatePosition();
}