J'ai une classe externe dans un fichier .as, mon problème est que je ne peux pas accéder aux éléments sur la scène. Le code comme stage.txtfield.text ou this.parent.txtfield.text ne fonctionne pas. Le champ txt est le nom d'installation d'un champ de texte dynamique.Actionscript3: comment accéder aux éléments de la scène à partir de classes externes?
Répondre
Cela dépend un peu de la classe externe. Si elle étend DisplayObject (ou tout petit-fils de DisplayObject), vous pourrez accéder à la propriété stage dès qu'elle est ajoutée à la liste d'affichage (qui est quand elle est ajoutée à la scène ou à tout autre DisplayObjectContainer). liste d'affichage).
Pour écouter qui utilisent le code suivant dans la classe externe:
addEventListener(Event.ADDED_TO_STAGE, AddedToStage);
//...
private function AddedToStage(e:Event):void
{
trace("TextField text" + TextField(stage["textfield"]).text);
}
Si ce pas un displayObject ou si elle ne va pas être sur la liste d'affichage, la meilleure chose serait proberly être pour lui donner la les objets auxquels il doit accéder (comme le TextField), soit dans le constructeur ou dans un appel de méthode séparé. Vous pourriez lui donner une référence à l'étape elle-même, mais ce ne serait pas très générique si par exemple vous avez besoin de la classe pour manipuler un TextField dans MovieClip.
Vous pouvez donner à la référence au TextField avec ce code:
//In any DisplayObject on the display list (could be inside a MovieClip or on the Stage itself)
var manipulator:MyClass = new MyClass(TextField(stage["textfield"]));
//In the external class
public class MyClass
{
publich function MyClass(txt:TextField)
{
trace("TextField text" + txt.text);
}
}
Rappelez-vous que ce code ne vérifie pas si le champ de texte est en fait là. Vous devriez d'abord vérifier cela et lancer une erreur correcte pour faciliter le débogage.
La racine et la scène ne sont plus globales, vous devez donc les exposer via votre classe racine de document si vous souhaitez les utiliser dans des classes externes.
Quelques références: http://www.kirupa.com/forum/showthread.php?p=1952513
- 1. Comment accéder aux éléments de la case à cocher iFrame
- 2. Comment accéder aux classes de parents fantômes à ruby?
- 3. accéder aux éléments xslt de codebehind
- 4. Comment accéder aux éléments DOM mxml (Flex)?
- 5. Comment accéder aux services SOAP à partir de l'iPhone
- 6. Comment accéder aux positions des boutons à partir de codebehind?
- 7. Eclipse RCP: Comment accéder aux classes internes de plugins?
- 8. Comment accéder aux propriétés des éléments à l'intérieur d'un répéteur?
- 9. Comment accéder aux éléments de liste dans une liste
- 10. Impossible d'accéder aux ressources définies dans EAR à partir des classes externes (JBoss 5.1)
- 11. Accéder aux éléments iframe en JavaScript
- 12. AS3 - Accès aux éléments de la bibliothèque en dehors de la classe Document
- 13. Comment accéder aux éléments d'une carte C++ à partir d'un pointeur?
- 14. Comment accéder aux valeurs des éléments imbriqués dans le DOM?
- 15. Accéder aux variables de classes statiques en C++?
- 16. Existe-t-il un moyen d'appeler des éléments externes à partir d'une feuille de style xsl?
- 17. Accéder aux objets SharePoint à partir de Delphi
- 18. Comment accéder aux classes d'effets GDI + en C#
- 19. Accéder aux propriétés de l'objet à partir du délégué
- 20. Accéder aux composants .NET à partir de Powershell
- 21. Comment accéder aux pièces jointes à partir du courrier Notes?
- 22. Comment accéder aux variables de session à partir de la classe Base dans ASP.Net?
- 23. Android: Accéder aux vues enfant à partir d'un ListView
- 24. Comment puis-je accéder aux éléments iframe avec Javascript?
- 25. asp.NET: Comment accéder aux éléments générés par le répéteur?
- 26. Comment accéder aux classes d'un autre ensemble à des fins de tests unitaires?
- 27. AS3 accéder champ de texte dynamique sur scène d'une classe
- 28. Comment puis-je accéder aux variables à partir d'URL provenant de la méthode GET dans ASP.net?
- 29. Accéder à proc_dir_entry à partir de proc_fops.open?
- 30. Comment accéder aux éléments de la boucle externe depuis des boucles imbriquées?
Il est rare, que je vois une réponse pour AS3 qui est rond et clair, vous le frappez sur la tête. Si la classe est un DisplayObject de quelque manière que ce soit, et dans la liste d'affichage, elle a accès à la scène. Si votre classe n'est pas un objet DisplayObject, créez un crochet dans le constructeur pour passer une référence à la scène :) –