2008-09-02 23 views
1

J'essaie d'appeler une fonction après avoir chargé du code XML dans Actionscript, et je me demande simplement comment j'appelle cette fonction. Exemple:Fonctions d'appel dans Function - Flash Actionscript 2.0

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

Maintenant, comment puis-je appeler la fonction « Appelle-moi() » 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 nul! Des idées?

Répondre

2

Etes-vous obligé de déclarer callMe à l'intérieur de parentFunction? Je suppose que oui parce que sinon vous suffit de faire

parent fonction

() {} fonction callme() {}

Pour être clair, une fonction ne peut pas posséder une autre fonction, sauf si vous fournissez une certaine marge de cette fonction Pour vivre en.

Donc, en JavaScript, vous le feriez en utilisant l'objet prototype pour déclarer la fonction callMe comme méthode de l'objet retourné 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

EDIT: Après une lecture plus il semble que la façon dont vous avez les choses, vous déclarez en fait callme en fonction privée . Voir cet article qui devrait rendre l'ensemble de private/public javascript issue beaucoup plus compréhensible.

0

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

0

Bien sûr, 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();

0
//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'); 
} 
0

Désolé pour le mauvais anglais, Définir un gestionnaire pour (Menu-) Boutons, whitch sont situés dans un MC.

MC "Boutons" sur scène (avec 3 "testbtn" en elle) @ 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); 
} 

étape (avec MC "butttons" en elle) @ première image:

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

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

renvoie le testbtn.nom

Edit: Oh, c'est pour AS3, mais peut-être aide!