2013-04-02 31 views
5

Birinin diğerinde olduğu iki morf var.Submorph pozisyonunun nasıl değiştirileceği

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

ama b pozisyonunu yaparak kahvalti konumunu değiştirmek istediğinizde: 100 @ 100, bu değişikliği gösterir asla, bu yüzden burada ne eksik? veya b'nin pozisyonunu takip etmek bir şekilde sorumluluğunda mıdır?

+0

' kullanmak için bile yeterince tam Morph' mi Örnek tarafından Pharo Temel Widget'lar bölümde de:

göz at 'Morph' diğer somut alt sınıfı? –

+2

@Shakedown Evet, Morph doğrudan kullanılabilecek kadar tamamlandı. –

cevap

6

Bu çalışması gerekir:

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

sonucu:

morph2 position: (morph1 position + ([email protected])) 
: pozisyonları göreli konumlarını isterseniz böyle bir şey yapmak zorunda mutlak olduklarını

enter image description here

Not

Bir pencereye Morfları eklerseniz, SystemWindow #addMorph'a bakın: fullFrame: submorph'leri konumlandırmak için daha iyi olanaklar sunar. Morph ayrıca #addMorph: fullFrame uygular: fakat bu bir şekilde Pharo 2.0'da benim için işe yaramaz. Eğer bir `RectangleMorph` veya bazılarını kullanmak gerekmez, Pharo collaborActive book ve 2.

İlgili konular