// // Well, why not "fork" this code and see how it goes? // package { /** * * @author Vijay Santhanam (CVertex) is movie clip with sprites, text layer, drawpos,textpos and textfields fmt, textfields array of messages strings */ import flash.display.* import flash.events.* import flash.text.* import flash.filters.*; import flash.geom.*; import flash.utils.* import org.papervision3d.materials.special.ParticleMaterial; import org.papervision3d.objects.special.ParticleField; [SWF(width="465", height="465", backgroundColor="0x000000", frameRate="15")] public class HelloFl extends MovieClip { // private var txtLayer:Sprite=new Sprite() private var drawPos:Sprite=new Sprite() private var textPos:Sprite=new Sprite() private var txtFmt:TextFormat = new TextFormat(); private var textFields:TextField=new TextField() //message private var messages :Array =[ "What's new pussy cat?" ] //lleasures private var posX:Number = 30 private var posY:Number = stage.stageHeight/2 private var disX:Number = 40 private var disY:Number = 5 private var deg:Number = 0 private var count:Number = 0; private var step:Number =2 private var cx:Number = stage.stageWidth /2 private var cy:Number = stage.stageHeight /2 private var xPos:Number = 0 private var yPos:Number = 0 //gladationLine private var mtx :Matrix = new Matrix(); private var gradCount :Number =1 private var gradDir :Number =1 private var life :Number =0 private var lifeLmt :Number =100 //fader private var blurVall :Number =4 private var faderAlpha :Number =0.8 private var interval :Number =1000 private var _bdTxt:BitmapData private var _bmpTxt:Bitmap private var _bdLine:BitmapData private var _bmpLine:Bitmap private var _blurF:BlurFilter public function HelloFl() { init() initFader() this.addChild(_bmpLine) //this.addChild(_bmpTxt) txtLayer.addChild(textPos) textPos.addChild(textFields) } private function init() :void { initLissajous() setMessage("","normal",0xFFFFFF) faderAlpha=0.9 var timerLmt :Number =(messages.length-1) var phaseCnt :Number =0 var phase1:Timer = new Timer(interval, timerLmt); phase1.addEventListener(TimerEvent.TIMER, function(e:Event) :void { setMessage(messages[phaseCnt++],"normal",0xFF0000) }); phase1.start(); var phase2:Timer = new Timer((timerLmt)*interval+1500, 1); phase2.addEventListener(TimerEvent.TIMER_COMPLETE, function(e:Event) :void { setMessage(messages[messages.length-1],"normal",0xFFFFFF) startLissajous() faderAlpha=0.999 }); phase2.start(); var phase3:Timer = new Timer((timerLmt)*interval+1500+10000, 1); phase3.addEventListener(TimerEvent.TIMER_COMPLETE, function(e:Event) :void { //reset() }); phase3.start(); } private function reset() :void { stage.removeEventListener(Event.ENTER_FRAME, drawLissajous); init() } private function setMessage(mes:String,blend:String,hex:Number) :void { txtFmt.font="Arial" txtFmt.align = TextFormatAlign.CENTER; txtFmt.color=hex txtFmt.size=30 textFields.defaultTextFormat = txtFmt; textFields.multiline=true textFields.autoSize=TextFieldAutoSize.LEFT textFields.x =0 textFields.y = 0 textFields.text=mes textPos.alpha=0.5 textPos.blendMode=blend textPos.x=stage.stageWidth/2-textFields.width/2 textPos.y=stage.stageHeight/2-textFields.height/2 } private function initFader() :void { _bdTxt=new BitmapData(stage.stageWidth,stage.stageHeight,true,0x000000); _bmpTxt=new Bitmap(_bdTxt); _blurF=new BlurFilter(blurVall,blurVall,1); _bdLine=new BitmapData(stage.stageWidth,stage.stageHeight,true,0x000000); _bmpLine=new Bitmap(_bdLine); _blurF=new BlurFilter(blurVall,blurVall,1); stage.addEventListener(Event.ENTER_FRAME, render); } private function render(e:Event):void { _bdLine.colorTransform(_bdLine.rect, new ColorTransform(1, 1, 1,faderAlpha, 0, 0, 0, 0)); _bdLine.applyFilter(_bdLine,_bdLine.rect,new Point(0,0),_blurF); _bdTxt.colorTransform(_bdTxt.rect, new ColorTransform(1, 1, 1,0.9, 0, 0, 0, 0)); _bdTxt.applyFilter(_bdTxt,_bdTxt.rect,new Point(0,0),_blurF); //_bdLine.scroll(8,0) _bdLine.draw(drawPos); _bdTxt.draw(txtLayer); } private function initLissajous() :void { mtx.createGradientBox(400, 400, 0, 0, 0); drawPos.graphics.clear() drawPos.graphics.lineStyle(4); drawPos.graphics.lineGradientStyle(GradientType.LINEAR, [0xFF0000, 0x0000FF], [1,0.2],[gradCount,255-gradCount], mtx, SpreadMethod.REFLECT); drawPos.graphics.moveTo(xPos,yPos); } private function startLissajous() :void { stage.addEventListener(Event.ENTER_FRAME, drawLissajous); } private function drawLissajous(e:Event):void { count+= step; xPos = posX * Math.sin(disX * count + deg) yPos = (posY) * Math.sin(disY * count) + cy if(gradCount>=255 || 0>=gradCount){ gradDir*=-1 } gradCount+=gradDir life=life>lifeLmt?0:life+1 if (life>lifeLmt) { drawPos.graphics.clear() drawPos.graphics.lineStyle(1); drawPos.graphics.moveTo(xPos,yPos) } drawPos.graphics.lineGradientStyle(GradientType.LINEAR, [0x00FFFF, 0x0000FF], [(gradCount/255),((255-gradCount)/255)],[1,255], mtx, SpreadMethod.REFLECT); drawPos.graphics.lineTo(xPos,yPos); } } } hello fl