Flup-a-click with tweensy v.01

by tjoen forked from Flup-a-click (diff: 29)
♥0 | Line 108 | Modified 2011-05-22 21:23:55 | MIT License | (replaced)
play

ActionScript3 source code

/**
 * Copyright tjoen ( http://wonderfl.net/user/tjoen )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/2pH2
 */

// forked from tjoen's Flup-a-click
package {

    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.text.TextFormatAlign;
    import flash.text.TextField;
    import flash.text.TextFormat;
    import flash.filters.GlowFilter;
    import flash.filters.DropShadowFilter;
    import flash.filters.BitmapFilterQuality;
    import flupie.textanim.*;
    import flash.geom.ColorTransform;
    import com.flashdynamix.motion.*;
    import fl.motion.easing.*;
    import net.wonderfl.utils.FontLoader;

    public class FlupieTest extends Sprite   {
   [SWF(width = '465', height = '465', backgroundColor = '0x353436', frameRate = '60')]     

        public var _canvas:Sprite;
        private var _canvasWidth:int;
        private var _canvasHeight:int;
        public var outline:GlowFilter
        public var ds:DropShadowFilter;
        public var tf:TextField;
        public var _click:Boolean = false;
        public var _fm:TextFormat;
        private var tween:TweensyTimeline;
        
        public function FlupieTest() {
  
            _canvas = new Sprite();
            addChild(_canvas);
            _canvas.graphics.beginFill(0x353436);
            _canvasWidth = stage.stageWidth; 
            _canvasHeight = stage.stageHeight;
            _canvas.graphics.drawRect(0, 0, _canvasWidth, _canvasHeight);
            _canvas.graphics.endFill();
            addEventListener(MouseEvent.CLICK, onClick);

            var fl :FontLoader = new FontLoader;
            fl.load( "Mona" );
            fl.addEventListener( Event.COMPLETE, function(ev :Event) :void {
    
            RunText();
                
            });            
        }
        
                public function RunText():void   {
                    
                var text_array:Array = new Array();
                text_array = [
                "Just <font size =\"-5\">Another</font> FlupieTest\n<font color=\"#FF0000\">-</font><font color=\"#00FF00\">=</font><font color=\"#0000FF\">+</font><font color=\"#FFFF00\">*</font><font color=\"#FFFFFF\">#</font><font color=\"#FFFF00\">*</font><font color=\"#0000FF\">+</font><font color=\"#00FF00\">=</font><font color=\"#FF0000\">-</font>\nI'm so sorry!", 
                "FLASH\n<font size =\"+70\" color=\"#fff000\">生日快乐 (AHA)</font>\nSaviour of the universe", 
                "I'm Not A Number,\ncan't you see?", 
                "<font size =\"+90\">BIG</font>\nin Japan", 
                "生日快乐 TEXT ANIM\n<font size =\"+60\">AS3</font>\nrocks", 
                "It's <font color=\"#FFFFFF\">Wonder</font><font color=\"#FF0000\">FL</font><br>", 
                "<center><font size =\"+20\">NOW</font><br>STOP<br><font size =\"+60\" color=\"#ff0000\">IT</font><br><font size =\"+10\">TJOEN!!!</font></center>"];
                var whatText:Number = Math.round (Math.random () * (text_array.length - 1));    
                                 
                _fm = new TextFormat("Mona", getRandom(22,42), Math.random() * 0xffffff, true);
                _fm.align = TextFormatAlign.CENTER;
                
                tf = new TextField;
                tf.embedFonts = true;
                tf.autoSize = "center";
                tf.multiline = true;
                tf.defaultTextFormat = _fm;

                addChild(tf);
        
                outline = new GlowFilter();
                outline.blurX = outline.blurY = 2;
                outline.color = 0x000000;
                outline.quality = BitmapFilterQuality.HIGH;
                outline.strength = 50;

                var filterArray:Array = new Array();
                filterArray.push(outline);
                tf.filters = filterArray;
                
                var splitArray:Array = new Array();
                splitArray = ["CHARS",  "WORDS", "LINES"];
            
                var anim:TextAnim = new TextAnim(tf);
                anim.htmlText = text_array[whatText];
                anim.effects = myEffect;
                anim.mode = TextAnimMode.RANDOM;
                anim.blocksVisible = false;
                anim.split = splitArray[getRandom(0,2)];
                
                anim.blocksVisible = false;
                if ( _click == false ) { 
                anim.x = _canvasWidth / 2 - anim.width / 4;
                anim.y = _canvasHeight / 2 - anim.height / 2;    
                }                
                else {
                anim.x = mouseX - anim.width / 4;
                anim.y = mouseY - anim.height;
                }
                
            anim.start();
            Wonderfl.capture_delay( 10 );
            }
        
        private function myEffect(block:TextAnimBlock):void {
            block.scaleX = block.scaleY = 0;
            block.alpha = 0;
            
            var tween:TweensyTimeline = Tweensy.to(block, {alpha: 1, rotation:0, scaleX:1, scaleY:1}, 5 * Math.random(), Elastic.easeInOut);
            tween = Tweensy.from(block, {x:stage.width * Math.random(), y:stage.height * Math.random()}, 1.5, Sine.easeInOut); // Sine.easeInOut);
            tween = Tweensy.from(new DropShadowFilter(), {alpha:0.8}, 0.5, null, 1, block);
           
            tween.onComplete = function():void{
             tween = Tweensy.to(block, {alpha: 0, rotation: 0, scaleX: 0, scaleY: 0, y:block.posY+getRandom(-1000,1000), x:block.posX+getRandom(-1000,1000), scaleX:1, scaleY:1}, 2, Back.easeInOut, 6);  
            }
          }
        
        
        public static function getRandom(min_num:Number,max_num:Number):Number{
            return min_num + Math.floor(Math.random() * (max_num + 1 - min_num));
        }
             
        public function onClick(event:MouseEvent):void {
          _click = true;
            RunText(); 
          Tweensy.to(_canvas.transform.colorTransform, {redOffset: Math.random()* 100,greenOffset: Math.random()* 100, blueOffset:Math.random()* 100}, 5, null, 0, _canvas);  
            
        
        }    
    }
}