我有一个Squeak Morphic GUI的图像,它包含一些透明部分,因此不应该接受任何鼠标事件等但只是可见,但它需要在其他变形前面可见.
这就是为什么我认为将出现的鼠标事件传播到底层变形是有用的.有没有人知道我的问题的解决方案或解决它的其他建议.
V <- mouseDownEvent
_____________________________ <- transparent image (BorderedMorph)
_____ _____ _____
_| |___| |___| |__ <- buttons waiting for click and drop events
_____________________________ <- basic morph
Run Code Online (Sandbox Code Playgroud)
我希望这能说明我的问题.
我想知道使Morphic特别的事情.
请不要在这里推广Nautilus或Glamour.我正在使用Pharo 1.3(没有计划迁移到Pharo 1.4或2.0).它似乎是OmniBrowser的许多版本.哪一个是最受测试的(在覆盖的意义上)或只是无人驾驶?
我有一些问题:
谢谢
最近在线发布了一个Spec文档,它与Polymorph项目有什么关系?阅读这些项目的未来会很高兴.Polymorph是否已停产?
在许多语言中,您可以执行以下操作:
while true:
handle events like keyboard input
update game world
draw screen
(optional: delay execution)
Run Code Online (Sandbox Code Playgroud)
虽然这远非最佳,但它应该足够简单的游戏.
你是怎么在Squeak Smalltalk做到这一点的?
我可以阅读键盘输入并对其做出反应,如wiki.squeak.org所述.但是,如果我尝试执行类似的东西
1 to: 10 do: [ :i | game updateAndDraw ]
Run Code Online (Sandbox Code Playgroud)
所有事件只在循环执行后才被处理.
我有一个应用程序,它在一个Morph中拥有它的整个GUI.Pharo和Squeak在主机操作系统中有一个窗口.
现在我想把这个Morph绑定到一个Pharo/Squeak窗口,它填充整个Pharo/Squeak窗口,调整大小(并更新Morph的布局),当Pharo/Squeak窗口调整大小并且以某种方式用户没有(意外)可能访问除Morph之外的任何东西(这只是关于可用性,而不是关于安全性!).
我怎样才能实现这一目标?
使用Pharo 1.4夏季进行测试.我认为最好用截图来解释它,代码如下.
这是我的初始状态(我现在用我的代码得到的):

我希望在打开时水平填充组框变形,如下所示:

调整大小后,我希望组框变形以保持边界,即:

这是我试过的代码:
| s morph1 morph2 row groupBox scroller |
s := ScrollPane new.
morph1 := BorderedMorph new.
morph2 := BorderedMorph new.
row := UITheme builder newRow: {morph1 . morph2}.
groupBox := UITheme builder newGroupbox: 'Group Box Test' for: row.
groupBox
layoutFrame: (LayoutFrame fractions: (0 @ 0 corner: 1 @ 0.8));
vResizing: #spaceFill;
hResizing: #spaceFill;
layoutChanged.
scroller := s scroller.
scroller
addMorph: (groupBox position: 0@0)
fullFrame: (0 @ 0 corner: 0.8@0.5).
s scroller color: Color white. …Run Code Online (Sandbox Code Playgroud) 我有两个变形,一个在另一个.
a:= Morph new.
b:= Morph new.
a addMorph: b.
a openInWorld.
Run Code Online (Sandbox Code Playgroud)
但是当我想通过做b位置改变b的位置:100 @ 100时,它永远不会显示变化,所以我在这里缺少什么?或者是否有责任跟踪b的位置?
我正在探索Mac OS 5.2中的Squeak。
我在RectangleMorph'r'中绘制线(PolygonMorph)。当我翻译'r'时,线条会翻译,但是当我重新缩放'r'时,线条不会重新缩放。
运行下面的片段。然后使用Halo转换并调整矩形“ r”的大小。您会看到“ p”行已翻译但未缩放。
r := RectangleMorph new.
"[Pharo] r:= Morph.new."
r extent: 500@500.
r openInWindow.
p := PolygonMorph
vertices: {(r left)@(r top). (r right)@(r bottom)}
color: Color white borderWidth: 2 borderColor: Color white.
r addMorph: p.
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到'p'重新缩放?
再见