Changer un TextField.text [AS3] [RESOLU] - Flash/ActionScript - Programmation
Marsh Posté le 07-11-2008 à 03:00:13
Tu devrais regarder dans l'aide, il y a toute une page sur la migration AS2-AS3.
La propriété text est devenue la fonction appendText().
Sinon, je comprend pas trop ton probleme de scope.
FAudrait que tu mettes tout le code ou le message d'erreur.
Marsh Posté le 07-11-2008 à 15:31:37
l'erreur annoncé a le code 1119, je ne trouve rien de signifiant...
appendText c'est pour rajouter du text... (lui marche apparemment entre différents niveau)
La propriété .text n'as pas été remplacé !
Je me rend compte que ça ne marche pas de l'autre sens (de root vers un movieclip contenant un textfield)
Y a t'il un package en particulier à importer ?
Sinon, la fonction replaceText() marche dans le sens root=>enfant mais toujour pas l'inverse...
Je prépare .FLA pour vous montrer...
Marsh Posté le 07-11-2008 à 15:54:01
Voila :
Dans ce fichier, un textfield dans la root, puis dans le seul movieclip présent, de quoi sencer changer le contenu de ce parent.textfield...
http://abais.free.fr/test_Abais_AS3.zip
Marsh Posté le 10-11-2008 à 11:55:59
Resolu !
Marsh Posté le 06-11-2008 à 11:16:32
Flasheur, Flasheuse,
Comme beaucoup de monde, je me met à l'AS3...
Mais en AS3, on ne peut plus attribuer directement une variable au contenu d'un textfield comme en AS1 ou 2.
En effet, on doit maintenant le faire de la sorte : MyTextField.text = "mon texte"
Seulement voila, je n'arrive pas à changer MyTextField.text ailleurs que dans son propre emplacement...
Dans mon exemple, MyTextFieldest situé dans ma racine.
A partir d'un sous-clip, j'ai essayé le code : root.MyTextField.text = "PaTaTi TaTa" Mais rien n'y fait, erreur !
J'ai donc trouver une parade, dans mon sous clip, j'ai root.MonTexte = "PaTaTi TaTa" (provoqué par un clique notamment...)
Puis dans ma racine:
var MonTexte = "rien"
var MyTextField:TextField = new TextField();
addChild(MyTextField);
addEventListener(Event.ENTER_FRAME,ChangeTexte);
function ChangeTexte(e:Event) {
MyTextField.text = MonTexte ;
}
ça marche bien, mais... C'est pas très propre... Ne voyez vous pas une autre solution ?
RESOLU
Au lieu de : root.MyTextField.text = "PaTaTi TaTa"
=======> MovieClip(root).MyTextField.text = "PaTaTi TaTa"
En effet, la plupart des commandes ne peuvent être émise que sur des clip (techniquement, root peut être autre chose) donc, il faut rassurer le compilateur sur le fait que root est un clip, d'où le MovieClip(root) ....
Message édité par abais le 10-11-2008 à 11:54:46
---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.