其他分享
首页 > 其他分享> > [触动精灵]触动精灵官方手册流水账2

[触动精灵]触动精灵官方手册流水账2

作者:互联网



如何在资源目录下建立子目录?????


writePasteboard、readPasteboard 读写剪贴板



字库工具教程

https://www.zybuluo.com/miniknife/note/629179#%E5%8F%96%E8%89%B2%E6%8A%80%E5%B7%A7

注意

1.截图一定要用取色器的图 因为这里的图是原样大小 其他的比如实时屏幕 或者其他的 都有可能被缩小了

2 从我个人使用情况看 这个字库的识别率 真的有点差。。没有什么实用价值 不推荐使用



协程 和lua的协程没发现什么大区别


浮动窗口   dialog的强化版  用的也很少 不过了解下

和UI窗口区分开来

1.dialog(string, time)--显示某些提示文字
2.dialogRet(text, cbtn, btn1, btn2, time)--显示几个按钮供人选择点击
3.dialogInput(title, format, btn)--提供一个输入框供人输入内容

4 浮动窗口--包含上面的功能还更加强大(没有提供输入框的部分)  浮动窗口的组件   一个是显示文字的组件 一个是显示图片的组件 还有1个是按钮组件 而且这按钮可以触发对应的事件

官方的例子

http://www.touchsprite.com/helpdoc#/doc?id=156


脚本UI--直接用TSLib库的便捷UI函数就搞定了


os.execute非常强大  但是对于ios不熟悉 不知道linux命令 在ios下是否能用

查询后面能用的命令  百度  Andriod Shell  关键字 可以找到很多


--新建文件夹
function createFolder(path)
    return try{
        function ()            
            --下面代码随便写 有可能抛出异常即可    
            path=string.trim(path)
            os.execute("mkdir "..path)--创建文件夹
        end,
        catch{
            function (errors)
                --这里对应函数名要改
                local tempStr=""
                tempStr="函数[" .. tostring("createFolder") .. "] 错误信息:".. tostring(errors)
                traceprint(tempStr)
                dialog(tempStr, 3)
            end            
        }
    }
end
--复制文件
function copyfile(path,to)
    --os.execute("cp -rf "..path.." "..to);
        return try{
        function ()            
            --下面代码随便写 有可能抛出异常即可    
            path=string.trim(path)
            to=string.trim(to)
            os.execute("cp -rf "..path.." "..to)--复制文件
        end,
        catch{
            function (errors)
                --这里对应函数名要改
                local tempStr=""
                tempStr="函数[" .. tostring("copyfile") .. "] 错误信息:".. tostring(errors)
                traceprint(tempStr)
                dialog(tempStr, 3)
            end            
        }
    }
end
--剪切文件
function movefile(path,to)
    --os.execute("cp -rf "..path.." "..to);
        return try{
        function ()            
            --下面代码随便写 有可能抛出异常即可    
            path=string.trim(path)
            to=string.trim(to)
            os.execute("mv "..path.." "..to)--剪切文件
        end,
        catch{
            function (errors)
                --这里对应函数名要改
                local tempStr=""
                tempStr="函数[" .. tostring("movefile") .. "] 错误信息:".. tostring(errors)
                traceprint(tempStr)
                dialog(tempStr, 3)
            end            
        }
    }
end


IO库 看上了遍历文件夹下的所有文件 和 递归遍历

触动下似乎无法调用lfs库  难受   递归遍历我再想想

--遍历目录 
function scanPath(path)    
    return try{
        function ()            
            --下面代码随便写 有可能抛出异常即可    
            local a 
            local f = {};
            if string.sub(path,-1,-1) ~= "/"then
                path = path .. "/"
            end        
            a = io.popen("ls "..path)
            for l in a:lines() do
                    table.insert(f,l)
            end
            a:close()
            return f
        end,
        catch{
            function (errors)
                --这里对应函数名要改
                local tempStr=""
                tempStr="函数[" .. tostring("scanPath") .. "] 错误信息:".. tostring(errors)
                traceprint(tempStr)
                dialog(tempStr, 3)
            end            
        }
    }
end


但是递归遍历文件夹我再想想看  触动并不支持lfs库 写起来很难受


触动下实现按键的keypress功能

触动没有把安卓的和IOS的整合到一起  

安卓的 http://www.touchsprite.com/helpdoc#/doc?id=1613  对应的按键码资料  http://www.touchsprite.com/helpdoc#/doc?id=214

ios的http://www.touchsprite.com/helpdoc#/doc?id=73   对应的按键码资料  http://www.touchsprite.com/helpdoc#/doc?id=223


拿安卓环境下为例  输入0 变成了 os.execute("input keyevent KEYCODE_0")      点击del键就变成了 os.execute("input keyevent KEYCODE_DEL") 也等同于 inputText(“\b”)

可惜 触动官方没有整合到一起  我这里稍微整合下

--点击虚拟按键(不包含输出)
--两个参数 第一个是安卓下对应的该按键的按键码 另外一个参数自然是IOs对应的按键码 我懒得对2个按键码表进行归类 偷个懒
--支持需要配置表  config["systype"] 获取当前系统是安卓还是ios
--用法 keyPress(“KEYCODE_0”,"0") 代表点击0  如果不知道比如安卓下的某个对应键的值可以为空字符串 keyPress(“”,"0") 不过这样的话安卓系统下执行 就不会进行操作了
function keyPress(a,i)
        return try{
        function ()            
            --下面代码随便写 有可能抛出异常即可    
                local str="input keyevent "
                a=a or ""
                i=i or ""
                if config["systype"]=="android" then
                    
                    if a~="" then
                        os.execute(str .. a)
                    end
                else
                    if i~="" then
                        os.execute(str .. a)
                    end
                end
        end,
        catch{
            function (errors)
                --这里对应函数名要改
                local tempStr=""
                tempStr="函数[" .. tostring("keyPress") .. "] 错误信息:".. tostring(errors)
                traceprint(tempStr)
                dialog(tempStr, 3)
            end            
        }
    }
end


触动专业版 比普通版多了点东西

Mysql数据库的支持

中控接口

多线程的支持


函数:randomsTap 随机滑动点击   带滑动轨迹的鼠标随机点击


精确滑动  我又一次尝试  奈何还是无法达到精确的目的  步长尽可能的少 可以避免滑动的惯性

比较接近的 又简练的 用这个  touch():Step(2):on(333,837):move(333,523):off()


百度文字识别

这个比触动本身的那个字库识别的确靠谱了太多 而且开始的识别是免费的

http://ai.baidu.com/tech/ocr/general?track=cp:ainsem|pf:pc|pp:chanpin-wenzishibie|pu:wenzishibie-baiduocr|ci:|kw:10002846

image

获取对应的2个字符串

image

写入到触动的例子中  确定好识字的范围 就可以了

image

标签:流水账,function,end,..,精灵,tempStr,触动,path,tostring
来源: https://www.cnblogs.com/zjl8455482/p/11409271.html