En Flash5 (ActionScript 1.0) las variables declaradas (var) son locales, lo que implica que solo son accesibles en el bloque donde fueron declarados y se destruyen al finalizar dicho bloque, llámese bloque a lo que está entre las llaves, por ejemplo una FUNCTION, un IF, FOR, etc y por supuesto a las variables que son parte de la definición de esos bloques como los parámetros por valor y el famoso var i = 0 del FOR, lo mismo si declaras variables fuera de los bloques.
Las variables sin declarar (sin var) son globales, por lo que son accesibles desde cualquier parte, y se destruyen al finalizar la película.
function GenerarTipo1ySumar () {
var a = random(10);
var b = random(10);
Sumar();
trace("Generados: "+a+", "+b);
}
// Supongamos que tengo generar tipo 2, 3, etc, distintas fomas de generar.
function Sumar () {
Resultado = a+b;
trace("Suma: "+Resultado);
}
Estás declarando las variables locales a y b, así que solo son accesibles en ese bloque, cuando llamas a Sumar() es otro bloque y no sabe de la existencia de a y b. En Sumar() has asignado a una variable sin declarar: Resultado, está será global y accesible desde cualquier otra parte
No le veo sentido a pasar parámetros que voy a borrar, prefiero que las variables estén en el lv0 y las borro, así no tengo que andar pasando cosas, que supongo es un gasto extra.
Borrarlas? no puedes borrarlas, las variables globales solo se destruyen cuando la película finalice, es buena práctica usar parámetros y variables locales para que no te llenes de variables globales acumulando memoria, las variables globales deberían ser contaditas con los dedos para que no entren en conflicto con las variables locales, más cuando usas nombres muy genéricos como a, b, i, etc
Lo bueno de las versiones viejas de javascript es que puedes usar var para redeclarar variables o no simplemente no usarlas, no te dará problemas, es muy permisivo el lenguaje, pero en las versiones modernas ya se tiene la opción de forzar la declaración de variables y evitar la redeclaración de estas para parecerse, más a los leguajes de programación más estrictos