Je suis assez positif ce que je veux faire n'est pas possible avec ActionScript, mais ce serait bien d'avoir tort.Modification de la valeur d'un var via référence dans AS3
Je dois passer une référence variable à une fonction et faire en sorte que la fonction change la valeur de la variable.
Ainsi, simplifiée et non dans la syntaxe tout à fait correct, quelque chose comme ceci:
function replaceValue(element:*, newValue:String):void
{
element = newValue;
}
var variableToModify:String = "Hello";
replaceValue(variableToModify, "Goodbye");
trace(variableToModify) // traces value of 'Hello', but want it to trace value of 'Goodbye'
Bien sûr, dans la fonction replaceValue, element
est une nouvelle référence à fungibleValue
(ou, plutôt, une nouvelle référence à fungibleValue
de la valeur). Ainsi, alors que element
est défini sur la valeur newValue
, fungibleValue
ne change pas. C'est prévu mais totalement pas ce que je veux, dans ce cas.
Il y a une question similaire, Ruby, ici Changing value of ruby variables/references
La question souligne, Ruby a une façon d'y arriver. MAIS y a-t-il pour faire cela en ActionScript?
Si c'est le cas, ça va me rendre beaucoup plus stupide.
Merci, Patrick. Vos suggestions m'ont aidé à réfléchir aux dernières étapes de ce problème. Je suis presque allé avec l'idée d'enrouler la variable dans un objet, mais j'ai fini par passer une fonction de rappel à la méthode 'replaceValue' (qui est une méthode statique sur un objet différent, btw). Il suffit de définir la valeur de la variable dans le rappel, maintenant. Ce qui, oui, est assez grossier, mais ... est une solution décente dans ce cas. Merci encore. –