Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-09-2004, 10:52   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Ort: Lausanne
Beiträge: 133
Angry unbekannte höhe bei "autoSize = true"-Textfeld

Tagwohl!

Ich habe jetzt schon seit geraumer Zeit ein merkwürdiges Problem:

ich erstelle per ActionScript ein Textfeld (autoSize = true), in das ein HtmlText von einer Datenbank gelesen wird....so weit so gut. Jetzt will ich jedoch diesen Text mit einem weissen mc hinterlegen, um das ganze leserlich zu gestalten. Also sage ich dem mc

Code:
this[bg]._height = this[mc]._height;
this[bg]._width = this[mc]._width;
///this[bg] ist der hinterlegungsmc
///this[mc] ist das textfeld :)
die Breite funktioniert....aber die Höhe nicht..wenn ich mir in einem Test-Textfeld die Höhe ausgeben lasse, wird der Wert 4 ausgegeben, was nicht stimmen kann!!! Ich kann mir dieses Problem einfach nicht erklären....kann das jemand von euch?
__________________
nevermind - just drink cuba libre
don_miguel ist offline   Mit Zitat antworten
Alt 25-09-2004, 11:33   #2 (permalink)
funkdisziplin
 
Registriert seit: Jul 2003
Beiträge: 2.790
warum nicht mit textfeld.background=true; arbeiten?

PHP-Code:
deinTextfeld.autosize=true;
//
deinTextfeld.background=true;
deinTextfeld.backgroundColor=0xffffff
greets ddd
derdiedas ist offline   Mit Zitat antworten
Alt 25-09-2004, 12:02   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Ort: Lausanne
Beiträge: 133
weil ich es nicht fertig gebracht habe, das alpha des backgrounds auf 75 zu stellen.....ist das überhaupt möglich?

und ausserdem werde ich die höhe zu einem späteren Zeitpunkt benötigen, weil ich ein weiteres textfeld unten anstelle......


danke trotzdem

gruss michael
__________________
nevermind - just drink cuba libre
don_miguel ist offline   Mit Zitat antworten
Alt 25-09-2004, 12:47   #4 (permalink)
nie-auslernender
 
Registriert seit: Jul 2001
Beiträge: 466
mach dein dynamisches textfeld in einen movieclip und les dessen höhe und breit aus. dann gehts.


mfg esia
__________________
it´s always the same, but most different
esia ist offline   Mit Zitat antworten
Alt 25-09-2004, 13:43   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Ort: Lausanne
Beiträge: 133
hi!
klingt einleuchtend, dein vorschlag.....hat aber genau das gleiche resultat....ich begreif das einfach nicht.......woher nimmt flash diese 4? es spielt überhaupt keine rolle, wie lang der text, oder ob überhaupt ein text vorhanden ist....es spukt immer diese 4 aus.

ich poste jetzt mal das AS:

PHP-Code:
///die variable nummer wird in einem anderen frame festgelegt....
mc "mc"+nummer;
tf "feld"+nummer;
tiefe Number(20)+nummer;
tiefe2 tiefe+100;

_level2.home.createEmptyMovieClip (mctiefe);
_level2.home[mc].createTextField (tftiefe2xxxyyy25010);
this[mc][tf].html true;
this[mc][tf].multiline true;
this[mc][tf].background false;
this[mc][tf].wordWrap true;
this[mc][tf].autoSize true;
this[mc][tf].variable "meldung";


höhe this[mc]._height;
breite this[mc]._width;
bg "bg"+nummer;
tiefe3 tiefe+200;
bgur.duplicateMovieClip(bgtiefe3);
this[bg]._height this[mc]._height;
this[bg]._width breite;
this[bg]._x xxx;
this[bg]._y yyy;
this[bg]._alpha 75
also für mich sieht das eigentlech gut aus

gruss michael
__________________
nevermind - just drink cuba libre

Geändert von don_miguel (25-09-2004 um 13:44 Uhr)
don_miguel ist offline   Mit Zitat antworten
Alt 25-09-2004, 13:56   #6 (permalink)
Gimbel Deluchs
 
Registriert seit: Apr 2004
Ort: Wieder da!
Beiträge: 153
Hi,

vielleicht versuchst Du mal die Höhe und Breite des TF mit nem Object auszulesen und Dir so das autosize=true zu sparen...:


PHP-Code:
var meinTF:TextFormat = new TextFormat( );
var 
abWannUmbruch:Number 150;
meinTF.font "_sans"
meinTF.size 12;
//+++++++++++++++
var meinStr:String "Dein Text";
var 
meinObject:Object meinTF.getTextExtent(meinStrabWannUmbruch);
//+++++++++++++++
this.createTextField("meinText"1100100meinObject.textFieldWidthmeinObject.textFieldHeight);
meinText.wordWrap true;
meinText.text meinStr;
meinText.setTextFormat(meinTF); 
kannst dann später immer über das Objekt die Breite und Höhe auslesen, der Parameter "abWann Umbruch" ist übrigens optional. Die Methode getTextExtend kannste Dir auch noch mal in der Hilfe angucken.


