Glowing Hellow World revised (from てっく煮ブログ)を書いてみる
♥0 |
Line 47 |
Modified 2009-09-07 11:33:04 |
MIT License
archived:2017-03-20 07:41:11
ActionScript3 source code
/**
* Copyright pasodania ( http://wonderfl.net/user/pasodania )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/bL6w
*/
package {
import flash.display.*;
import flash.events.Event;
import flash.filters.GlowFilter;
import flash.geom.*;
import flash.text.*;
[SWF(backgroundColor="#000000", width=400, height="80")]
public class GlowingHelloWorld extends Sprite {
public function GlowingHelloWorld () {
// write as3 code here..
stage.scaleMode = "noScale";
var ptZero:Point = new Point();
// initialize canvas.
var bmpGlow:Bitmap = addChild(new Bitmap()) as Bitmap;
// Show original text(input)
var text:TextField = new TextField();
text.autoSize = "left";
text.type = "input";
text.htmlText = <font size="50" color="#ffffff">HELLO WORLD</font>.toXMLString();
addChild(text);
text.addEventListener( "change", function(event:Event):void{updateGlow();} );
// Create a Glow Bitmap
var bmdGlow:BitmapData, bmdCanvas:BitmapData;
var updateGlow:Function = function():void{
// dispose existing BitmapData
if(bmdGlow) bmdGlow.dispose();
// Glow it
bmdGlow = new BitmapData(text.textWidth + 10, text.textHeight + 10, true, 0);
bmdGlow.draw(text);
var glow:GlowFilter = new GlowFilter(0xffffff, .9, 8, 8 , 4);
bmdGlow.applyFilter(bmdGlow, bmdGlow.rect, ptZero, glow);
// Update canvas BitmapData
bmpGlow.bitmapData = bmdGlow;
}
updateGlow();
// Create a mask Sprite
var msk:Sprite = new Sprite();
msk.graphics.beginGradientFill("radial", [0xffffff, 0xffffff], [1,0], [64, 255]);
msk.graphics.drawCircle(0,0,100);
msk.graphics.endFill();
addChild(msk);
// Set mask.
msk.y = 50 - text.textHeight / 2;
bmpGlow.cacheAsBitmap = msk.cacheAsBitmap = true;
bmpGlow.mask = msk;
// Start animation loop.
var counter:int = 0;
addEventListener("enterFrame", function(event:Event):void{
// move the mask
msk.x = counter;
// update count...
counter += 14;
if( counter > 800){
counter = -10;
}
});
}
}
}