• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-11-2009, 12:34   #1 (permalink)
Self-proclaimed Genius
 
Benutzerbild von genesys
 
Registriert seit: Jul 2002
Ort: schweiz
Beiträge: 282
Antialiasing of Systemfonts problem (problem with Bitmapdata.draw())

Hi!

habe ein problem! ich muss systemfonts antialiased darstellen (kann keine fonts embedden weil das swf klein sein muss). Deshalb hab ich diese funktion geschrieben um den text zu antialiasen:

Code:
		public function renderTextField():BitmapData{
			var w:int = this["mainTextField"].textWidth+10;
			var h:int = this["mainTextField"].textHeight+10;
			var bitmapData:BitmapData = new BitmapData(w*3,h*3,false,0x000000);
			var antialiased:BitmapData = new BitmapData(w,h,false,0x000000);
			var transf:Matrix = new Matrix();
			transf.scale(3,3);
			bitmapData.draw(this["mainTextField"],transf);
			var bitmap:Bitmap = new Bitmap(bitmapData,"auto",true);
			transf = new Matrix();
			transf.scale(1.0/3.0,1.0/3.0);
			antialiased.draw(bitmap,transf,null,null,null,true);
			return antialiased;
		}
das funktioniert ja auch schön, aber es gibt ein seltsames problem! das aufskalieren mit der transformationsmatrix kann manchmal den Zeilenumbruch ändern! also z.b. ist dann in der gerenderten version das letzte wort einer zeile stattdessen als erstes auf der nächsten zeile. Dadurch ist dann natürlich auch die berechnete textWidth und textHeight allenfalls falsch. Wie kann ich das verhindern, dass das skalieren des Textfeldes sich auf den zeilenumbruch des textes auswirkt?

danke!
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt - Albert Einstein
genesys ist offline   Mit Zitat antworten
Alt 17-11-2009, 13:52   #2 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 5.626
Solche Probleme treten bei AntiAliasType.ADVANCED gehäuft auf. Deshalb setze ich Texte, die ich skalieren oder bewegen muss immer auf AntiAliasType.NORMAL.

Wenn das noch nicht reicht würde ich nicht das TextField selbst skalieren, sondern es in ein Sprite setzen und dieses dann skalieren.
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
BitmapData.copyPixels(), BitmapData.draw() & Graphics.beginBitmapFill Kason Bridges ActionScript 3 4 22-10-2009 19:08
BitmapData / Draw Problem evilson ActionScript 3 2 19-08-2008 11:51
bitmapdata.draw und sicherheitseinstellungen wm54 Flash 8 0 20-07-2006 23:30
draw (BitmapData.draw-Methode) boarter Flash 8 6 27-05-2006 15:36
BitmapData und DRAW API KlarkKent Flash 8 1 08-12-2005 19:33


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:25 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele