2013-04-16 8 views
6

私はAthensTutorialをしていた、私は最初のステップAthensチュートリアルでキャンバスはどこから来ますか?

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: ([email protected] corner: [email protected]). 
canvas draw. 

] 

のですか?どこが定義されていますか?私はその部分を理解できません。

答えて

7

これは、さまざまなSmalltalkフレームワークで見られるトリックです。 'canvas'は#drawDuring:に渡すブロックのパラメータです。あなたはそれをあなたの望むように名付けることができます、それはあなた次第です。メソッド#drawDuring:は、キャンバスインスタンスを作成し、その上にBlockClosure >> value:メソッドを呼び出すことで、そのインスタンスにブロックを渡します。

+0

非常に感謝しています。 – Kilon

関連する問題