2013-04-02 38 views
5

Tôi có hai hình thái là một trong những hình thức khác.cách thay đổi vị trí định dạng phụ

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

nhưng khi tôi muốn thay đổi vị trí của b bằng cách thực hiện vị trí b: 100 @ 100, nó không bao giờ hiển thị thay đổi, vì vậy tôi thiếu gì ở đây? hoặc là bằng cách nào đó trách nhiệm của mình là theo dõi vị trí của b?

+0

là 'Morph' thậm chí hoàn toàn đủ để sử dụng nó, bạn không cần phải sử dụng một' RectangleMorph' hoặc một số lớp con bê tông khác của 'Morph'? –

+2

@Shakedown Có, Biến đổi đủ hoàn chỉnh để sử dụng trực tiếp. –

Trả lời

6

này nên làm việc:

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

Kết quả:

enter image description here

Lưu ý rằng các vị trí là tuyệt đối, nếu bạn muốn vị trí tương đối bạn phải làm một cái gì đó như:

morph2 position: (morph1 position + ([email protected])) 

Nếu bạn thêm Hình thái vào cửa sổ, bạn có thể hav e xem SystemWindow #addMorph: fullFrame: cung cấp khả năng tốt hơn để định vị các hình con. Morph cũng thực hiện #addMorph: fullFrame: nhưng bằng cách nào đó điều này dường như không làm việc cho tôi trong Pharo 2.0.

Có một cái nhìn tại địa chỉ: Pharo collaborActive book và tại chương Basic Widgets của Pharo bởi Ví dụ 2.

Các vấn đề liên quan