2009-04-28 11 views
3

Je code dans AS3 et je veux ajouter un trait au texte que j'affiche à l'écran. Mon code actuel est:Comment ajouter un contour au texte dans AS3?

format = new TextFormat("BN Elements", 14, 0xEEEEEE, false, false, false, null, null, "left"); 
format.font = "BN Elements" 
scoreText = initText(starsleftText, format, "", 160,5, 545, 61); 
scoreText = "Stroke This Text"; 

Comme le texte est généré dynamiquement je ne peux pas créer un objet texte dans Flash IDE - où je sais que d'ajouter un coup je peux utiliser la fonction « lueur » mis à 1000% et faible qualité.

Je suppose que ma question est, comment puis-je appliquer l'effet de filtre "lueur" avec des propriétés similaires dans AS3 directement? Ou existe-t-il une autre fonction "coup" que je ne connais pas?

Répondre

5

Il est assez facile:

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/filters/GlowFilter.html (Il y a un exemple en bas de la page)

Je ne sais pas s'ils ont ajouté quelque chose de nouveau dans la mesure où l'ajout d'un vrai coup, mais le filtre de lueur «coup» fonctionne aussi bien avec le code.

Vous pouvez aussi créer un filtre de cintreuse de pixels qui vous donnerait un peu plus de contrôle sur l'effet, je ne peux pas sembler trouver là-bas tout ceux qui sont déjà écrits bien :(

+0

oh aussi, attention, si le texte est sélectionnable, l'utilisation du filtre de préchauffage ajoute également un coup à la sélection. – quoo

+1

Je ne sais pas si je dirais "tout aussi bien" ... J'ai passé de nombreuses heures à essayer d'obtenir un trait de texte basé sur la lueur pour correspondre à un comp effectué dans Illustrator. –

+0

Je pense que vous avez mal lu mon commentaire, j'ai dit qu'il va l'ajouter "aussi bien" pas "tout aussi bien". – quoo

1

Flash génère ses coups de la Comme vous utilisez du texte de manière dynamique (pas dans la programmation), Flash peut afficher soit 1) du texte de périphérique dessiné par le système d'exploitation, soit 2) du texte incorporé dans votre fichier SWF. Dans le premier cas, Flash n'a pas (actuellement) accès aux bords pour les effleurer. Dans la seconde, Flash utilise un sous-rendu spécialisé pour le texte qui (de nouveau actuellement) ne supporte pas les caresses, ou d'ailleurs, tout ce qui ne remplit pas la couleur. Réponse courte: caresser du texte n'est actuellement pas pris en charge dans le runtime, bien que l'approche de lueur ou de pixel bender suggérée soit une bonne idée.

0

Il y a une autre façon, cependant. L'affichage des traits via BlurFilter fonctionne, d'une manière ou d'une autre, mais il est sale et très lent, car il y a tellement de crunching de pixels, ce qui n'est absolument pas nécessaire.

Une alternative (rapide et pratique) consiste à utiliser les filtres PBJ de Pixel Benders. J'ai écrit un accident vasculaire cérébral Filtre moi-même et cela fonctionne comme un charme. Vous pouvez même isoler l'image originale si vous le souhaitez, de sorte que le filtre vous donne juste le contour, sans l'image originale.

Les paramètres sont:

pixel4 couleur

force flotteur

seuil flotteur

bool isoler

http://www.file-upload.net/download-7344877/Stroke.pbj.html

Téléchargez ici et l'utiliser comme vous avez besoin, si vous aimez.

Si vous ne savez pas comment utiliser les filtres Pixel Bender dans Flash, google est votre ami. Il y a beaucoup de tutoriels à ce sujet.

Questions connexes