23. juli 2003 - 10:14
Der er
14 kommentarer og 1 løsning
tekstfelt.Length
Help me out :) Jeg sidder og vil lave en marquee effekt i flash. og teksten skal komme fra en ekstern fil og kunne jeg har brygget dette sammen indtil videre: var intTxt; loadVariablesNum("mytxt.txt", 0); intTxt = txt.length; this.createTextField("myTextField", 5, 0, 0, intTxt, 20); myTextField.border = true; myTextField.type = "dynamic"; myTextField.variable = "txt"; myTextField.textColor = "0x000000"; trace(intTxt.Length); trace(strTxt); Mit problem er så at variablen "intTxt" står som undefined selvom jeg kan se teksten i "myTextField" (som jo kommer fra mytxt.txt) Grunden til alt dette hulumhej er at jeg vil have at "myTextField" kan strække sig så langt som teksten er i "txt" variablen
Annonceindlæg fra Admin By Request
hvor får du variablen txt fra? Kan du ikke bare bruge entext.textWidth til at finde vidden på teksten med? : ) Jakob
Vil du trace(intTxt.length); ? IntTxt indenholder jo antal tegn fra variablen txt. Hvis variablen txt er undefined så vil intTxt jo også blive det.
txt kommer fra mytxt.txt filen hvor der indtil videre står: &txt=this is a text test
nå. Så er det fordi at du prøver at bruge en variabel enden at den er loadet helt ind. this.createTextField("myTextField", 5, 0, 0, 0, 20); myVars = new LoadVars(); myVars.load("mytxt.txt"); myVars.onLoad = function(){ intTxt = txt.length; myTextField.border = true; myTextField.type = "dynamic"; myTextField.variable = "txt"; myTextField.textColor = "0x000000"; myTextField.width = txt.textWidth; trace(intTxt.Length); trace(strTxt); } Noget i den retning...
Den er jo ikke undefined - ellers ville jeg ikke kunne se teksten i myTextField
en lille fejl: this.createTextField("myTextField", 5, 0, 0, 0, 20); myVars = new LoadVars(); myVars.load("mytxt.txt"); myVars.onLoad = function(){ intTxt = myVars.txt.length; myTextField.border = true; myTextField.type = "dynamic"; myTextField.variable = "txt"; myTextField.textColor = "0x000000"; myTextField.width = myVars.txt.textWidth; trace(intTxt.Length); trace(strTxt); } alle steder hvor du bruger txt skal du nu skrive: myVars.txt
men din tekst bliver jo ikke loaded på den tid, som det tager at udføre scriptet. Det vil gå flere hundrede millisekunder, så når scriptet med intTxt køres, da er variablen "txt" stadig undefined (som du vil se, hvis du trace den ud). At du kan se den i dit tekstfelt, skyldes jo blot, at dit tekstfelt hele tiden opdaterer sit indhold efter variablen "txt" - der jo bliver sat efter nogle hundre millisekunder (= hurtigere end at du ser, den er tom helt i starten) noget helt andet er, at "width" parametren for createTextField ikke tager ordlængde men derimod pixels. Løsningen er dog blot: loadVariablesNum("mytxt.txt", 0); this.createTextField("myTextField", 5, 0, 0, 1, 20); myTextField.border = true; myTextField.type = "dynamic"; myTextField.variable = "txt"; myTextField.autoSize = true; myTextField.textColor = "0x000000";
jo, den er undefined i det øjeblik du kalder den. loadVariablesNum("mytxt.txt", 0); intTxt = txt.length; Da det er i linien lige nede under har den ikke nået at loade den helt endnu. Du har sikkert lagt txt på tekstfeltet med "var" feltet. Det bliver bare opdateret nå variablen er loadet.
jakwag: Det er ingen egenskab, der hedder "textWidth" på en streng - kun på tekstfelter. Og hvis man bare autosizer tekstfeltet, så kommer det til at passe.
23. juli 2003 - 10:33
#10
Som Barklund siger...
23. juli 2003 - 10:34
#11
Barklund .... det funger ... du er en vaske ægte AS haj :) Jeg har ellers siddet og kigget godt igennem men har ikke opdaget "autoSize"
23. juli 2003 - 10:34
#12
Barklund > ja, lad mig lige vågne... : )
23. juli 2003 - 10:35
#13
Tak for hjælpen alle og må I ha' en god dag :D /boot
23. juli 2003 - 10:46
#14
How nu fik jeg alle pointene - vil du ikke have lidt jakwag?
23. juli 2003 - 10:59
#15
nej, pyt med det.
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.