Avatar billede altschuler Nybegynder
01. marts 2005 - 16:58 Der er 13 kommentarer og
1 løsning

Sætte tekst uden om markeret tekst

Jeg skal have lavet mig et meget simpelt program, hvor man skal kunne indtaste noget tekst i en tekstboks, og så markere en del af teksten derefter trykke på en knap og så skla der komme noget bestem uden om den markerede tekst.

Det lyder lidt indviklet, men jeg giver lige et eksempel:

I tekstboksen står der:
"Hej med dig, eksperten.dk er mega sejt, vi elsker det alle"

Så markerer man følgende(>><<):
"Hej med dig, >>eksperten.dk<< er mega sejt, vi elsker det alle"

Så trykker man på en knap, og så skal det (f.eks.) se sådan her ud:
"Hej med dig, <b>eksperten.dk</b> er mega sejt, vi elsker det alle"


Håber meget i kan hjælpe mig :)

PFT og hav en fortsat god aften!
Avatar billede barklund Nybegynder
01. marts 2005 - 17:19 #1
Prøv følgende funktion:

function addTags(before, after) {
    var txt = eval(Selection.getFocus());
    if (!txt) return
    var st = Selection.getBeginIndex();
    var sl = Selection.getEndIndex();
    txt.text = txt.text.substring(0,st)+before+txt.text.substring(st,sl)+after+txt.text.substring(sl);
    Selection.setSelection(st,sl+before.length+after.length);
}
Key.addListener(this);
function onKeyUp() {
    if (Key.isDown(Key.CONTROL) && String.fromCharCode(Key.getCode()) == "B") {
        addTags("<b>", "</b>");
    }
}

Så kan du sidde og skrive i dit tekstfelt og så trykke Ctrl+B og så kommer der "<b>" og "</b>" rundt om det markerede. Du kan ikke (nemt) lave det med knapper, for når du trykker på knappen mistes informationen om, hvad du har markeret i tekstfeltet - desvæære (jeg har lige prøvet mig frem).

Ctrl-versionen er nu også meget sød :)

--
Morten Barklund

--
Morten Barklund
Avatar billede altschuler Nybegynder
01. marts 2005 - 18:16 #2
Herligt barklund :D, det virker fint. Men jeg har bare lige et spørgsmål mere.

Hvordan sætter jeg så flere muligheder ind?
har prøvet bare at sætte en if betingelse mere ind, men det virker ikke. Er ikke lige uber actionsscript nørd, men her er hvad jeg prøvede:

function onKeyUp() {
    if (Key.isDown(Key.CONTROL) && String.fromCharCode(Key.getCode()) == "B") {
        addTags("<b>", "</b>");
    }else if (Key.isDown(Key.CONTROL) && String.fromCharCode(Key.getCode()) == "I") {
        addTags("<i>", "</i>");
    }
}
Avatar billede barklund Nybegynder
01. marts 2005 - 18:32 #3
Der er præcis sådan, man gør. Virker det ikke?

Jeg kan skrive den lidt om, men funktionaliteten er den samme:

function onKeyUp() {
    if (!Key.isDown(Key.CONTROL)) return;
    switch(String.fromCharCode(Key.getCode())) {
    case "B":
        addTags("<b>", "</b>");
        break;
    case "I":
        addTags("<i>", "</i>");
        break;
    }
}

--
Morten Barklund
Avatar billede pyroman Nybegynder
01. marts 2005 - 18:34 #4
Jeg har tacklet det med at man mister focus... Det handler bare om at huske hvor selection sidst var, hver gang tekstfeltet mister focus... et par tjeks og den er klaret - lidt fesen løsning men den eneste...
Avatar billede barklund Nybegynder
01. marts 2005 - 18:40 #5
Hm, jeg synes ikke at kunne få getBeginIndex og getEndIndex når fokus var mistet - selvom jeg vidste, hvor fokus kom fra. Så skulle man registrere disse i en enterFrame eller noget i den stil.
Avatar billede altschuler Nybegynder
01. marts 2005 - 19:05 #6
Altså nu virker det nogenlunde, men der er et problem med CTRL+B nu. Det er meget underligt, for når jeg "tester" movie, direkte fra Flash virker det sådan set fint nok med begge muligheder.

Når jeg så derimod exporterer filmen og bruger CTRL+B, så forsvinder teksten der er makeret, men "<b>" og "</b>" kommer alligevel.

Hmm...
Avatar billede altschuler Nybegynder
01. marts 2005 - 19:07 #7
Det skal nok lige tilføjes at der foran teksten kommer et "" tegn. så det bliver <b></b>
Avatar billede barklund Nybegynder
01. marts 2005 - 19:21 #8
Hm, det forstår jeg ikke :/
Avatar billede pyroman Nybegynder
01. marts 2005 - 19:55 #9
Man kan godt få fat i selection på mousedown... men efter det er den død...

Her er en RTE jeg prøvede at lave engang - prøvede at bruge components til den, men de har det med at fucke selection op...

http://www.desi-dev.dk/filip/exp/rich_text_editor.swf
http://www.desi-dev.dk/filip/exp/rich_text_editor.fla


Her er én jeg engang stødte på - bare pisse grim... men virker:

http://www.desi-dev.dk/filip/exp/obedit_distro.swf
http://www.desi-dev.dk/filip/exp/obedit_distro.fla

knock ya self out ;)
Avatar billede altschuler Nybegynder
01. marts 2005 - 20:50 #11
Nice links pyroman :), men fiksede det bare ved at bruge knapper som ikke bliver brugt af flash player. Lidt keglet, men fuck det.

Smid et svar barklund..
Avatar billede barklund Nybegynder
01. marts 2005 - 21:30 #12
Yesh yesh :)
Avatar billede barklund Nybegynder
02. marts 2005 - 00:32 #13
Tark for points :)
Avatar billede altschuler Nybegynder
02. marts 2005 - 20:47 #14
Det' ingen problem da ^__^
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