Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-03-2004, 12:49   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 16
Dynamisch erstelltes Textfeld formatieren

Hallo zusammen,

hab hier ein dynamisch erstelltes Textfeld, das ich gerne noch formatieren würde.
Kann ich also die Schriftgrösse, Zeilenabstand, Schriftart verändern.

Als Schrift würde ich gerne eine Frutiger verwenden, keine Standardschrift also. Geht das? Wie muss ich die denn einbetten, damit sie im SWF zur Verfügung steht.

Gruss Mario
sixnine ist offline   Mit Zitat antworten
Alt 01-03-2004, 13:07   #2 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
schau mal in die sehr ausführliche hilfe von flash...
dort findest du einen begriff, der nennt sich 'TextFormat'

ist dort alles beschrieben...wie man was macht und wie man was zum laufen bekommt...




greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 13-05-2006, 15:55   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 16
Zeilenabstand verringern impossible??

Kann man den Zeilenabstand auch verringern??? mit
tf.leading = -10;
z.b hats bei mir nicht geklappt. Vergrössern hat funktioniert.
Falls jemand diesen ollen thread überhaupt nochmal beachtet schonmal vielen Dank für eine Antwort...
beenline ist offline   Mit Zitat antworten
Alt 13-05-2006, 17:31   #4 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
die getter/setter methode für das leading is der übeltäter.
aber du kannst die Sache umgehen, indem du den konstruktor nutzt, da wird das Attribut gesetzt, ohne überprüfung.

new TextFormat([font, [size, [color, [bold, [italic, [underline, [url, [target, [align, [leftMargin, [rightMargin,[indent, [leading]]]]]]]]]]]]])

also:
ActionScript:
  1. var o=new TextFormat(null,null,null,null,null,null,null,null,null,null,null,null,-5)
  2. this.createTextField("txt",1,0,0,0,0)
  3. txt.autoSize=true
  4. txt.multiline=true
  5. txt.setNewTextFormat(o)
  6. var str="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam blandit vestibulum enim. Nunc ut mauris ut eros rutrum sodales. Pellentesque."
  7. txt.text=str.split(" ").join(" \n")

deluxe

Geändert von Deluxe (13-05-2006 um 17:32 Uhr)
Deluxe ist offline   Mit Zitat antworten
Alt 18-05-2006, 12:20   #5 (permalink)
Neuer User
 
Benutzerbild von Compumaster
 
Registriert seit: Dec 2005
Beiträge: 73
Hallo ich bräcuhte mal bitte ne kleine starthilfe,

mein problem ist auch die formatierung von textfelder, jedoch nicht innerhalb, sonder eher nach außen hin.

ich habe zwei textfelder in einem MC wobei das txt2 10px abstand zum txt1 besitzt. hier der as-inhalt von txt2
PHP-Code:
mein_txt2._xmein_txt._x mein_txt._width abstand;
mein_txt2.autoSize "left";
//mein_txt2.leding = 60; 
txt2:
PHP-Code:
abstand=10;
mein_txt.autoSize "right"
die inhalte der beiden textfelder werden von externen var importiert und die felder selbst passen sich der größe entsprechnd dem geladenen inhalt an.

nun passiert es leider das sich beide felder überschneiden wenn txt2 mehr als 5 zeichen hat, auch der abstand wird dann missachtet oder bei zuvielen zeichen in txt1 wird txt2 aus dem MC-bereich geschoben was nicht passieren darf.

ich dachte mir nun das ich irgendwie txt2 noch einen festen wert zur äußeren rechten kante des MC gebe damit txt2 nicht aus dem mc geschoben wird.

die felder sind in meinem MC rechts angeordnet und sollen sich nach links vergrößeren, wenn ich aber bei txt1 das autosize auf left stelle schieb txt1 alles nach rechts = confused?!?

irgendwie komme ich da nicht weiter, hat jemand nen tipp o.ä.?
Compumaster ist offline   Mit Zitat antworten
Alt 18-05-2006, 12:57   #6 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
sind deine textfelder einzeilig oder mehrzeilig?

bei einzeilig würd ich das so machen:
PHP-Code:
abstand 10;
mein_txt.autoSize "left";
mein_txt2.autoSize "right";

mein_txt2.text "es rappelt in der Kiste";
mein_txt.text "Ene, mene miste was wird denn das ";
mein_txt._x mein_txt2._x mein_txt.textWidth abstand
sind sie mehrzeilig würde ich die textfelder einfach nur auf ihre position bringen mit eben dem abstand von 10px und dann autoSize = true setzen
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 18-05-2006, 13:02   #7 (permalink)
Neuer User
 
Benutzerbild von Compumaster
 
Registriert seit: Dec 2005
Beiträge: 73
sind einzeilig, der tag klappt aber nicht richtig.
anbei mal die fla dafür. in der html sind die beiden var txt1&txt2 die den inhalt der felder bringen.
Angehängte Dateien
Dateityp: zip FlashExtern.zip (3,6 KB, 8x aufgerufen)
Compumaster ist offline   Mit Zitat antworten
Alt 18-05-2006, 13:13   #8 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
na du solltest auch schon die sachen ausprobieren die man dir schreibt, da steht ja noch dein script drin und das hat ja wie du sagst nicht funktioniert, schreib mal in deinen mc 'dynamischesTextfeld' folgendes:
PHP-Code:
abstand 10
mein_txt.autoSize "left"
mein_txt2.autoSize "right"

