Kil*_*lon 6 graphics smalltalk pharo cairo athens
我正在做雅典教程,我理解第一步
surface := AthensCairoSurface extent: self extent asIntegerPoint.
Run Code Online (Sandbox Code Playgroud)
然后第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.
]
Run Code Online (Sandbox Code Playgroud)
帆布来自哪里?在哪里定义?我只是不明白那一部分.
这是你将在各种Smalltalk框架中看到的技巧.'canvas'是传递给#drawDuring:的块的参数.你可以按照你想要的方式命名,这完全取决于你.方法#drawDuring:将创建一个canvas实例,并通过调用BlockClosure >> value:方法将其传递给您的块.