2011-01-17 7 views
1

Im mit einer Funktion in Lua von Actionscript-Aufruf mit callstack : Array = luaAlchemyInstance.doString("luafunction");Rückgabewerte von dem Aufruf eine Funktion lua Alchemie

meine Funktion soll einige Werte zurückgeben

function luafunction() 
return true, 125 
end 

Wenn ich an der Aufrufliste Array von der zurück aussehen Funktion in As3, ich erhalte nur den Erfolg/Fehler Teil. Die Array-Länge ist 1, wahr und enthält keinen meiner Rückgabewerte.

Jede Idee, was schief läuft? Prost

+3

Ich weiß nicht lua-alchemy, aber sollte es nicht luaAlchemyInstance.doString ("Return Luafunktion()") sein? Beachten Sie die Rückgabe- und die Anrufklammer. –

+0

@Miky: Sie sollten das als Antwort posten, damit wir Ihnen die richtige Anerkennung geben können! –

+0

Hey, eine erste Frage über Lua-Alchemy auf SO! Cool! :-) –

Antwort

1

doString() gibt Array der Werte zurück, die von einem Aufruf zurückgegeben werden. Das erste Element dieses Arrays ist true oder false, das den erfolgreichen oder fehlgeschlagenen Anruf anzeigt. Wenn es false ist, ist das zweite Element die Fehlermeldung.

Beachten Sie auch, dass doString() tatsächlichen Lua Code als Argument, so sollte es

doString("return luafunction()") 

Siehe documentation und example sein.

-2

Ich habe nur Funktionen in Actionscript gesehen, die jeweils einen einzelnen Variablentyp (Number, String, Boolean, etc) zurückgeben.

Es sieht so aus, als ob Sie versuchen, einen booleschen Wert und einen Number/int/uint -Wert gleichzeitig zurückzugeben.

Sie könnte nur versuchen, sowohl als Objektwerte zurückkehren, so etwas wie dieses:

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

Dann können Sie Ihre Werte, die durch so etwas wie abrufen:

trace(obj.myBoolean, obj.myNumber); 
+0

Sorry, aber die Frage ist, Lua-Funktionen mit Lua-Alchemy aufzurufen, nicht nur einige Werte aus beliebigem AS3-Code zurückzugeben. –

1

Ich weiß nicht, lua-alchemy, aber wenn doString() die gleiche Semantik wie in Standard Lua folgt, sollte die richtige Art und Weise, um die Funktion aufzurufen:

012 sein