使用lua alchemy调用函数返回值

时间:2011-01-17 15:33:17

标签: actionscript-3 lua alchemy alchemyapi

我正在使用动作脚本调用lua中的函数  callstack : Array = luaAlchemyInstance.doString("luafunction");

我的函数应返回一些值

function luafunction()
return true, 125
end

当我查看as3中函数返回的callstack数组时,我只收到成功/失败部分。数组长度为1,为true,并且不包含任何返回值。

任何想法都会出错?干杯

3 个答案:

答案 0 :(得分:1)

我不知道lua-alchemy,但是如果doString()遵循与标准Lua相同的语义,那么调用该函数的正确方法应该是:

callstack : Array = luaAlchemyInstance.doString("return luafunction()");

答案 1 :(得分:1)

doString()返回调用返回的值数组。该数组的第一项是truefalse,表示呼叫成功或失败。如果是false,则第二项是错误消息。

另请注意,doString()将实际的Lua代码作为参数,因此它应该是

doString("return luafunction()")

请参阅documentationexample

答案 2 :(得分:-2)

我只见过一次ActionScript中的函数,它一次返回一个变量类型(Number,String,Boolean等)。

看起来你正试图同时返回一个Boolean和一个Number / int / uint值。

可以尝试将两者作为对象值返回,如下所示:

function luafunction():Object
{
var obj:Object = new Object();
obj.myBoolean = true;
obj.myNumber = 125;
return obj;
}

然后您可以通过以下方式检索您的值:

trace(obj.myBoolean, obj.myNumber);