Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-08-2003, 23:07   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Beiträge: 3
Question Breite eines dynamischen Textfeldes ist unterschiedlich!?

Hallo,

ich zerbreche mir gerade den Kopf an dynamischen Textfeldern.

Mittels dem Attribut autoSize sollte sich das Attribut _width ja automatisch anpassen, wenn Text oder Formatierung geändert werden. Allerdings geschied das bei mir nicht direkt, sondern je nach Zeitpunkt der Abfrage von _width ergeben sich andere Werte. Folgender AS-Code in einem MC zeigt mein Problem:

onClipEvent(load)
{
this.txtFormat = new TextFormat( "Verdana", 10, 0xFFFFFF, true, false, false, "", "", "center", 0, 0, 0, 1);

_root.createTextField( "tf", 9, 0, 0, 60, 20 );
_root.tf._visible = true;
_root.tf.multiline = false;
_root.tf.wordWrap = false;
_root.tf.border = false;
_root.tf.text = "profil";
_root.tf.autoSize = "center";
_root.tf.selectable = false;
_root.tf.setTextFormat( this.txtFormat );
this.next = "produktionen";
}
onClipEvent(mouseUp)
{
trace( "before" + _root.tf._width );
_root.tf.text = this.next;
_root.tf.setTextFormat( this.txtFormat );
trace( "after" + _root.tf._width );
if( this.next == "projekte" ) {
this.next = "produktionen";
}
else {
this.next = "projekte";
}
}

Zwei aufeinanderfolgende Breitenangaben sollten eigentlich immer gleich sein. Bei mir kommt es jedoch zu folgender Ausgabe:

before35
after80
before80
after66
before56
after80
before80
after66

Die Breite beim Setzen von "projekte" wird also verzögert berechnet...

Was passiert da? Mache ich was falsch und wenn ja was?

Dank im Voraus für die Hilfe
trAc3
trAc3 ist offline   Mit Zitat antworten
Alt 23-08-2003, 23:37   #2 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Ort: mars
Beiträge: 90
hi,
beim setzen des t-formates setzt du die Absatzausrichtung nach "center",
um jedoch die _width korrekt von links zu errechnen muss der absatz natürlich
auf "left" bzw null und nicht auf center gesetz werden, da du ja schon mit autoSize = "center"; zentrierst.

ActionScript:
  1. this.txtFormat = new TextFormat("Verdana", 10, 0xFFFFFF, true, false, false, "", "", null, 0, 0, 0, 1);

hoffe es hilft dir
hickyykid
whiskeycola ist offline   Mit Zitat antworten
Alt 24-08-2003, 01:57   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Beiträge: 3
Thumbs up

Unglaublich, das funktioniert!

Warum ist mir allerdings noch etwas schleierhaft: Wenn autoSize die Breite dynamisch anpasst, dann sollte doch egal sein, ob der Text zentriert, links- oder rechtsbündig ist. Und einen Grund für die zwei unterschiedlichen Textbreiten von ein und demselben Text gibt es mir leider auch nicht. Vielleicht könntest du das nochmal kurz erläutern?

Vielen Dank auf jeden Fall
trAc3
trAc3 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 22:01 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele