Field:常见问题

看了一些文档,我决定还是先把这块放到介绍之后,大家先了解一下常见问题,就不会在以后的学习中傻逼了。翻了很久,有点长,不过Field的文档真的写的非常全面,等我慢慢翻吧 :s。本篇原文在这里

仅有Mac OS X版本?

Field看起来不错,为什么你们要将其限制在Mac用户群中?
难道这不仅仅是Java和Python和OpenGL吗?当然是。两件事,一:它是开源的,你可以在问我们之前自己做一个PC端口。我们并未采取积极的步骤来限制你们,而事实正好恰恰相反。第二,Field基于Java和OpenGL,一个PC端口应该不是那么难的一件事。最初也是最棘手的事是确保“外观和感觉”正确。
真正的难题是:我们(OpenEnded团队)在我们每天的练习中都使用Field,而我们的器材恰巧是基于Mac的。Field在OS X下能够完美工作是我们如何偿还抵押贷款以及照养我们家庭的一个重要部分。在软件开发中,运行于OS X的Field的一个不幸的说法叫做dogfooded
如果你真想在Mac以外的系统上运行Field,请看这里

救命,我下载了这玩意然后我找不着北了

它不断要求我安装Mercurial,然后就退出了。
目前,这是一个bug。如果你不想那么麻烦的话,就顺手把Mercurial给装了吧。

我面前是一个空白窗口和一个据说废掉了的文本编辑器。接下来怎么办?
要写代码,你需要一个box(一个可视化元素)来装它们。在那又大又空的窗口(画布)上右键然后选择’new visual element(新可视化元素)’。现在你便能往编辑器里写代码了。

我已经写了一些代码,然后呢?
Field是完全为了执行代码而创造的,因此它具备许多,许多执行代码的方式。command+return执行你光标所在行或你选中的代码;command+0(零)执行你光标所在编辑器里的所有代码;按住option键在box上左键单击执行同样(以及更多)的命令。

我是一个编程人员,但貌似发生了一些错误

我是一个Python高手并且知道我在做什么,但却无法使用<<insert Python Library here(在此插入Python库)>>
首先,你可能需要告诉Field你的Python包(使用插件管理器)。第二,如果你使用的Python库依赖于C的库,那么你可能就不那么走运了。Field是一个基于Java的Python环境并使用Python基于Java的解释器,Jython。如果你仍无法运行某些东西,那只能给我们发邮件了。

我是一个Java高手并且知道我在做什么,但我却不能让Field看到我的任何代码。
使用插件管理器向Field指出你的代码。你可以拥有.jars和“裸体的”类层叠目录。

Field运行很好,但当我尝试使用<<insert native library here(在此插入本地库)>>时,它就罢工了。
Apple默认倾向以64位运行Java小程序。很多本地库仅支持32位。因此,它们都不会工作。不用怕!Field可以运行于一个32位的虚拟机上。你可以在插件管理器页面查看介绍。

Processing插件

我写background(200)然后执行它,却什么都没有发生,是整个Processing插件都傻逼了吗?
不。当你写下background(200)并想让你的小程序改变背景色的话,需要顺序做四件事。首先,打开Processing插件 —— 遵循这个介绍。第二,Field需要找到一个Processing程序 —— 通常位于你的Application目录下。第三,你必须选择”inject applet into global namespace(注入小程序到全局命名空间)”,遵循这个介绍。最后,你需要为你将要往里边写“小程序”代码的box做标记以是其与Processing环境相连 —— 遵循这个介绍

我写int something = 4;却什么都没有发生 / Field罢工
Field的主体语言是Python而不是Java。但你似乎是在编写Java。放松;找点更深入的时间读读Processing简明教程,然后继续看看优秀免费的Python教程。它是很棒的语言,你会爱上它的。
你可以在Field里写Java,参照其他语言。但可能这并非你来此的理由。

