A.12. Chapter 12
A.12.1. Exercise 1 solution
script countMe property X : 0 set X to X + 1 log "I've been called " & (X as string) & " times" end script repeat 10 times run countMe end repeat
A.12.2. Exercise 2 solution
on surfaceArea given radius:r return 4 * pi * r * r end surfaceArea
A.12.3. Exercise 3 solution
on rectangle given width:w, height:h script property width : w property height : h
property origin : {0, 0} as point on area() return width * height end area on perimeter() return (width + height) * 2 end perimeter on setOrigin given x:x0, y:y0 set origin to {x0, y0} as point end setOrigin on getOrigin() return origin end getOrigin end script end rectangle on square given side:s script property side : s on area() return side * side end area on perimeter() return side * 4 end perimeter end script end square -- test the new origin methods set R1 to rectangle given width:10, height: 20 setOrigin of R1 given x:100, y:200 getOrigin() of R1
A.12.4. Exercise 4 solution
You can't use the store script command because you want to store handlers and not a single script by name into a file. (Note: you could encapsulate both the rectangle and square handlers inside a script compound statement and then write that script out to a file.)
set shapes to load script file ((path to scripts folder as string) & "rects.scpt") set myRect to rectangle of shapes given width:15, height:20 set mySquare to square of shapes given side:12 log area() of myRect log perimeter() of mySquare
A.12.5. ...
Get Beginning AppleScript® now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.