Modification de champ de saisie et dynamique

Actionscript 3.0

a marqué ce sujet comme résolu.

Bonjour les agrumes :) ,

Contexte :

L’idée est que l’on saisisse des lettres et des chiffres dans une matrice et que ces inputs soit dynamiquement convertis. Si j’écris "a" je veux que ça écrive la lettre alpha.

(ab0bab0ba)(αβ0βαβ0βα)\begin{pmatrix} a & b & 0 \\ b & a & b \\ 0 & b & a \end{pmatrix} \Leftrightarrow \begin{pmatrix} \alpha & \beta & 0 \\ \beta & \alpha & \beta \\ 0 & \beta & \alpha \end{pmatrix}

Et tout ce qu’on met dans ces inputs sont réactualisé dans d’autres champs de textes plus bas et cela permet de présenter des calculs instantanément.

x101x101x\Biggm\lvert \begin{array}{c c c} x & 1 & 0 \\ 1 & x & 1 \\ 0 & 1 & x \end{array} \Biggm\lvert

J’aimerais rendre tout ça dynamique au cas où j’aurais besoin de faire ça pour une matrice avec plus de 9 élements…

Language : Actionscript 3.0 Logiciel : Adobe Animate

J’essaye de modifier des inputs et des outputs dans le but de faire de la mise en forme automatisé. J’ai 9 entrées qui sont sous le nom :

  • this.in_01.txt_input (type: TextField)
  • this.in_02.txt_input (type: TextField)
  • this.in_03.txt_input (type: TextField)

J’ai 9 sorties qui sont sous le nom :

  • this.out_01.txt_output (type: TextField)
  • this.out_02.txt_output (type: TextField)
  • this.out_03.txt_output (type: TextField)

Du coup j’ai voulu appelé chacuns de ces occurences à l’aide de boucle et de tableau pour stocker leurs noms :

var numMatrice:int = 9;
var inputArray:Array = [];
var outputArray:Array = [];

for (var i:int = 1; i <= numMatrice; i++) {
    var inputName:String = "in_" + (i < 10 ? "0" : "") + i;
    var inputObj:Object = getChildByName(inputName);
    inputArray.push(inputObj);
}
for (var o:int = o; o <= numMatrice; o++) {
    var outputName:String = "out_" + (o < 10 ? "0" : "") + o;
    var outputObj:Object = getChildByName(outputName);
    outputArray.push(outputObj);
}

Je m’attends donc là, a avoir 2 tableaux (inputArray et outputArray) qui contiennent chacun une partie du chemin dont j’ai besoin :

  • in_01
  • out_01

Et plus tard dans le code, j’ajoute la fin du chemin pour que ça agisse sur un champ de texte déjà existant ex:out_01.txt_output :

for (var j:int = 0; j < inputArray.length; j++) {
    var textField:TextField = inputArray[j].txt_input;
    fct_greek(textField); // converti les lettres en lettres grecques
}
for (var p:int = 0; p < outputArray.length; p++) {
    var textField2:TextField = outputArray[p].txt_output;
    fct_seculaire(textField2); // converti les a et les b en x et en 1 respectivement
}

Mais voilà, ça marche parfaitement lorsqu’il s’agit de remplacer les champ des inputs directements. Mais quand il s’agit de restituer des choses en output ça ne marche pas… Je ne comprend pas pourquoi la partie output ne fonctionne pas. J’arrive donc à modifier mes lettres grecques à partir de inputArray[j].txt_input, en revanche je n’arrive pas à modifier mon texte dans outputArray[p].txt_output.

Exemple d’erreur :

TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.

Est-ce que vous auriez des pistes d’idées ?

Les fonctions en question :
function fct_greek(textField:TextField):void
{
    textField.text = textField.text.split("a").join(String.fromCharCode(945)).split("b").join(String.fromCharCode(946));
}
function fct_seculaire(textField2:TextField):void
{
    textField2.text = textField2.text.split(String.fromCharCode(945)).join("x").split(String.fromCharCode(946)).join("1");
}
+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte