Icon [Flash CS4]
////////////////////////////////////////////////////////////////////////////////
// Icon [Flash CS4]
//
// [AS3.0] beginGradientFill()メソッドだ!
// http://www.project-nya.jp/modules/weblog/details.php?blog_id=1062
////////////////////////////////////////////////////////////////////////////////
/**
* Copyright ProjectNya ( http://wonderfl.net/user/ProjectNya )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/gh45
*/
////////////////////////////////////////////////////////////////////////////////
// Icon [Flash CS4]
//
// [AS3.0] beginGradientFill()メソッドだ!
// http://www.project-nya.jp/modules/weblog/details.php?blog_id=1062
////////////////////////////////////////////////////////////////////////////////
package {
import flash.display.Sprite;
import flash.display.StageScaleMode;
import flash.display.StageAlign;
[SWF(backgroundColor="#FFFFFF", width="465", height="465", frameRate="30")]
public class Main extends Sprite {
private var icon:Icon;
public function Main() {
//Wonderfl.capture_delay(1);
init();
}
private function init():void {
icon = new Icon(150);
addChild(icon);
icon.x = 232;
icon.y = 232;
icon.scale = 2;
icon.init([0xFF5555, 0xAA0033], "Fl", 100, 12);
}
}
}
//////////////////////////////////////////////////
// Iconクラス [CS4]
//////////////////////////////////////////////////
import flash.display.Sprite;
import flash.display.Shape;
import flash.geom.Matrix;
import flash.display.GradientType;
import flash.display.SpreadMethod;
import flash.display.InterpolationMethod;
import flash.filters.DropShadowFilter;
import flash.text.TextField;
import flash.text.TextFieldType;
import flash.text.AntiAliasType;
import flash.text.TextFormat;
import flash.text.TextFormatAlign;
class Icon extends Sprite {
private var size:uint;
private var colors:Array;
private var txt:TextField;
private static var fontType:String = "_ゴシック";
private var fontSize:uint;
private var yOffset:int;
private var _scale:Number = 1;
public function Icon(s:uint) {
size = s;
}
public function init(list:Array, t:String, s:uint, y:int = 0):void {
colors = list;
fontSize = s;
yOffset = y;
draw();
txt.text = t;
}
private function draw():void {
var base:Shape = new Shape();
addChild(base);
var alphas:Array = [1, 1];
var ratios:Array = [0, 255];
var matrix:Matrix = new Matrix();
var offset:Number = size*0.1;
matrix.createGradientBox(size, size, Math.PI*0.5, -size*0.5, -size*0.5);
base.graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, matrix, SpreadMethod.PAD, InterpolationMethod.RGB, 0);
base.graphics.drawRect(-size*0.5, -size*0.5, size, size);
base.graphics.endFill();
var shade:DropShadowFilter = new DropShadowFilter(4, 90, 0x000000, 0.3, 8, 8, 2, 3, false, false);
base.filters = [shade];
txt = new TextField();
addChild(txt);
txt.x = -size*0.5;
txt.y = -size*0.5 + yOffset;
txt.width = size;
txt.height = size;
txt.type = TextFieldType.DYNAMIC;
txt.selectable = false;
//txt.embedFonts = true;
//txt.antiAliasType = AntiAliasType.ADVANCED;
var tf:TextFormat = new TextFormat();
tf.font = fontType;
tf.size = fontSize;
tf.align = TextFormatAlign.CENTER;
txt.defaultTextFormat = tf;
txt.textColor = 0x282828;
var shadow:DropShadowFilter = new DropShadowFilter(1, 45, 0xFF4444, 0.5, 2, 2, 2, 3, false, false);
txt.filters = [shadow];
}
public function get scale():Number {
return _scale;
}
public function set scale(param:Number):void {
_scale = param;
scaleX = scaleY = _scale;
}
}