mein_txt._x mein_txt2._x mein_txt.textWidth abstand
... und siehe da...
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 18-05-2006, 13:20   #9 (permalink)
Neuer User
 
Benutzerbild von Compumaster
 
Registriert seit: Dec 2005
Beiträge: 73
hi, danke für die hilfe, das war noch die alte datei.

jetzt passiert aber genau das in anderer richtung: stehen im txt2 zuviele zeichen wird mein.txt1 aus dem MC geschoben. wie vorher anderes herum ;(

kk denkfehler von mir, irgendwo muss der inhalt der vars ja landen
die lösung is eigentlich ok, danke!

Geändert von Compumaster (18-05-2006 um 13:23 Uhr)
Compumaster ist offline   Mit Zitat antworten
Alt 01-06-2006, 11:22   #10 (permalink)
Neuer User
 
Benutzerbild von Compumaster
 
Registriert seit: Dec 2005
Beiträge: 73
humm, geht das mit dem fitting in einem textfeld insofern wie folgt:

wenn der text zb 20 zeichen lang ist passt sich ja die größe (hier in meinem script) des dynamischen textfeldes automatisch dem inhalt an. die schriftgröße belibt dabei die fest definierte, welche ich vorab im flash über die eigenschaften des textefeldes bekannt gegeben habe.

nun soll sich aber die schrift in sofern verkleinern damit der text (egal wie lang, auch zb 100 zeichen lang) so sehr verkleinern, dass der gesamte text definitiv immer da steht. auch wenns arial 1px wäre. im englischen löppt das unter fitting. ist das überhaupt in flash via AS möglich oder sind das die grenzen von flash?
Compumaster ist offline   Mit Zitat antworten
Alt 01-06-2006, 16:01   #11 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
ActionScript:
  1. var txtFormat=new TextFormat()
  2. txtFormat.font="Verdana"
  3. txtFormat.size=12
  4. this.createTextField("txtField",1,0,0,400,20)
  5. this.txtField.setNewTextFormat(txtFormat)
  6. this.txtField.border=true
  7. this.txtField.text="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Curabitur tellus. Ut porta quam et orci."
  8.  
  9. this.txtField.borderColor=0xFF0000
  10.  
  11. TextField.prototype.fitText=function(){
  12.     var b=this._width
  13.     var txt=this.text
  14.     var format=this.getTextFormat()
  15.     var size=format.size
  16.     while(format.getTextExtent(txt).width>b){
  17.         format.size--
  18.     }
  19.     this.setTextFormat(format)
  20. }
  21. this.txtField.fitText()

Ansatz mit den Möglichkeiten von MX, getTextExtent welches mir die Breite berechnet funktioniert nichts ganz so toll.
Gibt auch die Möglichkeit nen Textfeld temporär im Nirvana zu erstellen und über dieses die Breite auszulesen-bei aktiviertem auoSize.

Berücksichtigt keine Zeilenumbrüche, soviel ich weiß geht das aber ab fMX 2004.

gruß
deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 07-06-2006, 09:57   #12 (permalink)
Neuer User
 
Benutzerbild von Compumaster
 
Registriert seit: Dec 2005
Beiträge: 73
hoi, das klappt irgendwie nicht.
kann ich das 1:1 verwenden?
das txtField.text="..." wie greife ich da den externen inhalt ab, ich hab ja ein dynamisches textfeld gehabt mit der var text1. diese hat dann aus dem html-tag die infos geholt.

hab übrigens flash8
Compumaster ist offline   Mit Zitat antworten
Alt 07-06-2006, 10:23   #13 (permalink)
Neuer User
 
Benutzerbild von Compumaster
 
Registriert seit: Dec 2005
Beiträge: 73
ok habs geschaft, kann mir bitte jemand sagen wie ich aus dem erstellten textfield heraus
den inhalt einer externen variablen aufrufen kann?
bitte!

ich hab ja hier den aufruf wo sonst der direkte text stand:
Zitat:
this.txtField.htmlText = "Beispieltext";
nun soll ja der inhalt der externe var. text1 dargestellt werden. in flash hab ich ja sonst dem mit flash erzeugten textfeld den Var-Namen eingeben können. jetzt wird das textfeld ja erst bei laufzeit erzeugt und ich kenne den befehlsparameter nicht.
Zitat:
this.txtField.htmlText = text1;
geht ja nicht, weils kein Ausdruck ist und mit "" is auch klar.

auch das hat sich erledigt ^^

Geändert von Compumaster (07-06-2006 um 12:13 Uhr)
Compumaster ist offline   Mit Zitat antworten
Alt 07-06-2006, 16:49   #14 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
erledigt? wunderbar!
Dein altes Verfahren, dem Textfeld keinen Instanznamen zu geben solltest übrigens mit dieser Methode ersetzen.
Das läßt dir 100te Freiheiten offen- uuuunter anderem auch die, die Methode fitText() zu nutzen, auch bei manuell erstellten textfeldern

gruß
deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 08-06-2006, 07:52   #15 (permalink)
Neuer User
 
Benutzerbild von Compumaster
 
Registriert seit: Dec 2005
Beiträge: 73
naja geht leider wieder nen stück weiter
http://www.flashforum.de/forum/showt...26#post1463526
jetzt muss das ganze animiert werden. was vorher geklappt hat (mit der autosize-variante etc) klappt jetzt nimma da ja das textfeld erst zur laufzeit erstellt wird und nicht wie vorher direkt in flash ;(
Compumaster 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 08:04 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele