2013-04-02 11 views
5

두 개의 모프가 하나씩 있습니다.서브 폼 위치 변경 방법

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

하지만 B 위치를 수행하여 B의 위치를 ​​변경하고자 할 때 : 100 @ 100, 그것은 변화를 보여주지 않았다, 그래서 여기에 무엇을 놓치고? 또는 어떻게 든 b의 위치를 ​​추적하는 책임은 무엇입니까?

+0

이'를 사용하기도 충분히 완성 Morph' 예에 의한 Pharo의 기본 위젯 장에서 :

은 보라 'Morph'의 다른 하위 클래스? –

+2

@Shakedown 예, Morph는 직접 사용하기에 충분합니다. –

답변

6

이 작동합니다 :

| 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])) 
: 위치는 상대 위치를 원하는 경우에 당신이 그런 짓을 할 필요가 절대 것을

enter image description here

Morphs를 창에 추가하면 다음과 같이 할 수 있습니다. SystemWindow #addMorph : fullFrame : submorph를 위치시키는 더 나은 가능성을 제공합니다. Morph는 또한 #addMorph : fullFrame을 구현합니다. 그러나 어떻게 든 Pharo 2.0에서이 기능이 작동하지 않는 것 같습니다. 당신은`RectangleMorph` 또는 일부를 사용할 필요가 없습니다, Pharo collaborActive book 과 2