PDA

Volledige versie bekijken : Embed text vs textfield in movieclip


treewhisperer
%Europe/Berlin %678 %2009, 17:16
Oke dus ik heb een textfield die ik geanimeerd wil hebben, om dat voor elkaar te krijgen moet ik het embedden, toch? Ik gebruik gewoon Verdana "standaard font dus" en ik heb alles gescript in FlashDevelop nu moet ik dus allerlei halsbrekende toeren uithalen om dit font te embedden. Is het niet netter om gewoon het textfield in een movieclip te plaatsen en deze als een container te gebruiken en te animeren?

Wat is de beste methode?

var nextTextField:TextField = new TextField()
//nextTextField.embedFonts = true;
nextTextField.autoSize = TextFieldAutoSize.LEFT;
nextTextField.text = "volgende>>" ;
nextTextField.selectable = false;
nextTextField.backgroundColor = 0xF37885;
nextTextField.background = true;
nextTextField.setTextFormat(new TextFormat("Verdana", 14, 0xFFFFFF));

addChild(nextTextField); Tweener.addTween(nextTextField, { alpha:1, time:4, transition:"easeInOutExp"});

BernardV
%Europe/Berlin %965 %2009, 00:10
Valt mee hoor die toeren :)

[Embed(source="fonts/fontFile.ttf", fontName="DeNaamDieJeWilt", fontWeight="normal", fontStyle="normal", unicodeRange="U+0000-U+007F, U+00C0-U+00FF")]
private var Normal:Class;

Dit doe je bv in je main class en dan zet je daar ook het volgende in je init of constructor ofzo:

Font.register(Normal);

Nu kun je een textFormat gebruiken met als fontnaam "DeNaamDieJeWilt"

treewhisperer
%Europe/Berlin %620 %2009, 15:53
Hmm die toeren vallen inderdaad mee thx! :)

BernardV
%Europe/Berlin %703 %2009, 17:53
Ik zei trouwens textformat, maar stylesheet werkt net zo goed!

//EDIT: En daarbij had ik ook nog niet echt antwoord gegeven op je vraag. Een tekstveld ongeacht waar je hem in hebt zitten kan bv niet geroteerd worden als het font niet geembed is. Dus voor animaties (meer dan links/rechts/boven en beneden) is een embedded font nodig.

Tom.
%Europe/Berlin %905 %2009, 22:43
En daarbij had ik ook nog niet echt antwoord gegeven op je vraag. Een tekstveld ongeacht waar je hem in hebt zitten kan bv niet geroteerd worden als het font niet geembed is. Dus voor animaties (meer dan links/rechts/boven en beneden) is een embedded font nodig.
Was de makkelijkste truuk niet om er een leeg dropshadowfilter aan te hangen? Dan wordt het een bitmap (toch?) waardoor je wel kunt roteren bijvoorbeeld.

Meen dat eens hier gelezen te hebben.

treewhisperer
%Europe/Berlin %444 %2009, 11:39
@BernardV thx voor je toevoeging. ;)
@Tom, weet je nog waar je dat gelezen heb en is dat niet meer een (hack) dan een echte oplossing, ik bedoel is dat netjes om te doen?

sjors-wat?
%Europe/Berlin %459 %2009, 12:01
Je tekst als bitmap maken in bijv. Photoshop is niet echt netjes, alleen als de tekst die
de schaduw nodig heeft maar een paar karakters lang is (en het dus lichter is dan de
filter) zou ik dat gewoon doen.

Aangezien tekst met een dropshadow wss voor een titel of menu is maakt het niet uit
dat een gebruiker de tekst niet kan selecteren. Want hij zal die tekst nergens voor
nodig hebben.

Groeten Sjors,

treewhisperer
%Europe/Berlin %436 %2009, 11:29
Het was overigens, Font.registerFont(Normal) "gotta love codehinting"

Maar dat terzijde, het werkt bijna, maar weet even niet wat ik nu nog fout doe. Ik krijg geen alpha toegepast?

[Embed (source = "../fonts/verdana.TTF", fontName = "Verdana", unicodeRange = "U+0000-U+007F, U+00C0-U+00FF")]
private var Normal:Class;

public function EmbedFontTest(){
Font.registerFont(Normal);
var textField:TextField = new TextField();
textField.text = "Mijn test tekst";
textField.alpha = 0.2;
textField.setTextFormat(new TextFormat("Verdana", 14, 0xffffff));
addChild(textField);

}

treewhisperer
%Europe/Berlin %694 %2009, 17:40
Stom zeg een regel vergeten. :[ Problem solved!

embedFonts = true;