如何改变submorph位置

时间:2013-04-02 19:55:47

标签: smalltalk pharo squeak morphic

我有两个变形,一个在另一个变形。

a:= Morph new.
b:= Morph new. 
a addMorph: b. 
a openInWorld.

但是当我想通过做b位置来改变b的位置时:100 @ 100,它永远不会显示变化,所以我在这里缺少什么?或者是否有责任跟踪b的位置?

1 个答案:

答案 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.

结果:

enter image description here

请注意,这些位置是绝对的,如果您想要相对位置,则必须执行以下操作:

morph2 position: (morph1 position + (100@100))

如果你将Morphs添加到一个窗口,你可以看看SystemWindow #addMorph:fullFrame:它提供了更好的定位submorphs的可能性。 Morph还实现了#addMorph:fullFrame:但是在Pharo 2.0中,这似乎不适合我。

看看:Pharo collaborActive book 以及示例2中Pharo的Basic Widgets章节。