bonjour,
je n'arrive pas mettre un focus dans un champ sauf si je clique sur la scène alors pas de problème.
lorsque j'appelle mon fichier *.as au départ dans mon programme je fais suivre
stage.focus=champ afin que celui ci se positionne sur le champ une erreur s'affiche
"Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul."
j'arrive pas a situer le problème malgré des recherches sur le net
peut on m'expliquer le fonctionnement du focus lorsque plusieurs fichiers *.as sont imbrigues
merci car je cale


#1
Posté 18 February 2013 - 17:28 PM
#2
Posté 18 February 2013 - 17:55 PM
Bonjour frequencehightech.
Je suis assez surpris qu'une recherche ne t'ai pas apporté de réponses. Tu as là 2 problèmes très classiques de débutants.
Focus :
- si l'utilisateur ne clique pas sur le swf, celui-ci n'a pas droit au focus. Tu ne peux donc pas le déplacer vers l'objet de ton choix. C'est une raison de sécurité et on ne peut pas passer outre. Tu trouveras plein de remarques dans ce sens sur les forums. Une seule solution : s'arranger pour que l'utilisateur clic au moins une fois sur quelque chose.
Référence à objet null :
Vite fait : quand tu crées un objet, avec des classes, le code du constructeur est exécuté bien avant que l'objet ne soit affiché. Tant qu'il n'est pas affiché, il n'a pas de propriété stage, et si tu tentes d'y accéder, tu as cette erreur. La solution est d'attendre que l'objet soit ajouté à la liste d'affichage. Ça se fait avec l'écoute de l'événement ADDED_TO_STAGE. Je te laisses chercher avec ces mots clés pour avoir plus d'infos, tu verras que Ça ne manque pas.
[EDIT] ( 2 problèmes distincts, donc et qui n'ont rien a voir avec l'imbrication de fichiers .as… ) [/EDIT]
Je suis assez surpris qu'une recherche ne t'ai pas apporté de réponses. Tu as là 2 problèmes très classiques de débutants.
Focus :
- si l'utilisateur ne clique pas sur le swf, celui-ci n'a pas droit au focus. Tu ne peux donc pas le déplacer vers l'objet de ton choix. C'est une raison de sécurité et on ne peut pas passer outre. Tu trouveras plein de remarques dans ce sens sur les forums. Une seule solution : s'arranger pour que l'utilisateur clic au moins une fois sur quelque chose.
Référence à objet null :
Vite fait : quand tu crées un objet, avec des classes, le code du constructeur est exécuté bien avant que l'objet ne soit affiché. Tant qu'il n'est pas affiché, il n'a pas de propriété stage, et si tu tentes d'y accéder, tu as cette erreur. La solution est d'attendre que l'objet soit ajouté à la liste d'affichage. Ça se fait avec l'écoute de l'événement ADDED_TO_STAGE. Je te laisses chercher avec ces mots clés pour avoir plus d'infos, tu verras que Ça ne manque pas.
[EDIT] ( 2 problèmes distincts, donc et qui n'ont rien a voir avec l'imbrication de fichiers .as… ) [/EDIT]
#3
Posté 18 February 2013 - 18:08 PM
bonjour,
merci pour la réponse mais mon programme doit pouvoir fonctionner sans l'aide de la souris
Si je comprend bien il est impossible de positionner le focus sans un click?
pour le 2 problème mon objet est bien afficher a l'aide de addChild. C"est seulement lorsque j' insert stage.focus que le problème s'affiche
merci pour la réponse mais mon programme doit pouvoir fonctionner sans l'aide de la souris
Si je comprend bien il est impossible de positionner le focus sans un click?
pour le 2 problème mon objet est bien afficher a l'aide de addChild. C"est seulement lorsque j' insert stage.focus que le problème s'affiche
#4
Posté 18 February 2013 - 18:23 PM
frequencehightech, le 18 February 2013 - 18:08 PM, dit :
merci pour la réponse mais mon programme doit pouvoir fonctionner sans l'aide de la souris
Si je comprend bien il est impossible de positionner le focus sans un click?
Si je comprend bien il est impossible de positionner le focus sans un click?
Oui.
frequencehightech, le 18 February 2013 - 18:08 PM, dit :
bonjour,
pour le 2 problème mon objet est bien afficher a l'aide de addChild. C"est seulement lorsque j' insert stage.focus que le problème s'affiche
pour le 2 problème mon objet est bien afficher a l'aide de addChild. C"est seulement lorsque j' insert stage.focus que le problème s'affiche
Si stage.focus fait planter, c'est que stage n'est pas définit.
Si stage n'est pas définit, c'est que l'objet n'est pas affiché.
Sans doute parec que le code du focus est exécuté avant le addChild.
D'où la solution d'écouter l'événement l'événement ADDED_TO_STAGE…
#5
Posté 18 February 2013 - 18:42 PM
merci beaucoup ,pour ta réponse et ton aide
bien amicalement
emile
bien amicalement
emile
1 utilisateur(s) li(sen)t ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)