SqueakByExample:11.3

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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