package { import flash.display.Sprite; import flash.events.Event; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; import flash.text.TextFormatAlign; [SWF(width=800, height=600, backgroundColor=0x000000)] /** * Rotates text in 3D space then animates it a la the Star Wars opening titles. */ public class graphic_flex_image_effects_06_Flex_ScrollingText extends Sprite { private var _textfield:TextField; /** * Constructor. Creates and rotates text, then sets up listener for ENTER_FRAME * to handle animating the text. */ public function graphic_flex_image_effects_06_Flex_ScrollingText() { _textfield = new TextField(); _textfield.width = stage.stageWidth/2; _textfield.selectable = false; _textfield.autoSize = TextFieldAutoSize.LEFT; _textfield.multiline = true; _textfield.wordWrap = true; // make sure to use different font if Impact is not installed var format:TextFormat = new TextFormat("Impact", 40, 0xFFFFFF); format.align = TextFormatAlign.JUSTIFY; _textfield.defaultTextFormat = format; _textfield.text = "This is a simple example of scrolling text like you might find at the beginning of a movie that came out a long time ago in a galaxy exactly like this one. . ."; // place text in bottom third of stage _textfield.y = stage.stageHeight/3; // the holder is what is positioned in 3D space so that // text can scroll on single axis and the perspective // can more easily be maintained var textHolder:Sprite = new Sprite(); textHolder.x = stage.stageWidth/2 - _textfield.width/2; textHolder.y = stage.stageHeight/2; textHolder.z = -200; textHolder.rotationX = -60; textHolder.addChild(_textfield); addChild(textHolder); addEventListener(Event.ENTER_FRAME, onSpriteEnterFrame); } /** * Handler for ENTER_FRAME event, moves textfield up y axis. * * @param event Event dispatched by this sprite. */ private function onSpriteEnterFrame(event:Event):void { _textfield.y -= 1; } } }