Pregunta

Estoy intentando llamar a una función después de cargar algo de XML en Actionscript y me pregunto cómo llamo a esa función.Ejemplo:

//Function Declarations
function parentFunction()
{
    function callMe()
    {
     textField.text = "lawl";
    }
}

Ahora, ¿Cómo llamo a la función "callMe()"? ¿En una parte diferente del código, como una función onRelease?

on(release)
{
callMe(); //doesn't work
parentFunction().callMe(); //doesn't work
parentFunction.callMe(); //doesn't work
}

¡ActionScript 2.0 es tan inestable!¿Algunas ideas?

¿Fue útil?

Solución

¿Estás obligado a declarar callMe dentro de parentFunction?Supongo que sí porque de lo contrario simplemente harías

function parent () {} function callMe () {}

Para ser claros, una función no puede poseer otra función a menos que proporcione algún margen para que esa función viva.

Entonces, en JavaScript, harías esto usando el objeto prototipo para declarar la función callMe como un método del objeto que devolvió parentFunction.

http://www.howtocreate.co.uk/tutorials/javascript/objects

Para ActionScript, lea este artículo en el sitio web de Adobe:http://www.adobe.com/devnet/flex/articles/as_collections_03.html

EDITAR:Después de leer un poco más, parece que la forma en que hiciste las cosas, en realidad estás declarando callMe como un privado función.Vea este artículo que debería completarlo. problema de javascript privado/público mucho más comprensible.

Otros consejos

Soy un idiota.Olvidé todo el asunto de "una función no puede poseer otra función", así que descubrí otra forma de hacerlo.¡Gracias!

Por supuesto, una función puede "poseer" otra función.Esto es ECMAScript, recuerda.Simplemente declare una variable dentro de su función y asígnele una función.Luego puede llamar a su función utilizando el método "llamar".

function foo () {traza ("foo");

var bar = function()
{
    trace("bar");
};

bar.call();

}

foo();

//v--- on the frame
function callMe(){
textArea.text='lawl';
}
//v---- for button
on(release){
callMe();
}

--- or -----

//CUSTOM!!
//v---- on frame
function callMe(say){
textArea.text=say;
}
//v--- for button
on(release){
callMe('lawl');
}

Perdón por el mal inglés, configure un controlador para los botones (menú), Whitch se encuentra en un MC.

"Botones" de MC en el escenario (con 3 "testbtn") en el primer fotograma:

function SetMethod(Method:Function){
    //trace(Method.call()); 
    //or something like:
    testbtn1.addEventListener(MouseEvent.CLICK, Method);
    testbtn2.addEventListener(MouseEvent.CLICK, Method);
    testbtn3.addEventListener(MouseEvent.CLICK, Method);
}

Escenario (con MC "Butttons" en él) en el primer cuadro:

function TheMenuListener(evt:Event):void{
    trace(evt.target.name);

}
...
Buttons.SetMethod(this.TheMenuListener); 

devuelve el nombre testbtn.

Editar:Oh, es para AS3, ¡pero tal vez ayude!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top