我想了解使Morphic特别的事情。
答案 0 :(得分:6)
Morphic远远超过NSView或任何其他图形类,只允许重新实现一组有限的功能。 Morphic是一个极具可塑性的UI构建工具包。 Morphic背后的一些设计理念使这个意图明确:
#drawOn:
方法及其子变形的位置以其自己的坐标系表示。答案 1 :(得分:6)
警告:Smalltalk的实时动态环境为red pill。静态,冻结的语言对你来说永远不会是一样的; - )
简而言之:Morphic是一个虚拟世界,您可以直接探索实时对象(就像现实世界一样)。你有没有看过UI和......
虽然这些想法会导致任何其他环境中的痛苦和挫折,但在Morphic中则不然。
如果你想要打击你的思想,在一个形态世界中成为一个神:
启动Pharo图像,然后单击背景(实际上是“世界”)以显示世界菜单:
在其中一个菜单选项上显示“halos”(在我的Mac上按住Shift键并单击):
拖动“拾取”光环(中上部)并将其放在世界的某个位置:
享受您 想要的菜单项,现在可以使用它:
说真的,点击它,看看浏览器打开!!
有没有一个选项,你总是使用供应商埋藏了三个菜单级别?这有用吗?!这是Morphic等直播GUI环境的强大功能。
如果您有兴趣,请阅读John Maloney&兰德尔史密斯的论文Directness and Liveness in the Morphic User Interface Construction Environment
答案 2 :(得分:0)
标题未映射您的问题,所以我回答您的问题,而不是标题。
我已经阅读了过去两天有关Morphic的内容,并以我认为使morphic特殊的内容结束了。
Morphic非常适合live coding。这是一种直接映射,因此当更改代码时,屏幕上的输出也会更改。和/或如果更改了屏幕上的变形,则代码中的值也会更改。艺术表演太酷了!
但是Morphic的目标是实现更高的抽象度。从代码中抽象出了morph的属性。将SoC放在文件或fetch服务器端数据库中。
我认为WebStorage和JavaScript文件是存储交互更改的Morph属性的活动状态的好选择。您会看到-编程是通过每个Morph完成的。然后,该代码仅需要处理单击和拖动中的事件。
research的目标甚至将代码抽象化了。可以通过“变形”进行编码,以定义单击或拖动时发生的情况。变形可以像Scratch一样是拼图。
必须将程序备份到某个位置的文件中。我不认为在云上进行编码是安全的。因此,JS文件是唯一的选择(如果不设置服务器,则是一个选择),因为数据文件不允许在本地使用,甚至不能与Web应用程序位于同一文件夹中。 “相同来源”策略意味着相同的服务器-不是相同的文件夹。
应用启动时,Javascript文件(或首先为Web Storage)将建立变形世界。用户与那个世界互动。新状态可以存储在WebStorage中并通过下载进行处理。
您可以使用Lively Kernel作为文件中的语言,或将变形数据存储在对象中,或者将其存储为最容易生成的内容以下载为文件。
那么这有什么特别的呢?我不会重复接受的答案,但这是我的结论: