使用JavaScript进行自定义目的
我正在写一个raytracer作为我的完整3d引擎的一部分。 我正在计划将JavaScript用于脚本语言,而不是编写自己的脚本语言。 问题是我该如何使用它? 顺便说一句,raytracer和用户界面是用C#编写的。
这显示了Javascript和c#之间的双向交互。
-
Type scriptType = Type.GetTypeFromCLSID(Guid.Parse("0E59F1D5-1FBE-11D0-8FF2-00A0D10038BC"));
dynamic obj = Activator.CreateInstance(scriptType, false);
obj.Language = "javascript";
obj.AddObject("MyClass",new JSAccessibleClass());
obj.Eval("MyClass.MsgBox('Hello World')"); //<--1
var result = obj.Eval("3+5"); //<--2
[ComVisible(true)]
public class JSAccessibleClass
{
public void MsgBox(string s)
{
MessageBox.Show(s);
}
}
有许多独立的JavaScript实现可以用于此目的:
这里是一个链接到JavaScript上的stackoverflow信息页面,其中列出了许多这些实现:https://stackoverflow.com/tags/javascript/info
尽管可以使用JavaScript作为.Net应用程序的脚本,但它并不是最流行的选择。 如果你可以选择其他语言 - IronPython或LUA.Net可能是选择,你会得到更好的支持。 我最近在类似的问题中列出了几个链接:用npc方法编写npc脚本以供c#使用类执行。
否则,JavaScript.Net(.Net框架的一部分)或其他实现,无论是明确的.Net还是使用.Net绑定,都可以用作脚本语言。
链接地址: http://www.djcxy.com/p/66541.html