Question

J'essaie d'appeler une fonction après avoir chargé du XML dans Actionscript, et je me demande simplement comment appeler cette fonction.Exemple:

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

Maintenant, comment appeler la fonction "callMe()" dans une autre partie du code, comme une fonction onRelease ?

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

ActionScript 2.0 est tellement bancal !Des idées?

Était-ce utile?

La solution

Êtes-vous obligé de déclarer callMe à l’intérieur de parentFunction ?Je suppose que oui parce que sinon tu le ferais simplement

fonction parent () {} fonction callme () {}

Pour être clair, une fonction ne peut pas posséder une autre fonction à moins que vous ne fournissiez une certaine marge pour que cette fonction puisse vivre.

Ainsi, en JavaScript, vous feriez cela en utilisant l'objet prototype pour déclarer la fonction callMe en tant que méthode de l'objet renvoyé par parentFunction.

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

Pour ActionScript, lisez cet article sur le site Web d'Adobe :http://www.adobe.com/devnet/flex/articles/as_collections_03.html

MODIFIER:Après quelques lectures supplémentaires, il semble que la façon dont vous avez fait les choses, vous déclarez en fait callMe comme un privé fonction.Voir cet article qui devrait faire le tout problème javascript privé/public beaucoup plus compréhensible.

Autres conseils

Je suis un idiot.J'ai oublié le principe "une fonction ne peut pas posséder une autre fonction", alors j'ai trouvé une autre façon de le faire.Merci!

Bien entendu, une fonction peut « posséder » une autre fonction.c'est ECMAScript, rappelez-vous.Déclarez simplement une variable dans votre fonction et attribuez-lui une fonction.Vous pouvez ensuite appeler votre fonction en utilisant la méthode "call".

fonction foo () {trace ("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');
}

Désolé pour le mauvais anglais, définissez un gestionnaire de boutons (menu), Whitch est situé dans un MC.

MC "Buttons" sur scène (avec 3 "testbtn" dedans) @ première image :

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);
}

Scène (avec MC "Butttons" dedans) @ première image :

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

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

renvoie le testbtn.name

Modifier:Oh, c'est pour AS3, mais ça aide peut-être !

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top