मैं लुआज + जावा का उपयोग कर नियंत्रक बनाने की कोशिश कर रहा हूं।मैं ऑब्जेक्ट्स को एक खुला लुज फ़ंक्शन में कैसे पास कर सकता हूं?
onTalk(obj)
obj:talk();
end
onWalk(obj)
obj:walk();
end
मैं आदर्श जहाँ मैं कार्यक्रम के के सभी रखेंगे (lua में लिखा) एक नियंत्रक परिभाषित करना चाहते हैं: मैं निम्नलिखित जावा
public class Duck {
public void talk() { System.out.println("Duck quacks!"); }
public void walk() { System.out.println("Duck walks!"); }
}
public class Person {
public void talk() { System.out.println("Person talks!"); }
public void walk() { System.out.println("Person walks!"); }
}
वर्गों और नियंत्रक के लिए निम्नलिखित lua स्क्रिप्ट है तर्क, और मैं उस जावा नियंत्रक से अपने जावा कोड में एपीआई का पर्दाफाश करना चाहता हूं। मैं निम्नलिखित दृष्टिकोण का उपयोग करने की कोशिश कर रहा था:
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine engine = sem.getEngineByExtension(".lua");
ScriptEngineFactory factory = engine.getFactory();
// Script defined above
CompiledScript cs = ((Compilable)engine).compile(MY_LUA_SCRIPT);
SimpleBindings b = new SimpleBindings();
b = newSimpletBindings();
LuaValue onWalkHandler = (LuaValue)b.get("onWalk");
//func.call(LuaValue.valueOf(duck)); // Passing duck object does not work ???
मैं ऑब्जेक्ट को LuaValue में पास करने में सक्षम नहीं हूं। मैं लुवा लिपि में जावा ऑब्जेक्ट कैसे पास कर सकता हूं?
पीएस: सामान्य रूप से, जावा और एम्बेडेड स्क्रिप्टिंग का उपयोग करते समय, क्या लोग एक स्क्रिप्ट में फ़ंक्शंस को बंडल करते हैं, या क्या प्रत्येक कॉलबैक के लिए एक अलग स्क्रिप्ट है?
पवित्र बकवास यह सोने है। धन्यवाद। – Qix