Avatar billede lokum Nybegynder
08. januar 2004 - 10:55 Der er 22 kommentarer og
1 løsning

Hjælp til funktion

Det er ikke rigtigt lykkes mig at lave en generel funktion, som kan sammenfatte de her:

input1.onSetFocus = function() {
    if (_root.input1.text == _root.input1_txt) {
        _root.input1.text = "";
    }
}
input1.onKillFocus = function() {
    if (_root.input1.text == "") {
        _root.input1.text = _root.input1_txt;
    }
}
input2.onSetFocus = function() {
    if (_root.input2.text == _root.input2_txt) {
        _root.input2.text = "";
    }
}
input2.onKillFocus = function() {
    if (_root.input2.text == "") {
        _root.input2.text = _root.input2_txt;
    }
}
input3.onSetFocus = function() {
    if (_root.input3.text == _root.input3_txt) {
        _root.input3.text = "";
    }
}
input3.onKillFocus = function() {
    if (_root.input3.text == "") {
        _root.input3.text = _root.input3_txt;
    }
Avatar billede barklund Nybegynder
08. januar 2004 - 11:07 #1
function onSetFocus() {
  if (this.text == _root[this._name+"_txt"]) this.text = "";
}
function onKillFocus() {
  if (this.text == "") this.text = _root[this._name+"_txt"];
}

input1.onSetFocus = input2.onSetFocus = input3.onSetFocus = onSetFocus;
input1.onKillFocus = input2.onKillFocus = input3.onKillFocus = onKillFocus ;

// Barklund
Avatar billede lokum Nybegynder
08. januar 2004 - 11:22 #2
Kan du forklare mig de 2 sidste linjer - eller rettere: gider du?? (o;
Avatar billede lokum Nybegynder
08. januar 2004 - 11:23 #3
Altså ikke hvad der sker... men syntaksen.
Avatar billede barklund Nybegynder
08. januar 2004 - 11:51 #4
De sætter funktionerne alle felterne - det er det samme som:

input1.onSetFocus = onSetFocus;
input2.onSetFocus = onSetFocus;
input3.onSetFocus = onSetFocus;

Men bare lidt kortere ;)
Avatar billede barklund Nybegynder
08. januar 2004 - 11:52 #5
Og fortolkes som:

input1.onSetFocus = (input2.onSetFocus = (input3.onSetFocus = onSetFocus));

Altså input1 sættes til værdien af input2 efter update, og input2 sættes til værdien af input3 efter update, og input3 sættes til onSetFocus :)
Avatar billede lokum Nybegynder
08. januar 2004 - 11:55 #6
Smart! Dejlig overskueligt! Hvordan indsætter man flere actions, hvis en if-betingelse opfyldes?? Ja, sorry - skulle lige spørge... ((o;

Og tusind tak for hjælpen!!! (o;
Avatar billede barklund Nybegynder
08. januar 2004 - 12:06 #7
if (condition) {
  statement1;
  statement2;
}
Avatar billede barklund Nybegynder
08. januar 2004 - 12:06 #8
Jeg lavede det bare i en linje for at gøre det kort.. det er det samme som i tre linjer...
Avatar billede lokum Nybegynder
08. januar 2004 - 12:11 #9
Nå, ja - ok. Jeg tænkte bare om man med samme syntaks (altså UDEN tuborgklammer) kunne sætte flere actions... Men et par tuborgklammer er jo ikke det store besvær!! He he...

Mange tak igen! (o;
Avatar billede barklund Nybegynder
08. januar 2004 - 12:14 #10
du kan skrive:

if (condition) statement;
if (condition)
  statement;
if (condition) {
  statement;
}

alle med samme betydning... men hvorfor vil du skrive flere uden parenteser??
Avatar billede lokum Nybegynder
08. januar 2004 - 12:29 #11
Jamen ingen årsag - jeg kan godt se, at tuborgklammerne netop er pga. flere statements, og selvfølgelig kan udelades hvis der kun er een statement. Min spontane indskydelse var bare noget i stil med:

if (condition) {
  statement;
  statement;
  statement;
}
// kunne skrives fx som
if (condition) statement && statement && statement;

Men selvfølgelig er
if (condition) { statement; statement; statement; };
ligeså godt!

((o;
Avatar billede mat Nybegynder
08. januar 2004 - 12:34 #12
Når du har mere end et statement som resultat af en condition hedder det en blok, og skal rammes ind af tuborgklammer. Din nederste med alle statements på een linie sepereret af semikolonner er efter min overbevisning besværligt at læse og det bør (igen efter min overbevisning) skrives under hinanden (det er jo en blok :)

..og hej lokum ;)

-mat
Avatar billede barklund Nybegynder
08. januar 2004 - 12:47 #13
Din alternative løsning med at "fuske" dem sammen med && kan godt laves (jeg brugte det til en scripting konkurrence begrænset til 25 linjer - og lavede en komplet Space Invaders) men det er grimt og man skal holde godt øje med sine returværdier...
Avatar billede lokum Nybegynder
08. januar 2004 - 12:47 #14
HEY Mat - back on the block! ((o; Helt enig. Jeg har bare altid skrevet enkelte statements i blockquotes, også... deraf min omvendte logik.
Avatar billede barklund Nybegynder
08. januar 2004 - 12:48 #15
for eksempel:


if (x = 0) !(y = 0) && (x = 1) && (delete s)
Avatar billede lokum Nybegynder
08. januar 2004 - 12:55 #16
Ja, for eksempel.

PS. Space Invaders på 25 linjer. Det kunne jeg da sagtens have brugt flere linjer på! He he... (o;
Avatar billede barklund Nybegynder
08. januar 2004 - 12:57 #17
Men man skal være påpasselig, for hvis et statement returnerer false (eller noget, der som bool evaluerer til false), evalueres resten ikke...
Avatar billede mat Nybegynder
08. januar 2004 - 12:58 #18
barklund > Det er jo sort det der, det vil jeg gerne have forklaret :)
Avatar billede mat Nybegynder
08. januar 2004 - 13:01 #19
hvis x = 0 så y != 0 og x = 1 og slet s ...eller hvad?
Avatar billede barklund Nybegynder
08. januar 2004 - 13:01 #20
næ...

hvis jeg skriver:

true && true && false && true

Så når compileren til at evaluere de første tre udtryk...

Hvis jeg skriver:

x=1 && x=1 && x=0 && x=2

så ender x med at være 0....
Avatar billede mat Nybegynder
08. januar 2004 - 13:04 #21
puha sikke noget :)
Avatar billede barklund Nybegynder
08. januar 2004 - 13:08 #22
uhm! det er grimt og derfor meget frarådeligt! men så kan man putte || ind:

x=1 && x=1 && (x=0 || x=2)
Avatar billede lokum Nybegynder
08. januar 2004 - 15:37 #23
ja, puha da 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