I've started using Sparrow and I've immediately hit a problem of which I know the solution but I am not happy with it. It seems that all display objects rotate around (0,0) in their local coordinate system. This is the least useful point that I could think of for rotation. Let me describe a scenario that best illustrates what I am trying to show.
Imagine two display objects: a compass background SPImage and a compass hands SPImage. Imagine that both images have a width of height 100. So I add my background SPImage as a child to the stage at (0,0), then add the compass hands as a child to the background SPImage at (0,0) so one is rendered above another. This is great, you have a compass.
Now I want to rotate the hands but the rotation of the hands will be around (0,0), when really I want it around (50,50) in the hand's local coordinate system (the mid point).
A elegant solution would be to provide two more properties: originX and originY. These will map the display object's (originX, originY) pixel on to the parent's pixel at the display object's (x,y) properties. It will also mark the pivot point for any rotations.
So applied to my example above. The background would be at (0,0) with an origin of (0,0) and the hands will be at (50,50) with the origin at (50,50) too. This will map the origin point of the hands object (50,50) directly on top of the background at it's coordinate system of (50,50). Now by adjusting the rotation property the hands will rotate as expected.
Now I also know this can be done by adding another display object between the background and the hands and rotating that intermediate display object. But wouldn't this be a lot easier. Sometimes it nice to make the x, y coordinates reference the centre of the sprite instead of the top-left corner, and avoid the subtraction of (width*0.5f) etc.
I've put it on these forums for two reasons: 1) any feedback on the idea, and 2) to see if anyone's done something similar already and would be willing to contribute it to the community.