1

を使用してアクションスクリプトからluaの関数を呼び出しています callstack : Array = luaAlchemyInstance.doString("luafunction");

私の関数はいくつかの値を返す必要があります

function luafunction()
return true, 125
end

as3 の関数から返されたコールスタック配列を見ると、成功/失敗の部分だけが表示されます。配列の長さは 1、true で、戻り値は含まれていません。

何がうまくいかないのですか?乾杯

4

3 に答える 3

1

lua-alchemy についてはわかりませんがdoString()、標準の Lua と同じセマンティクスに従う場合、関数を呼び出す適切な方法は次のようになります。

callstack : Array = luaAlchemyInstance.doString("return luafunction()");
于 2011-01-17T20:14:49.480 に答える
1

doString()呼び出しによって返された値の配列を返します。その配列の最初の項目はtrueorfalseで、呼び出しの成功または失敗を示します。の場合false、2 番目の項目はエラー メッセージです。

また、doString()実際の Lua コードを引数として受け取ることに注意してください。

doString("return luafunction()")

ドキュメントを参照してください。

于 2011-01-18T06:47:03.847 に答える
-2

一度に 1 つの変数型 (Number、String、Boolean など) を返す Actionscript の関数しか見たことがありません。

ブール値と Number/int/uint 値を同時に返そうとしているようです。

次のように、両方をオブジェクト値として返すこともできます。

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

次に、次のような方法で値を取得できます。

trace(obj.myBoolean, obj.myNumber);
于 2011-01-17T19:55:26.517 に答える