SqueakByExample:11.2: Difference between revisions

From 흡혈양파의 번역工房
Jump to navigation Jump to search
(SBE morph조작하기 페이지 추가)
 
mNo edit summary
Line 3: Line 3:
morph 는 객체이기 때문에 Smalltalk에서 다른 모든 객체들처럼 조작할 수 있습니다: 메시지를 보내서 우리는 morph의 속성을 바꿀 수 있고 morph의 서브클래스를 만드는 것등을 할 수 있습니다.
morph 는 객체이기 때문에 Smalltalk에서 다른 모든 객체들처럼 조작할 수 있습니다: 메시지를 보내서 우리는 morph의 속성을 바꿀 수 있고 morph의 서브클래스를 만드는 것등을 할 수 있습니다.


모든 morph는 화면에 현재 열려있지 않을지라도, 위치와 크기를 갖고 있습니다. 모든 morph는 편리를 위해 화면의 직사각형 영역(region)을 차지하기 위한 것으로 고려될 수 있으며, 만약 모양(shapes)이 불규칙할 지라도 morphs의 위치(position)과 크기(size)는 그것들을 둘러싼 가장 작은 직사각형 “box(상자)”에 한정되며, 이 상자는 morph의 bounding box(묶기 상자)로 알려져 있거나 단지 morph의 “bound’로 알려져 있습니다. Position 메소드는 morph의 상단 좌측 모서리(또는 morph의 묶기 상자의 상단 좌측 모서리)의 위치를 기술하는 점(point)을 리턴합니다. 좌표 시스템(the coordinate system)의 원점(origin)은 화면에서 하단으로 증가하는 y좌표, 화면에서 우측으로 이동하는 x좌표로 볼 때, 화면의 상단 좌측 모서리입니다. Extent 메소드 또한 점(point)을 리턴 하지만, 이 점(point)는 위치보다는, morph의 너비(width)와 높이(height)를 지정합니다.  
모든 morph는 화면에 현재 열려있지 않을지라도, 위치와 크기를 갖고 있습니다. 모든 morph는 편리를 위해 화면의 직사각형 영역(region)을 차지하기 위한 것으로 고려될 수 있으며, 만약 모양(shapes)이 불규칙할 지라도 morphs의 위치(position)과 크기(size)는 그것들을 둘러싼 가장 작은 직사각형 "box(상자)"에 한정되며, 이 상자는 morph의 bounding box(묶기 상자)로 알려져 있거나 단지 morph의 "bound" 로 알려져 있습니다. Position 메서드는 morph의 상단 좌측 모서리(또는 morph의 묶기 상자의 상단 좌측 모서리)의 위치를 기술하는 점(point)을 리턴합니다. 좌표 시스템(the coordinate system)의 원점(origin)은 화면에서 하단으로 증가하는 ''y''좌표, 화면에서 우측으로 이동하는 x좌표로 볼 때, 화면의 상단 좌측 모서리입니다. Extent 메서드 또한 점(point)을 리턴 하지만, 이 점(point)는 위치보다는, morph의 너비(width)와 높이(height)를 지정합니다.  





Revision as of 05:09, 30 August 2012

morphs 조작하기

morph 는 객체이기 때문에 Smalltalk에서 다른 모든 객체들처럼 조작할 수 있습니다: 메시지를 보내서 우리는 morph의 속성을 바꿀 수 있고 morph의 서브클래스를 만드는 것등을 할 수 있습니다.

모든 morph는 화면에 현재 열려있지 않을지라도, 위치와 크기를 갖고 있습니다. 모든 morph는 편리를 위해 화면의 직사각형 영역(region)을 차지하기 위한 것으로 고려될 수 있으며, 만약 모양(shapes)이 불규칙할 지라도 morphs의 위치(position)과 크기(size)는 그것들을 둘러싼 가장 작은 직사각형 "box(상자)"에 한정되며, 이 상자는 morph의 bounding box(묶기 상자)로 알려져 있거나 단지 morph의 "bound" 로 알려져 있습니다. Position 메서드는 morph의 상단 좌측 모서리(또는 morph의 묶기 상자의 상단 좌측 모서리)의 위치를 기술하는 점(point)을 리턴합니다. 좌표 시스템(the coordinate system)의 원점(origin)은 화면에서 하단으로 증가하는 y좌표, 화면에서 우측으로 이동하는 x좌표로 볼 때, 화면의 상단 좌측 모서리입니다. Extent 메서드 또한 점(point)을 리턴 하지만, 이 점(point)는 위치보다는, morph의 너비(width)와 높이(height)를 지정합니다.


Squeak comment.png다음 코드를 워크스페이스에 타이핑 한 후 do it 을 실행합니다.

joe := Morph new color: Color blue.
joe openInWorld.
bill := Morph new color: Color red .
bill openInWorld.


joe position을 타이핑 한 후 print it 을 실행합니다. joe를 제거하려면, joe position: (joe position + (10@3)) 을 반복적으로 실행합니다.

size로 유사한 것을 수행하는 것도 가능합니다. joe extent는 joe의 size를 답변으로 내놓으며 joe를 키우려면, joe extent: (joe extent * 1.1)를 실행합니다. Morph의 색상을 변경하려면, 그 morph에 인수로서 원하는 Color 오브젝트와 함께 color: 메시지를 발송합니다. 예를 들면 joe color: Color orange 입니다. 투명도(transparency)를 추가하려면 joe color: (Color orange alpha: 0.5)를 시도하십시오.


Squeak comment.pngbill이 joe를 따르게 만들려면, 이 코드를 반복적으로 실행하십시오.

bill position: (joe position + (100@0))

만약 여러분이 마우스를 사용하여 joe를 이동시키고 이 코드를 실행하신다면, bill은 이동되어 joe의 오른쪽으로 으로 100픽셀에 놓이게 될 것입니다.

Notes