Avatar billede bootlab Nybegynder
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
Avatar billede jakwag Nybegynder
23. juli 2003 - 10:20 #1
hvor får du variablen txt fra?

Kan du ikke bare bruge entext.textWidth til at finde vidden på teksten med?

: ) Jakob
Avatar billede jakwag Nybegynder
23. juli 2003 - 10:23 #2
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.
Avatar billede bootlab Nybegynder
23. juli 2003 - 10:24 #3
txt kommer fra mytxt.txt filen hvor der indtil videre står:

&txt=this is a text test
Avatar billede jakwag Nybegynder
23. juli 2003 - 10:28 #4
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...
Avatar billede bootlab Nybegynder
23. juli 2003 - 10:28 #5
Den er jo ikke undefined - ellers ville jeg ikke kunne se teksten
i myTextField
Avatar billede jakwag Nybegynder
23. juli 2003 - 10:29 #6
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
Avatar billede barklund Nybegynder
23. juli 2003 - 10:30 #7
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";
Avatar billede jakwag Nybegynder
23. juli 2003 - 10:32 #8
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.
Avatar billede barklund Nybegynder
23. juli 2003 - 10:32 #9
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.
Avatar billede jakwag Nybegynder
23. juli 2003 - 10:33 #10
Som Barklund siger...
Avatar billede bootlab Nybegynder
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"
Avatar billede jakwag Nybegynder
23. juli 2003 - 10:34 #12
Barklund > ja, lad mig lige vågne... : )
Avatar billede bootlab Nybegynder
23. juli 2003 - 10:35 #13
Tak for hjælpen alle og må I ha' en god dag :D

/boot
Avatar billede barklund Nybegynder
23. juli 2003 - 10:46 #14
How nu fik jeg alle pointene - vil du ikke have lidt jakwag?
Avatar billede jakwag Nybegynder
23. juli 2003 - 10:59 #15
nej, pyt med det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester