Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30-06-2004, 10:27   #1 (permalink)
a.k.a maddin79
 
Benutzerbild von madflanderz
 
Registriert seit: Jul 2003
Ort: berlin f-hain
Beiträge: 1.693
??? spinne ich oder textFormat.getTextExtent() ???

ich bin langsam am verzweifeln. ich bastel an einem chat und will smilies einfügen. mit textFormat.getTextExtent(str).textFieldWidth rechne ich die länge des textes aus, um das smilie korrekt zu plazieren.

dies alles klappt auch FAST wunderbar.

unter ein kleines beispiel. im textfeld output_txt ist eine schriftart (z.B. eine spezielle pixelfont) eingebettet.
somit wird die schrift auch auf systemen OHNE diese schriftart korrekt angezeigt, die schrift sieht genauso aus und hat optisch auch dieselbe länge.

JETZT KOMMT DER HAMMER: txt_fmt.getTextExtent(str).textFieldWidth liefert unterschiedliche werte. für untenstehendes beispiel:

253 wenn der im textfeld eingebettete font auf dem zielsystem vorhanden ist

211 wenn der font nicht vorhanden ist.


PHP-Code:
var txt_fmt = new TextFormat();
txt_fmt output_txt.getTextFormat();
    
str "wieso kommt hier die falsche länge raus??? ";
laenge txt_fmt.getTextExtent(str).textFieldWidth;
trace(laenge); 
WIESO kommen denn da unterschiedliche werte raus??? kann es sein das getTextExtent NUR bei fonts korrekt arbeitet, die auf dem system wo der film abgespielt wird vorhanden sind (auch wenn font eingebettet wurde) ???? und wenn ja - WARUM ????


wenn das wieder n bug von macromedia ist beiß ich in mein keyboard, aaarrggghhhh !!!!!!!! wozu bieten die klassen und funktionen an die nicht funktionieren????? oder mache ich was faslch ?

Geändert von maddin79 (30-06-2004 um 10:28 Uhr)
madflanderz ist offline   Mit Zitat antworten
Alt 07-07-2004, 16:51   #2 (permalink)
Neuer User
 
Benutzerbild von andilab
 
Registriert seit: Jun 2001
Ort: münster
Beiträge: 162
getTextExtend() funkitoniert nicht so wie geplant. ist wohln bug.
auf einem mac zum beispiel klappt das überhaupt nicht.
die breite von einem text kannst du auch feststellen, wenn du ein textfeld auf autoSize = true, bzw. left stellst, also

textfeld_txt.autoSize = true;

dann passt sich das textfeld der breite von text an und du kannst mit
textfeld_txt._width die breite vom textfeld ablesen..
andilab ist offline   Mit Zitat antworten
Alt 07-07-2004, 17:18   #3 (permalink)
a.k.a maddin79
 
Benutzerbild von madflanderz
 
Registriert seit: Jul 2003
Ort: berlin f-hain
Beiträge: 1.693
der andi schon wieder und ich sags ja nich gern aber wie im anderen thread kommst du leider etwas zu spät und ich habs mitlerweile auch mitbekommen wie es besser geht.

auch wenns ma wieder voll redundant ist poste ich hier trotzdem nochmal die NEUE verbesserte Viel coolere getTextExtend methode von xxxx (weiß den namen nich mehr):

PHP-Code:

_global
.TextFormat2 TextFormat;
TextFormat = function(){
        
super();
        
delete this.getTextExtent;
}
TextFormat.prototype = new TextFormat2();
TextFormat.prototype.getTextExtent2 TextFormat.prototype.getTextExtent;
TextFormat.prototype.getTextExtent = function ( the_str ) {
        
        
// create temporary textfield
        
_root.createTextField("getTextExtentTemp_txt"1000000111010);
        
// local reference to text field
        
var temp_txt _root "getTextExtentTemp_txt" ];
        
// set the text format
        
        
temp_txt.setNewTextFormatthis );
        
// populate textfield with string
        
temp_txt.text the_str;
        
// get dimensions
        
var temp_txt.textWidth;
        var 
temp_txt.textHeight;
        
// wrap in object
        
var textExtent = { widthwheight};
        
        
// remove the textfield
        
temp_txt.removeTextField();
        
        
// return dimensions object
        
return textExtent;
}
ASSetPropFlags(_global,"TextFormat,TextFormat2",131); 
klappt super und meine smilies lachen schon
madflanderz 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



Alle Zeitangaben in WEZ +1. Es ist jetzt 10:04 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele