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足夠完整,可以直接使用。 –