HTML样式色(就像,#FF0033)无法使用
它们当然不能。Field的主体语言是Python而不是Java。但你似乎是在编写Processing/Java。在Python里,#是注释符号。看看优秀免费的Python教程。它是很棒的语言,你会爱上它的。
要确切回答这个问题,用0x取代#,就像写background(0xFF0033。这同样适用于Java(和C,和Perl,和Ruby…)。我希望Processing人认为维持它们的词法是值得的。

Field看起来并不懂width(或者height或者…)
这个教程底部’gotchas’的部分。

当我打开另一个sheet的时候,Field不干了
Field仅支持一次打开一个Processing插件,因为插件是“对于每个sheet”的,你仅能得到一个能于Proessing小程序直接对话的sheet。这是Field限制的一部分,也是Processing结构限制的一部分(可以理解的,因为在Processing中,你一次只能运行一个小程序)。我们正在积极的研究它。

那么,除了default.field,我还能如何在一个sheet里做Processing的事情?
直到我们或其他任何人能解决上边的bug之前,你需要做”Processing Plugin shuffle”

  • 首先关闭default.field
  • 然后打开其他什么东西,或者新建一个文件或其他什么;
  • 接受说你无法使用Processing的信息;
  • 为你刚打开的文件设置”File->Automatically open at launch”
  • 重启Field

另外一个选择是通过命令行启动Field:
alias f=/Applications/field.app/Contents/MacOS/JavaApplicationStub
f -field.scratch myFile.fiel
d
如果文件不存在,它会经由命令在工作间被创建。

Field并不能和我下载的Processing库配合工作
Field应该能与你在网上找到的任何”Processing”库配合使用。我们喜欢找到.jars然后安装它们。然后当所有Processing库都真的是打着其他烙印的Java库之后,两件事需要提醒:

  • 如果一个库有一个本地组件(一个 .jnilib 或一个 .dylib),第一个麻烦便是你需要降级使用32位的Java虚拟机 —— 参看插件管理器的介绍。
  • 有时,Processing库使用reflection来与添加到Processing小程序的方法对话。有时这些方法不被定义于接口或任何东西中。这对我们(还有对于Ruby-Processing和其他有趣的东西)来说很糟。告诉他们停止这么干。

如果你不能在Field里使用一个有趣的库 —— Processing的或者其他语言的 —— 给它们的开发者写封邮件吧。

进阶制图

我该如何打开一个制图窗口?你们并不希望我在这个灰色的画布上搞艺术,不是么?
Field是一个为探索你自己的Java代码库而创造的开发环境。对我们来说,我们有一个OpenEnded团队代码库,它包含着很多很多java类,它们被Field用来一片片组织、测试和探索艺术领域。其他使用Field的人有他们自己的Java代码库。Field有对于被称为Processing的代码库的一点点支持,但真的只是一点点(两个简短的库)。
除了制作版画和进行建筑学的探索之外,我们并不真的在Field的画布上进行艺术创作,我们在一个独立的窗口里这么做;然后我们希望你也能同样如此。最简短的回答是,使用Processing的支持开一个窗口,然后在那上边画东西。中级的回答是,你可以使用你选择的任何基于java的制图系统(有一些是开源的)。
长一点的回答是,为我们的艺术服务的制图系统恰巧是Field用来绘制其用户界面(UI)的制图系统,因此那个制图系统早已存于你的硬盘内。我们认为这是一个很棒的制图系统。那个制图系统最初的(python)界面可以在找到。这与Processing的设置非常不同。
另外的制图界面是基于PLine的绘制界面(看起来像2d但却是3d)。最近,画布上基于PLine的绘制界面对于动画来说已经足够快了,但实际上它却是为表示法(notation)、UI设计和基于PDF的印刷品制作而设计的。

外观

我能把tab的尺寸调小一点吗?
是的。一个命令行参数 —— editorTabSize。将它设为2(默认是4)。
与其他“命令行参数”一样,如果你并未实际使用命令行调用Field,你可以再次在中端内这么做并忘掉其它所有。
defaults write com.openendedgroup.Field editorTabSize 2

灰色的背景让我感到沮丧 / 我用Field制作PDF,我能把背景变白吗?
秘密的咒语是S.window.background[:]=(1,1,1)。那个1,1,1指的是r,g,b。

Be Sociable, Share!

发表评论

电子邮件地址不会被公开。 必填项已用*标注