我有两个变形,一个在另一个变形。
a:= Morph new.
b:= Morph new.
a addMorph: b.
a openInWorld.
但是当我想通过做b位置来改变b的位置时:100 @ 100,它永远不会显示变化,所以我在这里缺少什么?或者是否有责任跟踪b的位置?
答案 0 :(得分:6)
这应该有效:
| morph1 morph2 |
morph1 := Morph new.
morph1 color: Color red.
morph1 extent: 200@200.
morph2 := Morph new.
morph2 color: Color green.
morph2 extent: 50@50.
morph1 addMorph: morph2.
morph2 position: 100@100.
morph1 openInWorld.
结果:
请注意,这些位置是绝对的,如果您想要相对位置,则必须执行以下操作:
morph2 position: (morph1 position + (100@100))
如果你将Morphs添加到一个窗口,你可以看看SystemWindow #addMorph:fullFrame:它提供了更好的定位submorphs的可能性。 Morph还实现了#addMorph:fullFrame:但是在Pharo 2.0中,这似乎不适合我。
看看:Pharo collaborActive book 以及示例2中Pharo的Basic Widgets章节。