Функции объявлены в цикле, но не вызываются. Соответственно enchant не растет, условие цикла не выполняется и цикл повторяется бесконечно.
Добавлено через 46 минут
Как-то так, если я правильно понял логику

Код AS3:
//Заточка на четырех предметах
function enchantingFour(event: MouseEvent): void { //Нажимаем на кнопку
while (enchant < 10) enFirst(); //До тех пор, пока не заточится на + 10 Точим первое
//При успешной заточке на +10 вывод в динамическое текстовое поле количества попыток заточки первого ...
//...и обнуление переменных для повторения заточки с нуля.
memo.text = tries + " Попыток";
enchant = 0;
tries = 0;
}
function enFirst(): void { //Точим первое
chance1 = Math.random(); //Шанс заточки 75%
if (chance1 * 100 < 76) { //Если успешно заточилось первое
enchant++; //Прибавляем уровень заточки
enRest();
} else enchant = 0; //Если не заточилось первое Сбрасываем заточку
tries++; //Увеличиваем счетчик попыток заточки первого
}
function enRest(): void { //Точим другие
chance2 = Math.random(); //Шанс 75%
if (chance2 * 100 < 76) { //Если успешно заточилось второе, точим третье
chance3 = Math.random(); //Шанс 75%
if (chance3 * 100 < 76) { //Если успешно заточилось третье, точим четвертое
chance4 = Math.random(); //Шанс 75%
if (chance4 * 100 < 76) { //Если успешно заточилось и четвертое...
enRest(); //...Возвращаемся к заточке со второго
} else enFirst(); //Если не заточилось четвертое...Снова точим первое
} else enFirst(); //Если не заточилось третье...Снова точим первое
} else enFirst(); //Если не заточилось второе...Снова точим первое
}