Хээлп! Делаю функцию для сложения двух чисел. Подскажите, пожалуйста, почему не работает, если в качестве параметров использовать переменные

Код:
function sum(a, b) {
var summa:Number;
summa = Number(a)+Number(b);
if (summa+summa !== summa*2) {
//если summa == NaN, параметры a и b - имена переменных
write(Number(_root[a])+Number(_root[b])); //не работает =(
} else {
// если параметры - числа, то работает
write(summa);
}
}
В конце концов почему

Код:
// это выводит число прикрепленное к переменной
trace(_root[a]);
// это уже нет
trace(Number(_root[a]));