Lingo Dictionary > O-R > rotation

 

rotation

Syntax

the rotation of member whichQuickTimeMember
member(whichQuickTimeMember).rotation
sprite(whichSprite).rotation
the rotation of sprite whichSprite

Description

Cast member property and sprite property; controls the rotation of a QuickTime movie, animated GIF, Flash movie, or bitmap sprite within the sprite's bounding rectangle, without rotating that rectangle or the sprite's controller (in the case of QuickTime). In effect, the sprite's bounding rectangle acts as a window through which you can see the Flash or QuickTime movie. The bounding rectangles of bitmaps and animated GIFs change to accommodate the rotating image.

Score rotation works for a Flash movie only if obeyScoreRotation is set to TRUE.

A Flash movie rotates around its origin point as specified by its originMode property. A QuickTime movie rotates around the center of the bounding rectangle of the sprite. A bitmap rotates around the registration point of the image.

For QuickTime media, if the sprite's crop property is set to TRUE, rotating the sprite frequently moves part of the image out of the viewable area; when the sprite's crop property is set to FALSE, the image is scaled to fit within the bounding rectangle (which may cause image distortion).

You specify the rotation in degrees as a floating-point number.

The Score can retain information for rotating an image from +21,474,836.47° to -21,474,836.48° , allowing 59,652 full rotations in either direction.

When the rotation limit is reached (slightly past the 59,652th rotation), the rotation resets to +116.47° or -116.48° —not 0.00° . This is because +21,474,836.47° is equal to +116.47° , and -21,474,836.48° is equal to -116.48° (or +243.12° ). To avoid this reset condition, when you use Lingo to perform continuous rotation, constrain the angles to ±360° .

This property can be tested and set. The default value is 0.

Example

The following behavior causes a sprite to rotate continuously by 2° every time the playback head advances, limiting the angle to 360° :

property spriteNum

on prepareFrame me
	sprite(spriteNum).rotation = integer(sprite(spriteNum).rotation + 2) mod 360
end

Example

This frame script keeps the playback head looping in the current frame while it rotates a QuickTime sprite in channel 5 a full 360° in 16° increments. When the sprite has been rotated 360° , the playback head continues to the next frame.

on exitFrame
	if sprite(5).rotation < 360 then
		sprite(5).rotation = sprite(5).rotation + 16
		go the frame
	end if
end

Example

This handler accepts a sprite reference as a parameter and rotates a Flash movie sprite 360° in 10° increments:

on rotateMovie whichSprite
	repeat with i = 1 to 36
		sprite(whichSprite).rotation = i * 10
		updatestage
	end repeat
end

See also

flipH, flipV, obeyScoreRotation, originMode