Hey
Jeg forsøger bare at lave et tekstfelt med embedded font som får sat noget af teksten til bold via htmltext.
Jeg fatter ikke hvorfor det ikke virker:
var fmtText:TextFormat = new TextFormat();
fmtText.font = "Verdana";
var tText:TextField = new TextField();
addChild(tText);
tText.antiAliasType = AntiAliasType.ADVANCED;
tText.sharpness = 50;
tText.thickness = 0;
tText.selectable = false;
tText.width = 220;
tText.multiline = true;
tText.wordWrap = true;
tText.autoSize = TextFieldAutoSize.LEFT;
tText.defaultTextFormat = fmtText;
tText.embedFonts = true;
tText.x = 10;
tText.y = 10;
tText.htmlText = "Dette skal være bold, men dette skal være normal";
Både regular og bold er embedded i mit library.
Jakob
12 kommentarer
Jamen hvor sætter du at den første del af teksten skal være bold?
mangler du ikke bare
<b>fed tekst</b>??Hov. Nej det har jeg med, den må være blevet spist af flashforum.
Skulle nok have lavet det i kodetags.
Du skal have to fonte i Library.
En der er normal og en der er fed.
Husk at give dem et Class name, og sørg for at de kan bruges af Actionscript. Embed i frame 1.
I nedenstående eksempel har jeg tilføjet "Verdana_12pt_std" som class name i Library for fonten, der er normal Verdana og "Verdana_12_pt_b" for den fede.
Hvis du bruge htmlText, behøver du ikke at bruge TextFormat.
tText.embedFonts = true skal sættes før:
tText.antiAliasType = AntiAliasType.ADVANCED;
tText.sharpness = 50;
tText.thickness = 0;
I din initListener kan du benytte Font.registerFont(font:Class);
Herefter kan alle dine textfields benytte Verdana og Verdana Bold.
Frame 1 script:
Håber det hjælper.
Hey
Tak for svar, og undskyld min sene respons.
Jeg har lavet alt som i dit eksempel, men stadig intet held. Den bliver ikke fed.
Jakob
Det er da underligt! Hvis koden er den samme, forstille jeg mig, at indstillingerne for fontene i Library (CTRL+L) skal justeres lidt.
Du kan hente min AS3 fla og swf fil her: http://www.baldfilm.dk/flashforum/fontembed/fontEmbedding_01.zip
Hjælper det?
Hey
Ja, det er meget underligt. Jeg har selv testet lidt mere, det viser sig at det virker på andre computere men ikke min. Hvis jeg sender min fla til en kollega og han tester, så virker det. Dit eksempel (tak for det) virker heller ikke hos mig.
Det er altså ikke fremgangsmåden der er noget galt med, men et eller andet på min mac. Jeg har prøvet andre fonte også, men med samme resultat.
Jeg skal snart installere cs5, det kan være at den løser problemet. Ellers er jeg åben over for gode forslag.
Jakob
Er de andre computere, hvor det virker, PC'er med Windows?
Og har du "Verdana" fonten på din MAC?
Grunden til spørgsmålet er, at Verdana er en Microsoft font. Kan du eventuelt prøve med en anden font og se om det virker. fx Helvetica.
Du skal i så fald ændre i font properties i Library, så det er Helvetica og ændre i koden
tf.htmlText = "<font face='Helvetica'><b>Fed</b> ikke fed</font>";De andre er også mac. Verdana er på mac, og den virker jo også. Hvis jeg skriver:
Så bliver det kun bold. Så begge fonte er der og kan bruges.
J
Når du benytter html text er der ikke brug for TextFormat!
Det er netop pointen ved at benytte html. (og stylesheets).
Så fjern textFormat og defaultTextFormat referencerne i koden.
Husk:
før du begynder at lave nye textFields;
Du kan lave en lille test efter Font.registerFont, der viser hvilke fonte, der er embedded i din swf fil således:
Hvis du kun får vist 1 font, må der være noget, der skal ændres i dine font properties i Library.
tText skal have tText.embedFonts = true som det første efter du har erklæret dit TextField. Altså FØR du benytter AntiAliasType.ADVANCED, tText.sharpness og tText.thickness.
Du sætter den font, der skal benyttes i tText.htmlText.
Hverken at jeg benytter texformat, at embedFonts er placeret anderledes eller at jeg ikke bruger registerFont er skyld i at det ikke virker. Mit eksempel som det var virkede på de andre macs. Men jeg har alligevel rettet det til:
Tak for koden til at tjekke hvilke fonte der er embedded, det er smart.
Jeg forstår ikke hvad jeg skal bruge registerFont linierne til. Hvis jeg undlader dem er output:
0 Verdana, regular, embedded
1 Verdana Bold, regular, embedded
Hvis jeg tager dem med er output:
0 Verdana, regular, embedded
1 Verdana Bold, regular, embedded
2 Verdana, regular, embedded
3 Verdana Bold, regular, embedded
Jeg ville synes det første ser mest rigtigt ud? Anyways, jeg takker for jeres hjælp, og ser om ikke problemet løser sig selv når jeg installere cs5. For der må være et eller andet helt galt på min maskine.
Jakob
Font.registerClass er, som du nævner, unødvendig i denne situation.
Men nu er jeg nysgerrig. Hvilke faktorer gør din opsætning eller dit system anderledes?
Kan jeg bede dig - om du orker - om at opgive dine system data ala OS version, Sprog, CS x. update, player version (debug?). Eller hvad du kunne komme i tanke om i den henseende.
Hvordan ser din swf ud, når du lægger den online - er på en ekstern server?
Jeg spørger for at afdække om det er et lokalt problem.
Hvis du uploader din swf til et for dig tilgængeligt online site og tester den der, er resultatet så det samme hos dig? Er der forskel i forhold til andre maskiner?
Hvis du tester din swf på andre Mac'er / pc'er, duer det der?
Hvis det virker på de andre Mac'er, men ikke din, er det ikke sikkert at CS5 løser problemet.
Prøv deres prøveversion!
Ja det er pænt underligt, kaldte spørgsmålet newbie da jeg troede at det var mig der havde overset en eller anden dum fejl.
Her er link til en swf jeg selv har eksporteret: http://encourage.dk/previews/texttest/
Og her er en som er eksporteret af min kollega: http://encourage.dk/previews/texttest/test2.html
Jeg kan se at den er fed i det sidste eksempel, så problemet ligger ikke i playeren, men sikkert i compileren.
CS4 - opdateret med nyeste updates.
Mac book pro os X 10.6.4
Jeg har meget svært ved at se hvad der skulle være fejlen ud over flash, desværre har jeg opbrugt trial versionen
Men venter på den nye, forhåbentlig kommer den snart. Man kunne tænke at det var et problem med fonten, men jeg har prøvet andre fonte også, med præcis samme resultat.
Jakob