2011-02-03 2 views
0

J'essaie d'utiliser des éléments compilés et le code d'un swc. Dans un nouveau fichier, je sélectionne le fichier à inclure lors de l'exportation. Lorsque créer l'instance dans la timeline du code fonctionne et je peux voir les actifs qui sont à l'intérieur du swc et tracer une propriété du même objet. Le problème est seulement quand faire la même chose dans un MovieClip, ne peut pas atteindre les actifs (MovieClip) mais je peux toujours tracer des propriétés de la classe.classe d'instance de swc à l'intérieur d'un MovieClip

J'ai téléchargé les fichiers de travail: master.fla est celui qui crée le swc. template.fla est l'endroit où je teste le swc.

files (Ce sont cs4 fla + SWC + .as)

EDIT: Comment reproduire le problème que j'avais:

.1 créer une nouvelle master.fla et faire compiler un swc. .2 Dans la chronologie master.fla, créez un champ de texte, donnez-lui le nom de l'occurrence "tfield" et créez un MovieClip à partir de celui-ci. .3 Créez une classe TextBox.as et définissez une variable publique "tfield" (cela ramassera l'élément TextField que vous avez dans votre film). .4 En bibliothèque, liez le MovieClip nouvellement créé à la classe TextBox.

.5 Exporter et vous devriez voir une instance de la classe TextBox.

utilisant le SWC:

.1 Créer une nouvelle fla et faire utiliser la master.swc en tant que source

.2 ouvert première image calendrier et écrire le code suivant:

var tf : TextBox = new TextBox(); 
addChild(tf) 

Cela devrait fonctionner comme prévu, en créant une instance de TextBox et vous devriez voir le TextField à l'intérieur. .3 commentez le code précédent et écrivez le même code, mais cette fois-ci dans un MovieClip et déposez-le dans la timeline. Bien que le code fonctionne le "tfield" n'est pas accessible. Vous ne pouvez pas non plus le voir.

SOLUTION: Comme l'a souligné Daniel juste donner un identifiant de liaison à l'MovieClip qui contient le code (NE PAS donner l'identifiant de classe TextBox, juste faire créer une nouvelle classe comme « lalala »).

Merci Daniel!

Répondre

1

ajouter un identifiant de liaison à tf dans le modèle

+0

merci beaucoup Daniel. C'était ça! Je lisais ma question et je me suis expliqué comme un cul. Je vais mettre à jour ma question en espérant que cela a plus de sens pour les autres s'ils se retrouvent dans la même situation. Ensuite, encore une fois, merci monsieur! –

+0

vous pouvez également ajouter 'var b: TextBox' au scénario principal. L'autre chose que vous pouvez faire est d'ajouter un identifiant de liaison à un seul MovieClip qui a la référence: 'var ref: TextBox' il semble que le compilateur Flash a un problème à créer la classe. Je n'utilise que le compilateur Flex et n'ai jamais vu ce problème auparavant. – Daniel

0

fixed
ajouté TextField initialisation à TextBox.as (pour éviter référence null lors du traçage tfield.text) et rebaptisés tf: TextBox-tb:TextBox pour faire nom différent de tf sur la scène

+0

salut www0z0k, merci pour le temps, je pense que je ne pouvais pas m'expliquer clairement. Le problème n'est pas dans le modèle lors de l'instanciation de l'objet TextBox qui provient du swc.Je peux tracer la variable clé, donc la classe est en cours d'exécution. Le problème concerne le tfield TextField qui n'apparaît pas lorsque j'instancie depuis un movieCLip() depuis le scénario principal, cela fonctionne bien. Ceci plonge ma tête =) –

+0

@ dome - puis-je vous demander de mettre à jour les fichiers? J'ai ajouté le TextBox (et tfield était visible) dans la première image de l'instance tf sur scène – www0z0k

+0

désolé pour mon explication boiteuse, j'ai mis à jour le poste, maintenant il devrait être plus facile de comprendre le problème que j'avais. Dans votre mise à jour, vous créez une nouvelle instance de TextField, mais elle devrait être celle qu'elle contenait dans MovieClip. –

Questions connexes