【告知】2009/1/25 ごはんと新年会@bowlsやります
-- welcome to wonderfl --
wonderfl is a service where you can build a Flash online.
write Actionscript3 code in a textarea,
and your code will be compiled server side.
Your compiled Flash will be reloaded automatically
in the right side of the page,
so write code and see it real-time.
Well, why not "fork" this code and see how it goes?
// forked from mash's forked from: wonderFl_KeyVisual_v3 with explanation
// -- welcome to wonderfl --
//
// wonderfl is a service where you can build a Flash online.
//
// write Actionscript3 code in a textarea,
// and your code will be compiled server side.
//
// Your compiled Flash will be reloaded automatically
// in the right side of the page,
// so write code and see it real-time.
//
// Well, why not "fork" this code and see how it goes?
//
// forked from Murai's wonderFl_KeyVisual_v3
package
{
/**
*
* @author Takashi Murai(KAYAC)
*/
import flash.display.*
import flash.events.*
import flash.text.*
import flash.net.*
import flash.filters.*;
import flash.geom.*;
import flash.utils.*
[SWF(width="465", height="465", backgroundColor="0x000000", frameRate="15")]
public class WonderFL 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 =[
"ご",
"ごは",
"ごはん",
"ごはんと",
"ごはんと新",
"ごはんと新年",
"ごはんと新年会",
"ごはんと新年会2",
"ごはんと新年会20",
"ごはんと新年会200",
"ごはんと新年会2009",
"ごはんと新年会2009 ",
"ごはんと新年会2009 @",
"ごはんと新年会2009 @ ",
"ごはんと新年会2009 @ b",
"ごはんと新年会2009 @ bo",
"ごはんと新年会2009 @ bow",
"ごはんと新年会2009 @ bowl",
"ごはんと新年会2009 @ bowls"
]
//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 =100
private var _bdTxt:BitmapData
private var _bmpTxt:Bitmap
private var _bdLine:BitmapData
private var _bmpLine:Bitmap
private var _blurF:BlurFilter
public function WonderFL() {
init()
initFader()
this.addChild(_bmpLine)
this.addChild(_bmpTxt)
txtLayer.addChild(textPos)
textPos.addChild(textFields)
addEventListener( MouseEvent.CLICK, onClickBanner );
buttonMode = useHandCursor = true;
}
public function onClickBanner (e:MouseEvent):void {
navigateToURL( new URLRequest("http://level0.kayac.com/2009/01/2009125_bowls.php") );
}
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,3);
_bdLine=new BitmapData(stage.stageWidth,stage.stageHeight,true,0x000000);
_bmpLine=new Bitmap(_bdLine);
_blurF=new BlurFilter(blurVall,blurVall,3);
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, [0xFF0000, 0x0000FF], [(gradCount/255),((255-gradCount)/255)],[1,255], mtx, SpreadMethod.REFLECT);
drawPos.graphics.lineTo(xPos,yPos);
}
}
}