JavaScript szakértés
Rendhagyó bejegyzés következik. A múltkor közzé tettem egy JavaScript programot, ami gombnyomásra más és más szöveget írt ki. Az még semmi. JavaScriptben a szövegbevitelnél kezdődik a valami. Mivel hogy a JavaScriptet nem igazán arra találták ki, hogy egy honlap oldalon bájcsevegjen a felhasználóval, hanem első körben mindenféle formok kitöltésére, ami után elhagyja az oldalt a kedves internetező, mert általában át lesz irányítva egy másik oldalra.
Ennek ellenére én megpróbáltam azt, ami sokáig lehetetlennek tűnt, hogy párbeszéd felületet hozzak létre JavaScriptben egy oldalon. Hogy ehhez nekifogjunk, először is kell egy szövegbeviteli mező, és egy terminál, amin a program által küldözgetett szöveg megjelenik. Nem volt egyszerű a szövegbeviteli mező megírása, mert külön eljárást kell írni arra, hogy csekkolja a billentyű lenyomásokat, és csak Enterre ugorjon. Utána kiértékelhetjük a szövegünket.
Mint a strukturális programozás nagy barátja (na és persze a strukturalizmusé), két függvényhívást is tettem a programba, az egyiket a képernyőlenyomás kiértékelésére, különös tekintettel arra, ha az Enter, a másikat a terminál alulról felfelé való szkrollozásához használtam. Külön eljárást kellett írni a szövegbeviteli mező kiürítésére minden Enter után, mert ettől majdnem hülyét kaptam, hogy benne maradtak az előző körben bevitt értékek a mezőben.
Sok időt elbasztam, mert arra gondoltam, hogy ennek a problémának a megoldásához kliens-szerver kapcsolat kell, de aztán rájöttem, hogy az élet nem olyan bonyolult. Még külön CSS vagy JS fájlok sem kellenek, az ember megoldja egy felületen az egészet. A program néhány alap irány kezdőbetűjét érti meg, ezt fogom majd kibővíteni szerintem egy kurva hosszú leírásokkal és elágazásokkal kibővített programrésszel, és kész is lesz a kalandprogram, idei projektem.
Egyébként innen már az egész nem webprogramozói, csak sima programozói munka, amiről képesítésem is van, ami feljogosíthat a bizakodásra. Szóval az idei szorgalmi feladatom egy sima szkriptnyelven megírt játék lesz, amihez nem igazán használok fel segédprogramot. Egyébként egyszerű rutinfeladatok, középiskolás fejjel megoldhatóak, amik kellenek, nem gondoltam, hogy egyszer hasznát veszem a koordináta-tengelynek, ami a következő lépésként felötlött bennem.
Ezzel mára búcsúzom, remélem, nem volt túl unalmas, és valaki megértette.
<!DOCTYPE html>
<html>
<body>
<div id="myDIV" style="height:500px;overflow:scroll;">
<br>Egy négyszögletű kerekerdőben vagy.<br>Utak vezetnek minden irányba.<br>
</div>
<input type="text" id="demo">
<script>
var szoveg = "";
function updateScroll(){
var element = document.getElementById("myDIV");
element.scrollTop = element.scrollHeight;
}
document.getElementById("demo").onkeypress = function() {myFunction()};
function myFunction() {
var x = event.key;
var y = event.keyCode;
if (y != 13) {szoveg = szoveg + x;}
if (y == 13){
var para = document.createElement("P");
switch (szoveg) {
case 'é':{ szov = "Északra mész.";break;}
case 'd':{ szov = "Délre mész.";break;}
case 'k':{ szov = "Keletre mész.";break;}
case 'ny':{ szov = "Nyugatra mész.";break;}
default: szov = "Merre akarsz indulni?"
};
t = document.createTextNode(szov);
para.appendChild(t);
document.getElementById("myDIV").appendChild(para);
updateScroll();
document.getElementById('demo').value='';
szoveg = "";
}
}
</script>
</body>
</html>
Deprecated: mb_strrpos(): Passing the encoding as third parameter is deprecated. Use an explicit zero offset in /home/yesokhu/madinhungary.org/inc/_ext/_url_rel2abs.php on line 157