静岡理工科大学 菅沼ホーム ActionScript 目次 索引

SimpleButton クラス

[内容]

  ボタンの制御を行うためのクラスです.

継承: SimpleButton → InteractiveObjectDisplayObjectEventDispatcher → Object

[プロパティ]

[メソッド]

[使用例]

  1. 以下に示すのは,「ボタン制御の例」と,そのプログラム( SimpleButton_e.as )です.
    package
    {
    	import flash.display.DisplayObject;   // 必ず必要
    	import flash.display.Sprite;
    	import flash.display.Shape;
    	import flash.display.SimpleButton;
    
    	[SWF(backgroundColor="0xeeffee", width="300", height="200", frameRate="30")]
    
    	public class SimpleButton_e extends Sprite
    	{
    		public function SimpleButton_e()
    		{
    			init();
    		}
    		
    		private function init():void
    		{
    			var r1 : Shape = new Shape();
    			r1.graphics.beginFill(0xffff0000);
    			r1.graphics.drawRect(0, 0, 200, 100);
    			r1.graphics.endFill();
    
    			var r2 : Shape = new Shape();
    			r2.graphics.beginFill(0xff00ff00);
    			r2.graphics.drawRect(0, 0, 200, 100);
    			r2.graphics.endFill();
    
    			var r3 : Shape = new Shape();
    			r3.graphics.beginFill(0xff0000ff);
    			r3.graphics.drawRect(0, 0, 200, 100);
    			r3.graphics.endFill();
    
    			var bt : SimpleButton = new SimpleButton();
    			bt.useHandCursor = true;
    			bt.upState = r1;
    			bt.overState = r2;
    			bt.downState = r3;
    			bt.hitTestState = r3;
    			bt.x = 50;
    			bt.y = 50;
    			addChild(bt);
    		}
    	}
    }
    			

  2. 以下に示すのは,もう少し複雑にした「ボタン制御の例」と,そのプログラム( sButton_e.as )です.sButton クラスは,タイトル,文字の大きさ,背景色(透明度も含む),グロー色をコンストラクタの引数によって変更することが可能です.
    package
    {
    	import flash.display.Sprite;
    
    	[SWF(backgroundColor="0xeeffee", width="300", height="200", frameRate="30")]
    
    	public class sButton_e extends Sprite
    	{
    		public function sButton_e()
    		{
    			init();
    		}
    		
    		private function init():void
    		{
    			var bt : sButton = new sButton("ボタン", 50);
    			bt.x = 65;
    			bt.y = 65;
    			addChild(bt);
    		}
    	}
    }
    
    /*******************************************************************/
    /* ボタン                                                          */
    /*      title : タイトル                                           */
    /*      size : フォントサイズ                                      */
    /*      up_c : マウスカーソルがボタンの外にあるときの色            */
    /*      over_c : マウスカーソルがボタンの上にあるときの色          */
    /*      down_c : マウスがクリックされたときの色                    */
    /*      grow_up : マウスカーソルがボタンの外にあるときのグロー色   */
    /*      grow_over : マウスカーソルがボタンの上にあるときのグロー色 */
    /*      grow_down : マウスがクリックされたときのグロー色           */
    /*******************************************************************/
    package
    {
    	import flash.display.Sprite;
    	import flash.display.SimpleButton;
    	import flash.text.TextField;
    	import flash.text.TextFormat;
    	import flash.text.TextFormatAlign;
    	import flash.text.TextLineMetrics;
    	import flash.filters.GlowFilter;
    
    	public class sButton extends SimpleButton
    	{
    		public function sButton(title:String="Button", size:int=15, up_c:uint=0xffffff00, over_c:uint=0xffadff2f, down_c:uint=0xff00ff00, grow_up:uint=0xdddddd, grow_over:uint=0xdddddd, grow_down:uint=0xdddddd)
    		{
    					// ボタンの外
    			var msg1 : TextField = new TextField();
    			msg1.text = title;
    			var tf : TextFormat = new TextFormat();
    			tf.size = size;
    			tf.align = TextFormatAlign.CENTER;
    			msg1.setTextFormat(tf);
    			var ms : TextLineMetrics = msg1.getLineMetrics(0);
    			msg1.width = ms.width + 10;
    			msg1.height = ms.height;
    			msg1.x = 10;
    			msg1.y = 5;
    			var er : Number = 0.8 * msg1.height;
    			var gr : Number = 0.3 * msg1.height;
    
    			var r1 : Sprite = new Sprite();
    			var a1 : Number = (up_c >>> 24) / 255;
    			up_c = up_c & 0x00ffffff;
    			r1.graphics.beginFill(up_c, a1);
    			r1.graphics.drawRoundRect(0, 0, msg1.width+20, msg1.height+10, er, er);
    			r1.graphics.endFill();
    			r1.filters = [new GlowFilter(grow_up, a1, gr, gr, 3, 3, true)];
    			r1.addChild(msg1);
    					// ボタンの上
    			var msg2 : TextField = new TextField();
    			msg2.text = title;
    			msg2.setTextFormat(tf);
    			msg2.width = ms.width + 10;
    			msg2.height = ms.height;
    			msg2.x = 10;
    			msg2.y = 5;
    
    			var r2 : Sprite = new Sprite();
    			var a2 : Number = (over_c >>> 24) / 255;
    			over_c = over_c & 0x00ffffff;
    			r2.graphics.beginFill(over_c, a2);
    			r2.graphics.drawRoundRect(0, 0, msg2.width+20, msg2.height+10, er, er);
    			r2.graphics.endFill();
    			r2.filters = [new GlowFilter(grow_over, a2, gr, gr, 3, 3, true)];
    			r2.addChild(msg2);
    					// ボタンをクリック
    			var msg3 : TextField = new TextField();
    			msg3.text = title;
    			msg3.setTextFormat(tf);
    			msg3.width = ms.width + 10;
    			msg3.height = ms.height;
    			msg3.x = 10;
    			msg3.y = 5;
    
    			var r3 : Sprite = new Sprite();
    			var a3 : Number = (down_c >>> 24) / 255;
    			down_c = down_c & 0x00ffffff;
    			r3.graphics.beginFill(down_c, a3);
    			r3.graphics.drawRoundRect(0, 0, msg3.width+20, msg3.height+10, er, er);
    			r3.graphics.endFill();
    			r3.filters = [new GlowFilter(grow_down, a3, gr, gr, 3, 3, true)];
    			r3.addChild(msg3);
    
    			useHandCursor = true;
    			upState = r1;
    			overState = r2;
    			downState = r3;
    			hitTestState = r3;
    		}
    	}
    }
    			

[参照]

SoundTransform クラス

静岡理工科大学 菅沼ホーム ActionScript 目次 索引