2010-03-03 10 views
12

Je souhaite passer un paramètre de données facultatif à certains rappels, mais uniquement aux rappels prenant en charge un seul paramètre; À l'heure actuelle, j'ai une base de code de rappel de taille moyenne qui ne peut pas accepter un paramètre du tout. Comment puis-je vérifier quels paramètres un objet Function prend en charge?Comment puis-je déterminer le nombre d'arguments d'une fonction lors de l'exécution dans Flex 3?

+0

Pour être honnête, le design sent un peu drôle. Pouvez-vous poster du code montrant ce que vous essayez de faire? Parce qu'à ma connaissance, je ne crois pas qu'il existe un moyen d'inspecter une fonction de l'extérieur pour déterminer le nombre de paramètres qu'il définit en JavaScript ou en ActionScript (autre que celui décrit par Patrick pour les membres de la classe ActionScript). typiquement connu à l'avance par le développeur. –

+1

Chris? Avez-vous déjà trouvé une réponse à cette question? Si oui, cela vous dérangerait-il de poster une mise à jour? – Joshua

Répondre

2

Si votre fonction est déclarée dans un class utiliser le functiondescribeType il retourne un fichier XML que vous pouvez analyser et regarder votre nom de la fonction avec ses arguments

+0

Ce n'est pas le cas; c'est une fonction lambda, passée en rappel. Je n'arrive pas à comprendre comment obtenir plus d'informations. –

1

Le tableau d'arguments est un tableau de tous les paramètres passés dans un fonction. Peut-être que c'est ce que vous cherchez?

function traceArgArray(x:int):void 
{ 
    for (var i:uint = 0; i < arguments.length; i++) 
    { 
     trace(arguments[i]); 
    } 
} 

Exemple tiré de livedocs.adobe.com

+0

Ce n'est pas vraiment utile. Je sais quels sont les arguments à l'intérieur de la fonction, je cherche à savoir ce qu'ils sont en dehors de la portée de la fonction. –

21

La fonction est un objet. Chaque fonction a une propriété en lecture seule nommée longueur qui stocke le nombre de paramètres définis pour la fonction. Utilisez-le.