Est-ce que quelqu'un sait s'il est possible d'accéder à des éléments enfants dans un fichier SWC? J'ai créé quelques MC's et à l'intérieur de certains de ces MC j'ai quelques textFields dynamiques. J'exporte le contenu vers un SWC et le charge dans mon projet Flex. Aucun problème de chargement ou d'accès aux éléments parents, ils s'affichent très bien. Mais je veux accéder aux textes imbriqués dans les MC et modifier le texte. Lorsque je débogue l'application, je peux voir les champs de texte en tant qu'éléments enfants. Il est tapé comme TextField et le nom de l'instance est le même que l'entrée dans l'EDI Flash mais je ne peux pas y accéder. Lorsque Flex compile, il renvoie une erreur indiquant qu'il ne reconnaît pas la méthode. J'ai essayé d'insérer actionscript sur le scénario, les classes externes liées et rien ne peut être accédé. Est-ce que quelqu'un sait d'une manière de faire ceci?Accès aux éléments enfants dans un fichier SWC
Répondre
Il est difficile de dire, puisque vous n'êtes pas montrer votre code qui échoue, mais je soupçonne que vous faites:
import myswc.*;
myswc.Symbol1.myTextField.text = "Foo"
au lieu de
var clip:MovieClip = new myswc.Symbol1();
clip.myTextField.text = "Foo"
J'ai placé mon swc dans mon chemin de construction Flex sous un chemin de bibliothèque. Par conséquent, les composants auxquels j'essaie d'accéder sont instantanément disponibles au moyen de var comp: Sprite = new componentFromSWC(); alors je peux accéder à cet élément en référençant la variable comp. Il n'y a aucune importation requise car c'est dans le chemin de compilation. Lorsque j'ai essayé votre méthode de référencement du symbole/élément via le swc, il ne parvient pas à le reconnaître - lance une erreur de compilation. Y at-il un autre wa que je devrais mettre en place mon importation swc? Cela a juste semblé fonctionner d'abord et j'ai supposé qu'il pourrait accéder à tous les éléments. –
L'importation n'est nécessaire que si vous avez exporté vos symboles dans un package en plus de celui par défaut. C'est une bonne pratique d'emballer vos classes correctement. "myswc" n'est pas un nom magique ici, c'était un espace réservé pour n'importe quel paquet que vous avez utilisé dans vos exportations de symboles. Plus précisément, Sprite n'est pas une classe dynamique - donc au lieu de 'comp.myTextField.text', essayez' comp ["myTextField"]. Text'. –
J'ai le même problème. Encore, ce n'est pas exactement un problème basé sur le code, mais je vais essayer d'expliquer: –
Je viens de tombé sur ce aussi bien , et je suis curieux de savoir pourquoi vous suggérez qu'il n'utilise pas le nom de l'instance puisque myTextField est évidemment un nom d'occurrence pour le TextField qu'il utilise ....
Je pense que vous allez devoir nous montrer ce que vous ' re essayer - votre com ment à Cory donne l'impression que vous essayez simplement d'accéder aux champs de la classe importée. Sont-ils publics? Est-ce que leurs types sont exportés dans le CFC? –
Je sais, le problème est, je ne sais pas comment vous montrer, ce n'est pas tout le code, capture d'écran peut-être? J'exporte chaque composant pour l'exécution dans l'IDE Flash via l'option Linkage sur chaque MC, de sorte que la classe exportée est ce que je peux accéder à travers le swc. Je ne suis pas sûr de savoir comment rendre l'élément enfant (textfield) public de cette façon cependant. C'est la première fois que j'utilise un swc. C'est la bonne route? Im placer chacun de ces composants dans un autre élément parent, conteneur et l'exporter en tant que swc. –