SiONでドレミ♪ ProjectNya forked:0favorite:3lines:272license : MIT License modified : 2012-04-13 11:09:42 Embed Tweet //////////////////////////////////////////////////////////////////////////////// // SiONでドレミ♪ //////////////////////////////////////////////////////////////////////////////// package { import flash.display.Sprite; import flash.display.StageScaleMode; import flash.display.StageAlign; import flash.events.MouseEvent; import org.si.sion.SiONDriver; import org.si.sion.events.SiONEvent; [SWF(backgroundColor="#000000", width="465", height="465", frameRate="30")] public class Main extends Sprite { private var driver:SiONDriver; private var playBtn:Btn; public function Main() { //Wonderfl.capture_delay(1); stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; init(); } private function init():void { graphics.beginFill(0x000000); graphics.drawRect(0, 0, 465, 465); graphics.endFill(); // driver = new SiONDriver(); // playBtn = new Btn(); addChild(playBtn); playBtn.x = 232; playBtn.y = 445; playBtn.init({label: "play", type: 2}); playBtn.addEventListener(MouseEvent.CLICK, play, false, 0, true); // var label:Label = new Label(200, 40, 40, Label.CENTER); addChild(label); label.x = 132; label.y = 192; label.textColor = 0xFFFFFF; label.text = "SiON"; label.alpha = 0.6; var _label:Label = new Label(200, 20, 20, Label.CENTER); addChild(_label); _label.x = 132; _label.y = 242; _label.textColor = 0xFFFFFF; _label.text = "[" + SiONDriver.VERSION + "]"; _label.alpha = 0.6; } private function play(evt:MouseEvent):void { driver.addEventListener(SiONEvent.FINISH_SEQUENCE, complete, false, 0, true); driver.play("t200 >>cdefgab<cdefgab<cdefgab<cdefgab<c"); // playBtn.selected = true; } private function complete(evt:SiONEvent):void { driver.removeEventListener(SiONEvent.FINISH_SEQUENCE, complete); // playBtn.selected = false; } } } ////////////////////////////////////////////////// // Btnクラス ////////////////////////////////////////////////// import flash.display.Sprite; import flash.display.Shape; import flash.text.TextField; import flash.text.TextFieldType; import flash.text.AntiAliasType; import flash.text.TextFormat; import flash.text.TextFormatAlign; import flash.filters.GlowFilter; import flash.events.MouseEvent; class Btn extends Sprite { public var id:uint; private var shade:Shape; private var bottom:Shape; private var light:Shape; private var base:Shape; private var txt:TextField; private var label:String = ""; private static var fontType:String = "_ゴシック"; private var _width:uint = 60; private static var _height:uint = 20; private static var corner:uint = 5; private var type:uint = 1; private static var bColor:uint = 0xFFFFFF; private static var sColor:uint = 0x000000; private static var upColor:uint = 0x666666; private static var overColor:uint = 0x333333; private static var offColor:uint = 0x999999; private static var gColor:uint = 0x0099FF; private var blueGlow:GlowFilter; private var shadeGlow:GlowFilter; private var _selected:Boolean = false; private var _enabled:Boolean = true; public function Btn() { } public function init(option:Object):void { if (option.id != undefined) id = option.id; if (option.label != undefined) label = option.label; if (option.width != undefined) _width = option.width; if (option.type != undefined) type = option.type; draw(); } private function draw():void { switch (type) { case 1 : bColor = 0xFFFFFF; sColor = 0x000000; upColor = 0x666666; overColor = 0x333333; offColor = 0x999999; break; case 2 : bColor = 0x000000; sColor = 0xFFFFFF; upColor = 0x666666; overColor = 0x999999; offColor = 0x333333; break; } blueGlow = new GlowFilter(gColor, 0.6, 5, 5, 2, 3, false, true); shadeGlow = new GlowFilter(sColor, 0.3, 4, 4, 2, 3, false, true); shade = new Shape(); bottom = new Shape(); light = new Shape(); base = new Shape(); txt = new TextField(); addChild(shade); addChild(bottom); addChild(light); addChild(base); addChild(txt); createBase(shade, _width, _height, corner, sColor); shade.filters = [shadeGlow]; createBase(bottom, _width, _height, corner, sColor, 0.3); createBase(light, _width, _height, corner, gColor); light.filters = [blueGlow]; createBase(base, _width, _height, corner, bColor); txt.x = -_width*0.5; txt.y = -_height*0.5; txt.width = _width; txt.height = _height - 1; txt.type = TextFieldType.DYNAMIC; txt.selectable = false; //txt.embedFonts = true; //txt.antiAliasType = AntiAliasType.ADVANCED; var tf:TextFormat = new TextFormat(); tf.font = fontType; tf.size = 12; tf.align = TextFormatAlign.CENTER; txt.defaultTextFormat = tf; txt.text = label; enabled = true; mouseChildren = false; } private function rollOver(evt:MouseEvent):void { _over(); } private function rollOut(evt:MouseEvent):void { _up(); } private function press(evt:MouseEvent):void { _down(); } private function release(evt:MouseEvent):void { _up(); } private function click(evt:MouseEvent):void { } private function _up():void { txt.y = -_height*0.5; txt.textColor = upColor; base.y = -1; light.visible = false; light.y = -1; } private function _over():void { txt.y = -_height*0.5; txt.textColor = overColor; base.y = -1; light.visible = true; light.y = -1; } private function _down():void { txt.y = -_height*0.5 + 1; txt.textColor = overColor; base.y = 0; light.visible = true; light.y = 0; } private function _off():void { txt.y = -_height*0.5 + 1; txt.textColor = offColor; base.y = 0; light.visible = false; light.y = 0; } public function get selected():Boolean { return _selected; } public function set selected(param:Boolean):void { _selected = param; enabled = !_selected; if (_selected) { _down(); } else { _up(); } } public function get enabled():Boolean { return _enabled; } public function set enabled(param:Boolean):void { _enabled = param; buttonMode = _enabled; mouseEnabled = _enabled; useHandCursor = _enabled; if (_enabled) { _up(); addEventListener(MouseEvent.MOUSE_OVER, rollOver, false, 0, true); addEventListener(MouseEvent.MOUSE_OUT, rollOut, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, press, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, release, false, 0, true); addEventListener(MouseEvent.CLICK, click, false, 0, true); } else { _off(); removeEventListener(MouseEvent.MOUSE_OVER, rollOver); removeEventListener(MouseEvent.MOUSE_OUT, rollOut); removeEventListener(MouseEvent.MOUSE_DOWN, press); removeEventListener(MouseEvent.MOUSE_UP, release); removeEventListener(MouseEvent.CLICK, click); } } private function createBase(target:Shape, w:uint, h:uint, c:uint, color:uint, alpha:Number = 1):void { target.graphics.beginFill(color, alpha); target.graphics.drawRoundRect(-w*0.5, -h*0.5, w, h, c*2); target.graphics.endFill(); } } ////////////////////////////////////////////////// // Labelクラス ////////////////////////////////////////////////// import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; import flash.text.TextFieldAutoSize; import flash.text.AntiAliasType; import flash.text.TextFormat; import flash.text.TextFormatAlign; class Label extends Sprite { private var txt:TextField; private static var fontType:String = "_ゴシック"; private var _width:uint = 20; private var _height:uint = 20; private var size:uint = 12; public static const LEFT:String = TextFormatAlign.LEFT; public static const CENTER:String = TextFormatAlign.CENTER; public static const RIGHT:String = TextFormatAlign.RIGHT; public function Label(w:uint, h:uint, s:uint = 12, align:String = LEFT) { _width = w; _height = h; size = s; draw(align); } private function draw(align:String):void { txt = new TextField(); addChild(txt); txt.width = _width; txt.height = _height; txt.autoSize = align; txt.type = TextFieldType.DYNAMIC; txt.selectable = false; //txt.embedFonts = true; //txt.antiAliasType = AntiAliasType.ADVANCED; var tf:TextFormat = new TextFormat(); tf.font = fontType; tf.size = size; tf.align = align; txt.defaultTextFormat = tf; textColor = 0x000000; } public function set text(param:String):void { txt.text = param; } public function set textColor(param:uint):void { txt.textColor = param; } } Code Fullscreen Preview Fullscreen Mingchoi bradsedito : cool font graphics n stuff clockmaker : ドレミファソラシド〜♪ visible undefined GlowFilter addChild MouseEvent addEventListener MouseEvent.MOUSE_OUT MouseEvent.MOUSE_OVER color MouseEvent.CLICK type useHandCursor height MouseEvent.MOUSE_UP width mouseChildren mouseEnabled MouseEvent.MOUSE_DOWN TextFormatAlign.RIGHT TextFormatAlign.LEFT