SqueakByExample:11.3

From 흡혈양파의 번역工房
Jump to: navigation, search

morph 의 합성(Composing Morphs)

새로운 그래픽 표현을 만드는 한 가지 방법은 하나의 morph 를 다른 morph 안으로 이동하는 것입니다. 이것을 합성composition 이라고 하며 morph 는 어떤 depth 라도 이동이 가능합니다. 사용자는 메시지 addMorph: 를 container morph 에 전송하여 morph 를 다른 morph 안쪽으로 이동시킬 수 있습니다.


Squeak comment.pngMorph 를 다른 morph 에 추가하는 작업을 시도해 보십시오.

star := StarMorph new color: Color yellow.
joe addMorph: star.
star position: joe position.


위 예제에서 마지막줄은 별을 joe 와 동일한 좌표로 이동시킵니다. 안쪽으로 포함된 morph 의 좌표는, 그릇이 되는 morph 가 기준이 되는것이 아니라 여전히 화면과 관련이 있다는걸 주의해 주시기 바랍니다. morph 의 위치를 설정하기 위한 많은 메서드가 있으며, Morph 클래스의 geometry 를 탐색browse 하면 원하는 morph 의 좌표를 얻을 수 있습니다. 예를들어, joe 내부의 별을 joe 의 중앙에 위치시키기 위해서 star center: joe center 를 실행해 보도록 합니다.

그림 11.2 : 투명한 파랑 모프인 joe 에 별을 포함하고 있습니다.


만약 마우스를 이용해서 별을 잡으려고 한다면, 실제로 joe 를 잡은것을 확인할 수 있으며, 두개의 morph 는 함께 움직이게 됩니다: 별은 joe 내부에 들어가있게 됩니다. joe 내부에 더 많은 morph 를 포함시키는것도 가능하죠. 게다가 이런 작업을 프로그램적으로 진행하기 위해서, 직접적인 조작 만약 여러분이 마우스로 별을 쥐었다면, 실제로 joe를 쥐게 된 것임을 발견하게 되실 것이며, 두 개의 모프는 함께 이동합니다: 별은 joe 내부에 삽입됩니다. joe내부에 더 많은 모프를 삽입하는 것이 가능합니다. 게다가, 이런 경우는 프로그램으로 조작하는것 외에도, 직접 조작으로 morph 의 삽입이 가능합니다.


Squeak comment.pngworld 메뉴에서 "object" 를 선택하고 "Graphics" 라벨이 붙은 버튼을 클릭하세요. Supplies 플랩으로부터 타원과 별을 드래그해주세요. 타원 위에 별을 이동시킨 후, 메뉴를[1] 불러내기 위해 별을 노랑 클릭합니다. embed into▷Ellipse. 를 선택하십시오. 이제 별과 타원이 함께 움직이게 됩니다.


서브모프sub-morph를 이동시키기 위해, joe removeMorph: star 또는 star delete 를 실행합니다. 이 작업은 직접조작으로도 가능합니다.


Squeak comment.png별을 두 번 파랑 클릭하십시오. Grab 손잡이 Black handle button.png 를 사용하여 타원으로부터 별을 드래그 해내주세요.


첫 번째 클릭은 타원의 Morphic 할로를 불러옵니다. 두 번째 클릭은 별의 Morphic 할로를 불러옵니다. 한번 클릭할때마다 Morphic 할로를 불러올 대상이 한단계씩 내려갑니다.


Notes

  1. 여러분은 또한 모픽 할로를 불러내기 위해 별을 파랑 클릭하고 빨강 메뉴 손잡이를 클릭할 수 있습니다.