nwjs(nodejs)写桌面应用(少儿英语学习项目经验总结)

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

项目背景

最近上三年级儿子的英语老是记不住单词,而他们又在上科学课,老师让练打字。打字和英语学习都没太适合小家伙的实际情况,因此就花了一个周末写下了这个项目。

实现功能

暂时实现了上面这些功能,至于题库单词配音、选择装载、错题存储、单词权重等想到的功能,先列在此,要是小家伙能用起来再说吧。

开发中遇到的问题

关键源码说明

题库的读入与题目队列的初始化

题库为指定目录下所有json文件,使用lodash辅助处理(开始用的underscore);题目队列生成时就随机打乱,为简化后面的操作。

var files = fs.readdirSync('./json');
    for(var k = 0; k < files.length; k++){
        if(__.endsWith(files[k],".json"))
            __.extend(lib, JSON.parse(fs.readFileSync("./json/" + files[k])));
    }
    //console.dir(lib);
    var keys = Object.keys(lib);
    for( var i = 0; i < keys.length; i++){
        if(problems.indexOf(lib[keys[i]]) < 0){
            problems.splice(__.random(problems.length-1),0,lib[keys[i]]);
        }
    }
    //console.dir(problems);

keyUp事件处理

打字练习库是a-z的一个键与值同等的对象,输入一个字母时,若与题目相等,则响应,开始我用的onkeydown,此时从界面取值是取不到的,所以写成了下面这个模式,想来改用onkeyup后是不是不用这样麻烦了,有空再测试一下。

function keyUp(e) {
    var ev= window.event||e;
    if (ev.keyCode == 13 && $("#inputInfo").val().trim().length > 0) {
        answerCommit();
    }else if(ev.keyCode == $("#problem").val().toUpperCase().charCodeAt()){
        answerCommit(ev.keyCode);
    }
}

答案提交处理

模拟了函数重载,根据有无参数,分别对打字练习和单词两种方式进行数据预处理。

function answerCommit(){
    var answer,problem;
    if(arguments.length == 0){
        answer = lib[$("#inputInfo").val().trim()];
        problem = $("#problem").val();
    }
    else if(arguments.length == 1){
        answer = arguments[0];
        problem = $("#problem").val().toUpperCase().charCodeAt();
    }
    if(answer==problem){

源代码

源码托管在开源中国,有兴趣的同学可以过去拍砖,呵呵。

https://git.oschina.net/zhoutk/ilearn.git

运行方法

全局安装nw.js

npm install nw -g

克隆源代码

git clone https://git.oschina.net/zhoutk/ilearn.git

安装依赖库

cd ilearn & npm install

运行项目

nw
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看