ActionScript - LLamada de funcion en otra funcion

 
Vista:

LLamada de funcion en otra funcion

Publicado por novatonScript (1 intervención) el 17/02/2007 01:31:04
Hola un saludo, espero que sepa contestarme, yo pienso que si... haya voy:

Por mas que he buscado no se como puedo resolver mi problema.

Me he creado una funcion, que se le envia un parametro y devuelve el nombre de una canción:

_global.nombraCuento = function(cuento:Number):String
{
var nombrecuento:String = "";

if(cuento == 0)
{
trace ("No suena ningun cuento");
return nombrecuento;
}
if(cuento == 1)
{
nombrecuento = "caperucita_mp3";
trace ("sonando "+nombrecuento);
return nombrecuento;
}
if(cuento == 2)
{
nombrecuento = "pulgarcito_mp3";
trace ("sonando "+nombrecuento);
return nombrecuento;
}
if(cancion == 3)
{
nombrecuento = "bella_durmiente_mp3";
trace ("sonando "+nombrecuento);
return nombrecuento;
}
};

Entonces la yamo desde otra funcion, por ejemplo esta misma:

playstopcuento_btn.onPress = function ()
{
var cuentosonando:String = "No se detecto nombre";

cuentosonando=nombraCuento(opcionCuento);

trace ("Sonando "+cuentosonando);
}

Deberia imprimirme segun el numero de cancion que le envio por una variable global el nombre de la cancion, pero el trace me imprime UNDEFINIED.

Estoy loco y nose como solucionar esto, ¿podrían ayudarme? Me vendria muy bien para aminorar mi codigo, y aprender algo bastante importante.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Solución para obtener el nombre de una canción según un parámetro

Publicado por Alejandro (369 intervenciones) el 22/06/2023 23:05:33
El problema que estás experimentando es debido a un error tipográfico en el código. En lugar de utilizar la variable "cancion" en el último bloque condicional, debes utilizar la variable "cuento" para asignar el nombre del cuento correcto a la variable "nombrecuento". Aquí está el código corregido:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
_global.nombraCuento = function(cuento:Number):String {
    var nombrecuento:String = "";
 
    if (cuento == 0) {
        trace("No suena ningún cuento");
    } else if (cuento == 1) {
        nombrecuento = "caperucita_mp3";
        trace("Sonando " + nombrecuento);
    } else if (cuento == 2) {
        nombrecuento = "pulgarcito_mp3";
        trace("Sonando " + nombrecuento);
    } else if (cuento == 3) {
        nombrecuento = "bella_durmiente_mp3";
        trace("Sonando " + nombrecuento);
    }
 
    return nombrecuento;
};

En el código corregido, se han realizado las siguientes modificaciones:

1. Se cambió "if (cancion == 3)" a "else if (cuento == 3)" para utilizar la variable correcta.

2. Se eliminaron los "return" dentro de cada bloque condicional, ya que no es necesario utilizarlos en este caso. El valor de "nombrecuento" se asignará correctamente dentro de cada bloque.

Una vez corregido el código, deberías poder obtener el nombre correcto de la canción según el número de cuento proporcionado.

Recuerda que en ActionScript, es recomendable utilizar nombres de variables claros y significativos, además de seguir una buena estructura de programación para evitar errores y mejorar la legibilidad del código.

¡Espero que esta solución te ayude a resolver tu problema!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar