将Scala.js用于非Web,非Node.js应用程序涉及什么?

时间:2017-12-09 02:01:49

标签: javascript scala adobe scala.js

我已经使用过Scala.js,并且很喜欢它,用于编写网页功能。

我写了一些与图形相关的函数,例如在Canvas上绘制图片。我有兴趣将一些代码移植到Adobe Illustrator和Photoshop。它们提供三种语言的脚本:(1)AppleScript,(2)JavaScript和(3)Visual Basic。当然,API与Canvas完全不同,它将提供许多我希望利用的特定功能。

我的程序将被重写和扩展,因此开发将继续。我想知道我是否可以继续在Scala中开发,以及Scala.js是否可用于编写Adobe软件的代码,或者实际上是用JavaScript编写脚本的软件。

我认为我必须为Adobe API创建某种接口。那会涉及什么?该代码是用Scala编写的吗?它会成为一个插件吗?关于Scala编译器的内部,我需要了解多少?

值得这样做,还是应该选择用JavaScript开发? (我真的不想直接用JavaScript编写,因为我在浏览器中遇到过不好的经历,但我不能说我是它的专家。)

(请注意,我现在还不熟悉大部分Adobe API ......我现在正在调查。)

1 个答案:

答案 0 :(得分:1)

应该非常简单。关键是你需要为Illustrator和Photoshop中关心的API构建外观 - 强类型Scala描述。这并不特别困难:您只需要担心实际要调用的函数,并在Scala中描述函数签名。通过一些练习,这变得非常简单 - 一旦掌握了它,每个功能通常需要一分钟或更短的时间。 (我维护jQuery外观,这是较大的外观之一,并且在我练习后的一个下午将其中的大部分内容删除。)

假设他们使用的是合理的标准JavaScript,可能大部分都是这样 - 你定义这些外观,编写Scala.js代码来使用它们,并将编译好的JavaScript插入到工具中......