Problema AS. Llamar a función contenida en variable
Hola chicos, os dejo un pequeño código de una funcion contenida en una variable, que cuando la cargo desde un boton incrementando su valor, pero no me hace ni puto caso:
<code>function menu_es() {
var step:Number = 1;
var step2 = function () {
trace("step2 lalalala");
};
.
.
.
this.onEnterFrame = function() {
fondo_es_mc1.adelante_es_btn.onRelease = function() {
if (step<=8) {
step++;
} else {
}
}</code>
Pues eso, no funciona, en cambio si pongo a pelo "step2()" por cualquier sitio me ejecuta la función. Supongo que el fallo estará en lo de "step++" pero tenia un ejemplo por ahí que funcionaba pero ahora tampoco.
Cuento con vuestra ayuda inestimable como siempre y gracias de antemano.
Un saludo.
ventdaval
en principio creo que esto te serviria:
this["step"+numero]();
Saludos...
zigotica
no me hagais mucho caso porque no he escrito una linea de as en mi vida, pero...
¿no seria mas logico tener una unica funcion con switch/case o if/else para cada caso (pasando el step como argumento)? es que lo del eval me da un repelus... (ademas creo que en ese caso no hace falta, pero repito, que de as voy pez)
script
No se, solo llevo un par de años con AS y no es mi fuerte, aparte de que me enseñaron ma o meno azin.:)
¿Como se te ocurre hacerlo.?
Por cierto, la funcion general no es así...tiene unas 250 lineas de código,jeje pero la he resumido porque en otro post me echaron el puro por excederme en poner codigo en el post, jajaja.:)
hardface
Oye tio, ¿seguro que no hay una forma mucho más simple de hacer eso? jijiiji porque lo estoy mirando y me estoy mareando..... uuuuuuuuu....
script
Oye Athomix, chapo tio!!!
ya que estamos...podrías explicar como funciona el ¿¿¿eval???:oops: Con la ayuda de flash es demasiado técnica y no pillo nada...:oops::oops::oops::oops::oops:
athomix
No lo he probado pero quizás con eval()
<code>
function step1(){
trace("1")
}
function step2(){
trace("2")
}
....
this.onEnterFrame = function() {
fondo_es_mc1.adelante_es_btn.onRelease = function() {
if (step<=8) {
step++;
funcionstep = eval("step" + step)
funcionstep()
} else {
}
}
</code>
ya dirás ;)
script
Gracias Soki, es que de eso mismo se tiene que encargar el condicional que hay. La cuestion es que cada step del 1 al 8 tendra unas acciones dentro de cada funcion y el boton tiene que ir cargando todos los steps conforme vayas apretando el boton.
¿Como invoco la función para que coincida el numero de step con la variable y la ejecute? Nunca antes había hecho estas cosas.
O mejor dicho...¿que código usuarias par que invocase a cada step conforme apretas el boton?
Gracias de antemano!
soki
Hola,
no estás invocando en ningún sitio a step2() en el código que has puesto.
Step++, solo te sirve para incrementar el valor q pudiera tener esa variable, si pretendias hacer la llamada con eso, no vas a obtener muchos resultados.
Mete un condicional dentro de tú código que invoque la función en cuestión cuando step sea igual a 2, si eso es lo que buscas.
Saludos.