Greetz Frederik
Mr.Dauerfeuer ist offline   Mit Zitat antworten
Alt 25-09-2004, 14:14   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Ort: Lausanne
Beiträge: 133
also mal davon abgesehen, dass ich nur die hälfte begreife ....steht das nicht im Konflikt damit, dass mein Text ein htmlText ist??

gruss dm
__________________
nevermind - just drink cuba libre
don_miguel ist offline   Mit Zitat antworten
Alt 25-09-2004, 15:18   #8 (permalink)
Gimbel Deluchs
 
Registriert seit: Apr 2004
Ort: Wieder da!
Beiträge: 153
habe diese Variante euch schon im Zusammenhang mit htmlText genutzt und keine Probleme gehabt. Schau mal in der Hilfe nach getTextExtend() nach, diese Methode gibt Dir einige nützliche Parameter zurück und packt diese in ein Objekt....


Das TextFormat kannste dann einfach "leer" lassen, also .font, .size etc. weg lassen, da diese Infos ja in HTML vorliegen.
Mr.Dauerfeuer ist offline   Mit Zitat antworten
Alt 25-09-2004, 15:32   #9 (permalink)
Gimbel Deluchs
 
Registriert seit: Apr 2004
Ort: Wieder da!
Beiträge: 153
erstelle mal ein neues Flash Dokument und füge folgenden Code ins 1 Bild ein:

PHP-Code:
var meinTF:TextFormat = new TextFormat( );
var 
abWannUmbruch:Number 100;
//+++++++++++++++
var meinStr:String "Dein Text in <b>Html</b> formatiert!";
var 
meinObject:Object meinTF.getTextExtent(meinStrabWannUmbruch);
//+++++++++++++++
this.createTextField("meinText"1100100meinObject.textFieldWidthmeinObject.textFieldHeight);
meinText.wordWrap true;
meinText.html true;
meinText.htmlText meinStr;
meinText.setTextFormat(meinTF);
//+++++++++++++++++++++++++++++
trace(meinObject.textFieldWidth);
trace(meinObject.textFieldHeight); 
an Deinem Script ist mir noch aufgefallen, dass man Textfelder besser über .text bzw. .htmText füllen sollte und nicht über .variable


Edit:
habe gerade gemerkt, dass es hier um MX geht, mein Bsp. funzt glaub ich nur in MX2004......sorry

Geändert von Mr.Dauerfeuer (25-09-2004 um 15:38 Uhr)
Mr.Dauerfeuer ist offline   Mit Zitat antworten
Alt 26-09-2004, 10:30   #10 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Ort: Lausanne
Beiträge: 133
ja, ich habe flash mx.....aber danke trotzdem für deine Mühe!!

aber ich habe jetzt etwas neues festgestellt.......also, ich habe den Film nach dem erstellen des ersten Textes gestoppt und einen Button hingelegt. Diesem Button hab ich die Aktion:
PHP-Code:
on (release){
    
hoehe mc1._height;

gegeben...wenn ich jetzt diesen button drücke, spukt Flash tatsächlich hoehe = 188 aus.....aber wenn ich das oben gepostete Script ganz normal ausführe sagt mir flash jedesmal hoehe = 4....ist das ein bug von Flash?!?! oder wahrscheinlicher: was hab ich nicht beachtet?!?

Ich bin über jeden Tipp froh.

Gruss michael
__________________
nevermind - just drink cuba libre
don_miguel ist offline   Mit Zitat antworten
Alt 27-09-2004, 12:01   #11 (permalink)
Gimbel Deluchs
 
Registriert seit: Apr 2004
Ort: Wieder da!
Beiträge: 153
ich glaube in deinem Script sind ein paar Fehler in den Pfaden für den mc und das tf.



Du erzeugst Deinen mc doch in _level2.home und Dein tf in _level2.home.mc, folglich muessen die anderen Pfadangaben in Deinem Script angepasst werden, ausserdem würde ich anstatt .variable .htmlText verwenden.

Das sähe dann so aus: (ungetestet) und sollte auch mit mx funktionieren

PHP-Code:
///die variable nummer wird in einem anderen frame festgelegt....
mc "mc"+nummer;
tf "feld"+nummer;
tiefe Number(20)+nummer;
tiefe2 tiefe+100;

_level2.home.createEmptyMovieClip (mctiefe);
_level2.home[mc].createTextField (tftiefe2xxxyyy25010);
_level2.home[mc][tf].html true;
_level2.home[mc][tf].multiline true;
_level2.home[mc][tf].background false;
_level2.home[mc][tf].wordWrap true;
_level2.home[mc][tf].autoSize true;
_level2.home[mc][tf].variable "meldung";


höhe _level2.home[mc]._height;
breite _level2.home[mc]._width;
bg "bg"+nummer;
tiefe3 tiefe+200;
bgur.duplicateMovieClip(bgtiefe3);
this[bg]._height höhe;
this[bg]._width breite;
this[bg]._x xxx;
this[bg]._y yyy;
this[bg]._alpha 75

Gruss Frederik
Mr.Dauerfeuer 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 07:56 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele