Lua - getOrientation() throw Attempt to call global (a nil value)

Posted

技术标签:

【中文标题】Lua - getOrientation() throw Attempt to call global (a nil value)【英文标题】: 【发布时间】:2018-05-25 13:57:06 【问题描述】:

我正在尝试创建一个自动触摸脚本,该脚本将根据屏幕方向点击 2 个不同的点。

这是我的脚本:

CREATE_TIME=2017-12-11-19-34-51;
SCREEN_SIZE="0x0";

touchDown(0, 182, 1329);
usleep(16000);
touchUp(0);

usleep(40000000);

local o = getOrientation();
alert(string.format("Screen orientation is : %d", 0))

-- Check for the close button's location
local o = getOrientation();

if o == 1 then
touchDown(0, 1016, 68);
usleep(16000);
touchUp(0);
log("Portrait");

else 
touchDown(0, 1000, 1818);
usleep(16000);
touchUp(0);
log("Landscape");

end;

usleep(40000000);
touchDown(0, 827, 1114);
usleep(16000);
touchUp(0);

usleep(1000);

问题在于,在 getOrientation 行中,我在日志文件中收到错误:尝试调用全局“getOrientation”(一个 nil 值)

有人可以帮我提个建议吗?

【问题讨论】:

顺便说一句,你的意思可能是CREATE_TIME="2017-12-11-19-34-51" 【参考方案1】:

您可以调用 usleep 和 touchDown 而不会引发错误,这表明您使用的 AutoTouch 版本不支持 getOrientation。

我在该函数中发现的唯一两件事是 AutoTouch 参考中的相应条目,其中包含错误的代码示例:

 local o = getOrientation();
 alert(string.format("Screen orientation is : %d", 0));

0 应该是 o 才有意义。

否则你会一直打印Screen orientation is :0

还有一个人抱怨 getOrientation() 不管他做什么总是返回 1。

另外,在快速浏览 Autotouch 网站时,我发现至少 3 个死链接。他们网站上的最后一篇文章是 2016 年 8 月。

所以也许你最好使用其他东西。这个项目在我看来不是很有希望。

【讨论】:

是的,你对 0 的看法是正确的。这是他们文档中的一个错误,我没有看到这个问题。但无论如何,错误是在 getOrientation() 函数上。 你有类似的应用推荐吗?

以上是关于Lua - getOrientation() throw Attempt to call global (a nil value)的主要内容,如果未能解决你的问题,请参考以下文章

Android SensorManager.java getOrientation 和 getRotationMatrix 算法

如何从 getOrientation() 和 Open CV 代码返回方向角度?

javascript getOrientation_of_device_Landscape_Portrait

lua-nginx-module

Lua脚本不按顺序执行

Torch / Lua,如何选择数组或张量的子集?