Avatar billede oersted Novice
29. august 2007 - 20:08 Der er 33 kommentarer og
1 løsning

tekst i spalter /colums

Jeg har loadet min tekst ind fra XML - og henter den ind i min tekstbox med:
function my_function() {
   
    col1.htmltext = my_xml.firstChild.childNodes[0];
   
Det virker fint nok. Så vil jeg gerne have teksten til at løbe uver i den næste spalte, som er en tekstbox der hedder col2

Det følgende script virker hvis textvariablen hedder article, men jeg kan ikke få det til at virke, når jeg henter teksten ind dynamisk som ovenfor. KAn nogen hælpe med det ?


    article = "her teksten  somskal løbe over flere splater....";

//---------------------CODE TO CREATE COLUMNS-------------------
words = article.split(" ");
targetColumn = 1;
for (i=0; i<words.length; i++) {
    this["col"+targetColumn].text += words[i]+" ";
    if (this["col"+targetColumn].maxscroll>1) {
        i--;
        targetColumn++;
    }
}
Avatar billede mat Nybegynder
29. august 2007 - 23:04 #1
umiddelbart vil jeg tro du bare kan splitte my_xml.firstChild.childNodes[0] istedet for article?

mvh mat
Avatar billede oersted Novice
30. august 2007 - 16:22 #2
hmn, ja
Jeg kan desværre ikke få det til at virke :-(
Avatar billede mat Nybegynder
30. august 2007 - 20:14 #3
Du skal selvfølgelig vente på at din xml er loaded før du kan gøre det. Din coloumn kode er derfor nødt til at være i din xml.onLoad handler.

mvh mat
Avatar billede oersted Novice
30. august 2007 - 20:48 #4
det er logisk nok, ja

KA du hjælpe lidt med koden ?
Avatar billede mat Nybegynder
30. august 2007 - 21:04 #5
Hvordan ser din function til xml.onLoad ud?
Avatar billede oersted Novice
30. august 2007 - 21:12 #6
xmlOutput.scroll = 1;


xmlOutput.embedFont=true
system.useCodepage = true
stop();
myXML = new XML();
myXML.ignoreWhite = true;
myXML.onLoad = DisplayData;
myXML.load("teksteksempel.xml");

function DisplayData(success)
{
    if (success) {
        xmlOutput.htmltext = this.body.childnodes.join("");
    }
}
Avatar billede mat Nybegynder
30. august 2007 - 21:39 #7
Prøv med;

function DisplayData(success)
{
    if (success) {
        words = my_xml.firstChild.childNodes[0].split(" ");
targetColumn = 1;
for (i=0; i<words.length; i++) {
    _root["col"+targetColumn].text += words[i]+" ";
    if (_root["col"+targetColumn].maxscroll>1) {
        i--;
        targetColumn++;
    }
}
    }
}

..forudsat dine tekstfelter ligger i _root.

mvh mat
Avatar billede oersted Novice
30. august 2007 - 21:56 #8
henter ikke noget ind. Såvidt jeg kan se på din kode skal tekstfelt 1 hedder col

--
kode:
xmlOutput.scroll = 1;


xmlOutput.embedFont=true
system.useCodepage = true
stop();
myXML = new XML();
myXML.ignoreWhite = true;
myXML.onLoad = DisplayData;
myXML.load("teksteksempel.xml");



function DisplayData(success)
{
    if (success) {
        words = my_xml.firstChild.childNodes[0].split(" ");
targetColumn = 1;
for (i=0; i<words.length; i++) {
    _root["col"+targetColumn].text += words[i]+" ";
    if (_root["col"+targetColumn].maxscroll>1) {
        i--;
        targetColumn++;
    }
}
    }
}
Avatar billede mat Nybegynder
30. august 2007 - 22:04 #9
De skal vel hedde det samme som tekstfelterne i det eksempel du siger virker? Den eneste forskel er at "article" nu er noget tekst, der er specificeret i en xml fil.
Avatar billede oersted Novice
30. august 2007 - 22:23 #10
ja, men article bliver så ikke vist nogen stedr. KAn du få det til at fungere ? for jeg kan simpelthen ikke
Avatar billede mat Nybegynder
30. august 2007 - 22:26 #11
Jeg har ikke prøvet, jeg kigger bare på din kode. Jeg troede du ville erstatte article med teksten i xml filen? Hvad får du hvis du skriver trace(my_xml.firstChild.childNodes[0]) i din DisplayData?
Avatar billede oersted Novice
30. august 2007 - 22:48 #12
function DisplayData(success)
{
    if (success) {
          trace(my_xml.firstChild.childNodes[0])
       
    }
}

giver: undefined


-- 

function DisplayData(success)
{
    if (success) {
          col1.htmltext = this.body.childnodes.join("");
       
    }
}

viser teksten i det ene tekstfelt
Avatar billede mat Nybegynder
30. august 2007 - 22:51 #13
Så brug this.body.childnodes.join("") i funktionen istedet for my_xml.firstChild.childNodes[0]
Avatar billede oersted Novice
30. august 2007 - 22:56 #14
function DisplayData(success)
{
    if (success) {
          trace(this.body.childnodes.join("");
       
    }
}

giver fejl - der mangler noget


**Error** Scene=Scene 1, layer=action script, frame=1:Line 17: ')' or ',' expected
              trace(this.body.childnodes.join[0];
Avatar billede mat Nybegynder
30. august 2007 - 22:59 #15
Der mangler en slutparentes.

Men jeg mente i den funktion jeg skrev tidligere;

function DisplayData(success)
{
    if (success) {
        words = this.body.childnodes.join("").split(" ");
targetColumn = 1;
for (i=0; i<words.length; i++) {
    _root["col"+targetColumn].text += words[i]+" ";
    if (_root["col"+targetColumn].maxscroll>1) {
        i--;
        targetColumn++;
    }
}
    }
}
Avatar billede oersted Novice
30. august 2007 - 23:00 #16
så det lige ja

function DisplayData(success)
{
    if (success) {
          trace(this.body.childnodes.join(""))
       
    }
}
Avatar billede oersted Novice
30. august 2007 - 23:03 #17
mat, det virker sgu !!!!!
Avatar billede oersted Novice
30. august 2007 - 23:04 #18
Nu viser den så lige <mynode> i starten af teksten - øh prøver lige at greje hvorfor
Avatar billede oersted Novice
30. august 2007 - 23:09 #19
og desuden kan jeg se at dette kun virker i Flashplayer 6. ikke 7.
Og den viser ikke HTML - plejer man at skrive en function til .htmltext ?
Avatar billede mat Nybegynder
30. august 2007 - 23:22 #20
Din childnodes.join tager sikkert node tagget med. Du skal pille nodeValue ud (men der skal sikkert mere til end bare en join på childNodes arrayet). Og med hensyn til html er det svært at sige uden at se dit xml dokument. Normalt bruger man cdata til at opbevare html formattering.

(og childnodes hedder childNodes).
Avatar billede oersted Novice
30. august 2007 - 23:39 #21
ok - det med Childnodes finder jeg sikkert ud af, så glem det, nu skal jeg ikke spørge om for meget på én gang.

Men at HTML ikke vises i tekstfilen er ret skidt

Normalt ville jeg skrive:

if (success) {
        col11.htmltext = this.body1.childnodes.join("");

men i det script vi har her står der kun .text - og HTML vises simpelthen ikke  ....
Avatar billede mat Nybegynder
30. august 2007 - 23:51 #22
Og du har prøvet at erstatte .text med .htmlText i scriptet (og sat dine tekstfelter til "render html")?
Avatar billede oersted Novice
30. august 2007 - 23:56 #23
ja:  _root["col"+targetColumn].htmlText += words[i]+" ";
og textbox er sat til render HTML som den hele tiden har været.

Det mystiske er at nu, foruden at HTML ikke vises, deles al tekst med et ord per linie:

Bosat
i
København,
fordeler
han
sin
tid
ligeligt
mellem
Avatar billede oersted Novice
30. august 2007 - 23:58 #24
det ville måske løses hvis jeg publicerede i flashplayer 7 - men så bliver XML-filen bare ikke hentet overhovedet
Avatar billede mat Nybegynder
31. august 2007 - 08:26 #25
Når du skriver "men så bliver XML-filen bare ikke hentet overhovedet", mener du så at filen ikke bliver hentet, eller mener du at den ikke bliver vist i et tekstfelt?

Og umiddelbart tror jeg ikke det gør nogen forskel om det er version 6 eller 7.
Avatar billede oersted Novice
02. september 2007 - 17:24 #26
jeg prøver at forklare det bedre:
Hvis jeg skriver : _root["col"+targetColumn].htmlText += words[i]+" "; vises html ikke, der  står der bare:
Nørrebro
i
København.
/>
/>Der
er
ro


Altså alle ord delt + ingen visning af HTML :-(
Avatar billede mat Nybegynder
09. september 2007 - 15:05 #27
+= operatoren tilføjer tilsyneladende et line break på teksten, når den bruges på htmlText property'en, så du er vist nødt til at hacke dig rundt om det.

mvh mat
Avatar billede oersted Novice
09. september 2007 - 15:14 #28
aha, noget forslag ?
vh Jesper
Avatar billede mat Nybegynder
09. september 2007 - 15:29 #29
njah, noget med at sætte teksten ind som almindelig tekst for at finde ud af hvor meget den fylder, for at finde kolonnerne, og derefter erstatte den med html teksten, istedet for at det bliver gjort løbende-agtigt?

mvh mat
Avatar billede oersted Novice
09. september 2007 - 16:05 #30
hvis du kan scripte det er du dagens mand, for det kan jeg ikke finde ud af
Avatar billede mat Nybegynder
09. september 2007 - 16:11 #31
Jeg har ikke flash her.

mvh mat
Avatar billede oersted Novice
09. september 2007 - 17:05 #32
øv :-)
Avatar billede oersted Novice
15. september 2007 - 22:09 #33
XXX ØV
Avatar billede oersted Novice
22. marts 2011 - 11:54 #34
....
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