5
我有两个变形,一个在另一个。如何改变子形态位置
a:= Morph new.
b:= Morph new.
a addMorph: b.
a openInWorld.
但是当我想要做的B位置改变B的位置:100 @ 100,它永远不会显示的变化,所以我缺少什么吗?或者是否有责任跟踪b的位置?
我有两个变形,一个在另一个。如何改变子形态位置
a:= Morph new.
b:= Morph new.
a addMorph: b.
a openInWorld.
但是当我想要做的B位置改变B的位置:100 @ 100,它永远不会显示的变化,所以我缺少什么吗?或者是否有责任跟踪b的位置?
这应该工作:
| morph1 morph2 |
morph1 := Morph new.
morph1 color: Color red.
morph1 extent: [email protected]
morph2 := Morph new.
morph2 color: Color green.
morph2 extent: [email protected]
morph1 addMorph: morph2.
morph2 position: [email protected]
morph1 openInWorld.
结果:
注意,位置是绝对的,如果你想要的相对位置,你必须做一些事情,如:
morph2 position: (morph1 position + ([email protected]))
如果你添加变形到一个窗口,你可以hav看一下SystemWindow #addMorph:fullFrame:它提供了更好的位置子类型的可能性。 Morph还实现了#addMorph:fullFrame:但不知怎的,这在Pharo 2.0中似乎不适用于我。
看一看:Pharo collaborActive book 并通过实例菲罗的基本窗口部件第2章
是'Morph'甚至完全足够使用它,也不需要使用一个'RectangleMorph'或一些Morph'的其他具体子类? –
@Shakedown是的,Morph足够完整,可以直接使用。 –