В AthensTutorial, откуда берется холст?

Я делал AthensTutorial, я понимаю первый шаг

surface := AthensCairoSurface extent: self extent asIntegerPoint.

а затем шаг 2

surface drawDuring: [:canvas |

"First, we clear the surface"
surface clear. 

"we can use 

surface clear: Color black.  

as well. A #clear is equivalent to: (surface clear: Color transparent).   "

"Let''s draw a simple green rectangle"
canvas setPaint: Color green.
canvas setShape: (40@40 corner: 100@100).
canvas draw.

]

Откуда берется холст? где определяется? Я просто не понимаю эту часть.

1 ответ

Решение

Это трюк, который вы увидите в различных средах Smalltalk. 'canvas' - это параметр блока, который вы передаете в #drawDuring:. Вы можете назвать это так, как хотите, это полностью зависит от вас. Метод #drawDuring: создаст экземпляр canvas и передаст его вашему блоку, вызвав для него метод BlockClosure>>value:.

Другие вопросы по тегам