2010-01-04 7 views
0

J'ai une poignée de sprites que je tente de regrouper via addChild(). Voici quelques pseudo-code illustrant ce que je voudrais accomplir:AS3: sprites de regroupement

import nav.text.TextSprite; 

spr1:Sprite = new Sprite(); 
spr1.graphics.clear(); 
spr1.graphics.beginFill(0x000000); 
spr1.graphics.drawRect(0,0,100,100); 

txt1:TextSprite = new TextSprite; 
txt1.text = "hello"; 

spr1.addChild(txt1); 

//this is what isn't working: the sprite is hidden but not the text 
spr1.alpha = 0.0; 

Pour une raison quelconque, je ne peux pas sembler obtenir le TextSprite pour dessiner correctement ... Tout ce qu'il est est un Sprite avec un champ de texte ajouté à ce . Je pense que tout fonctionne là, mais je peux avoir quelque chose de mal w/r/t en s'assurant que tous les enfants TextSprites sont regroupés correctement.

Je devrais mentionner qu'il se positionne correctement; mais la propriété alpha ne répondra pas comme je le souhaiterais. I.E., l'image-objet à laquelle TextField est attaché permettra à son alpha d'être défini mais le texte reste visible.

Des pensées?

Répondre

1

Vous devez intégrer la police en utilisant textfield.embedFonts = true. Si votre texte disparaît lorsque vous faites cela, comment allez-vous incorporer la police (en utilisant la méta-balise Flex ou en utilisant l'IDE Flash?), Vérifiez que vous ne modifiez pas le poids de la police (mettre le texte en gras lorsque vous avez seulement intégré la police de poids normal) et si vous utilisez un format de texte, assurez-vous d'appliquer le format de texte APRÈS avoir défini la propriété textfield.text. Vous pouvez contourner cela en utilisant textfield.defaultTextFormat.

+0

Merci. Je n'étais pas au courant que vous deviez incorporer séparément. Avez-vous une référence pour l'intégration à l'aide de l'API Flash? J'ai l'impression que cela pourrait être plus simple pour nous, la méta-étiquette Flex, mais je serais intéressé par l'apprentissage des deux méthodologies. – jml

+0

J'ai vu ceci: http://www.trajiklyhip.com/blog/index.cfm/2007/7/18/Embedding-Fonts-in-Flex, que je ne suis pas très friands de. Je pense que je préférerais utiliser la balise meta intégrée plutôt que de sortir de l'application Flex pour kludge. – jml

+0

Quelqu'un peut-il me dire si c'est vraiment le seul moyen d'obtenir la taille du fichier? J'ai aussi vu ceci: http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&file=performance_118_22.html#227950 qui pourrait aider ... – jml

3

Vous avez probablement besoin d'intégrer la police dans votre champ de texte. Essayez de changer le x, y de spr1 et voyez si txt1 se déplace avec lui. Si c'est vraiment un enfant, il répondra à la nouvelle position.

+0

Je crois me souvenir qu'un collaborateur ne pouvait pas faire pivoter le texte tant que la police n'était pas incorporée, cela signifie que le niveau alpha serait sur le même bateau. – invertedSpear

+0

Les TextField dynamiques avec des polices non incorporées font des choses bizarres quand il s'agit de manipuler leurs conteneurs. Par exemple, essayez de placer un masque sur un objet TextField avec l'incorporation désactivée et vous ne verrez jamais le texte. – sberry

+0

ok, bien je fais mytextfield.embedFonts = true; juste après que j'ai mis les accessoires de police et le format via TextFormat(), et maintenant je ne peux pas voir le texte. Qu'est-ce que je fais mal? dois-je le faire après l'avoir ajouté à la liste d'affichage? – jml