トップページ > Flash入門 > マウス・キーボード関係(4)
次のFlashでは,マウスカーソルがオレンジ色のボタンの上に乗るとへこみます。
スプライトにMOUSE_OVERとROLL_OUTの2つのイベントリスナを登録します。 MOUSE_OVERはマウスカーソルが上に乗った時,ROLL_OUTはマウスカーソルが外れた時にそれぞれ呼ばれます。 そのスプライトの上に表示したい画像を貼りつけています。 イベントの時に呼ばれる“onMouseOver()”と“onMouseRollover()”の関数内では, スプライトに表示させる画像を切り替えています。
以下のソースコードでは,表示したい2つの画像(今回は“OrangeButton_on.png”と“OrangeButton_off.png”) が必要です。
package { import flash.display.Loader; import flash.display.Sprite; import flash.display.Bitmap; import flash.events.Event; import flash.events.MouseEvent; //画面サイズと背景色,フレームレートを設定 [SWF(width="300", height="300", frameRate = "60", backgroundColor="0xffffcc")] public class Main extends Sprite { public const color_list:Array = ["Orange", "Green", "Cyan", "Yellow", "Gray", "Pink", "Purple", "LightPink", "LightGray", "LightYellow", "LightOrange", "LightGreen", "LightCyan", "LightPurple", "Red", "StrongGray", "Brown", "StrongGreen", "StrongCyan", "StrongPurple"]; //画像ファイルを読み込む [Embed(source = "./OrangeButton_on.png")] public var OrangeImg_on:Class; public var OrangeButton_on:Bitmap = new OrangeImg_on(); [Embed(source = "./OrangeButton_off.png")] public var OrangeImg_off:Class; public var OrangeButton_off:Bitmap = new OrangeImg_off(); //スプライトを用意 public var spOrange:Sprite = new Sprite(); //main関数 public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } //コンストラクタ private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point //画像をスプライトに貼る spOrange.addChild(OrangeButton_off); //位置決め spOrange.x = 90; spOrange.y = 100; //スプライトを登録 this.stage.addChild(spOrange); //============================================================ //MOUSE_OVERとROLL_OUTイベントを登録 spOrange.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); spOrange.addEventListener(MouseEvent.ROLL_OUT, onMouseRollout); //============================================================ } //================================================================ //マウスカーソルが上に乗ったときに呼ばれる関数 private function onMouseOver(e:MouseEvent):void { //offの画像を消す e.currentTarget.removeChild(OrangeButton_off); //onの画像を表示 e.currentTarget.addChild(OrangeButton_on); } //マウスカーソルが離れた時に呼ばれる関数 private function onMouseRollout(e:MouseEvent):void { //onの画像を消す e.currentTarget.removeChild(OrangeButton_on); //offの画像を表示 e.currentTarget.addChild(OrangeButton_off); } //================================================================ } }
package { import flash.display.Loader; import flash.display.Sprite; import flash.display.Bitmap; import flash.events.Event; import flash.events.MouseEvent; //画面サイズと背景色,フレームレートを設定 [SWF(width="480", height="310", frameRate = "60", backgroundColor="0xffffcc")] public class Main extends Sprite { public const color_list:Array = ["Orange", "Green", "Cyan", "Yellow", "Gray", "Pink", "Purple", "LightPink", "LightGray", "LightYellow", "LightOrange", "LightGreen", "LightCyan", "LightPurple", "Red", "StrongGray", "Brown", "StrongGreen", "StrongCyan", "StrongPurple"]; //================================================================ //画像ファイルを読み込む [Embed(source = "./OrangeButton_on.png")] public var OrangeImg_on:Class; public var OrangeButton_on:Bitmap = new OrangeImg_on(); [Embed(source = "./OrangeButton_off.png")] public var OrangeImg_off:Class; public var OrangeButton_off:Bitmap = new OrangeImg_off(); [Embed(source = "./GreenButton_on.png")] public var GreenImg_on:Class; public var GreenButton_on:Bitmap = new GreenImg_on(); [Embed(source = "./GreenButton_off.png")] public var GreenImg_off:Class; public var GreenButton_off:Bitmap = new GreenImg_off(); [Embed(source = "./CyanButton_on.png")] public var CyanImg_on:Class; public var CyanButton_on:Bitmap = new CyanImg_on(); [Embed(source = "./CyanButton_off.png")] public var CyanImg_off:Class; public var CyanButton_off:Bitmap = new CyanImg_off(); [Embed(source = "./YellowButton_on.png")] public var YellowImg_on:Class; public var YellowButton_on:Bitmap = new YellowImg_on(); [Embed(source = "./YellowButton_off.png")] public var YellowImg_off:Class; public var YellowButton_off:Bitmap = new YellowImg_off(); [Embed(source = "./PinkButton_on.png")] public var PinkImg_on:Class; public var PinkButton_on:Bitmap = new PinkImg_on(); [Embed(source = "./PinkButton_off.png")] public var PinkImg_off:Class; public var PinkButton_off:Bitmap = new PinkImg_off(); [Embed(source = "./PurpleButton_on.png")] public var PurpleImg_on:Class; public var PurpleButton_on:Bitmap = new PurpleImg_on(); [Embed(source = "./PurpleButton_off.png")] public var PurpleImg_off:Class; public var PurpleButton_off:Bitmap = new PurpleImg_off(); [Embed(source = "./GrayButton_on.png")] public var GrayImg_on:Class; public var GrayButton_on:Bitmap = new GrayImg_on(); [Embed(source = "./GrayButton_off.png")] public var GrayImg_off:Class; public var GrayButton_off:Bitmap = new GrayImg_off(); //---------------------------------------------------------------- [Embed(source = "./LightOrangeButton_on.png")] public var LightOrangeImg_on:Class; public var LightOrangeButton_on:Bitmap = new LightOrangeImg_on(); [Embed(source = "./LightOrangeButton_off.png")] public var LightOrangeImg_off:Class; public var LightOrangeButton_off:Bitmap = new LightOrangeImg_off(); [Embed(source = "./LightGreenButton_on.png")] public var LightGreenImg_on:Class; public var LightGreenButton_on:Bitmap = new LightGreenImg_on(); [Embed(source = "./LightGreenButton_off.png")] public var LightGreenImg_off:Class; public var LightGreenButton_off:Bitmap = new LightGreenImg_off(); [Embed(source = "./LightCyanButton_on.png")] public var LightCyanImg_on:Class; public var LightCyanButton_on:Bitmap = new LightCyanImg_on(); [Embed(source = "./LightCyanButton_off.png")] public var LightCyanImg_off:Class; public var LightCyanButton_off:Bitmap = new LightCyanImg_off(); [Embed(source = "./LightYellowButton_on.png")] public var LightYellowImg_on:Class; public var LightYellowButton_on:Bitmap = new LightYellowImg_on(); [Embed(source = "./LightYellowButton_off.png")] public var LightYellowImg_off:Class; public var LightYellowButton_off:Bitmap = new LightYellowImg_off(); [Embed(source = "./LightPinkButton_on.png")] public var LightPinkImg_on:Class; public var LightPinkButton_on:Bitmap = new LightPinkImg_on(); [Embed(source = "./LightPinkButton_off.png")] public var LightPinkImg_off:Class; public var LightPinkButton_off:Bitmap = new LightPinkImg_off(); [Embed(source = "./LightPurpleButton_on.png")] public var LightPurpleImg_on:Class; public var LightPurpleButton_on:Bitmap = new LightPurpleImg_on(); [Embed(source = "./LightPurpleButton_off.png")] public var LightPurpleImg_off:Class; public var LightPurpleButton_off:Bitmap = new LightPurpleImg_off(); [Embed(source = "./LightGrayButton_on.png")] public var LightGrayImg_on:Class; public var LightGrayButton_on:Bitmap = new LightGrayImg_on(); [Embed(source = "./LightGrayButton_off.png")] public var LightGrayImg_off:Class; public var LightGrayButton_off:Bitmap = new LightGrayImg_off(); //---------------------------------------------------------------- [Embed(source = "./RedButton_on.png")] public var RedImg_on:Class; public var RedButton_on:Bitmap = new RedImg_on(); [Embed(source = "./RedButton_off.png")] public var RedImg_off:Class; public var RedButton_off:Bitmap = new RedImg_off(); [Embed(source = "./BrownButton_on.png")] public var BrownImg_on:Class; public var BrownButton_on:Bitmap = new BrownImg_on(); [Embed(source = "./BrownButton_off.png")] public var BrownImg_off:Class; public var BrownButton_off:Bitmap = new BrownImg_off(); [Embed(source = "./StrongGreenButton_on.png")] public var StrongGreenImg_on:Class; public var StrongGreenButton_on:Bitmap = new StrongGreenImg_on(); [Embed(source = "./StrongGreenButton_off.png")] public var StrongGreenImg_off:Class; public var StrongGreenButton_off:Bitmap = new StrongGreenImg_off(); [Embed(source = "./StrongGrayButton_on.png")] public var StrongGrayImg_on:Class; public var StrongGrayButton_on:Bitmap = new StrongGrayImg_on(); [Embed(source = "./StrongGrayButton_off.png")] public var StrongGrayImg_off:Class; public var StrongGrayButton_off:Bitmap = new StrongGrayImg_off(); [Embed(source = "./StrongCyanButton_on.png")] public var StrongCyanImg_on:Class; public var StrongCyanButton_on:Bitmap = new StrongCyanImg_on(); [Embed(source = "./StrongCyanButton_off.png")] public var StrongCyanImg_off:Class; public var StrongCyanButton_off:Bitmap = new StrongCyanImg_off(); [Embed(source = "./StrongPurpleButton_on.png")] public var StrongPurpleImg_on:Class; public var StrongPurpleButton_on:Bitmap = new StrongPurpleImg_on(); [Embed(source = "./StrongPurpleButton_off.png")] public var StrongPurpleImg_off:Class; public var StrongPurpleButton_off:Bitmap = new StrongPurpleImg_off(); //================================================================ //スプライトを用意 public var spOrange:Sprite = new Sprite(); public var spGreen:Sprite = new Sprite(); public var spCyan:Sprite = new Sprite(); public var spPink:Sprite = new Sprite(); public var spPurple:Sprite = new Sprite(); public var spGray:Sprite = new Sprite(); public var spYellow:Sprite = new Sprite(); //---------------------------------------------------------------- public var spLightOrange:Sprite = new Sprite(); public var spLightGreen:Sprite = new Sprite(); public var spLightCyan:Sprite = new Sprite(); public var spLightPink:Sprite = new Sprite(); public var spLightPurple:Sprite = new Sprite(); public var spLightGray:Sprite = new Sprite(); public var spLightYellow:Sprite = new Sprite(); //---------------------------------------------------------------- public var spRed:Sprite = new Sprite(); public var spStrongGray:Sprite = new Sprite(); public var spBrown:Sprite = new Sprite(); public var spStrongGreen:Sprite = new Sprite(); public var spStrongCyan:Sprite = new Sprite(); public var spStrongPurple:Sprite = new Sprite(); //main関数 public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } //コンストラクタ private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point var i:int = 0; //1行目を配置 for (i = 0; i < 5; i++ ) { //インスタンスに名前を付ける this["sp" + color_list[i]].name = color_list[i]; //画像をスプライトに貼る this["sp" + color_list[i]].addChild(this[color_list[i]+"Button_off"]); //位置決め this["sp" + color_list[i]].x = 0; this["sp" + color_list[i]].y = 60 * i //スプライトを登録 this.stage.addChild(this["sp" + color_list[i]]); //イベントリスナ登録 this["sp" + color_list[i]].addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); this["sp" + color_list[i]].addEventListener(MouseEvent.ROLL_OUT, onMouseRollout); } //2行目を配置 for (i = 5; i < 10; i++ ) { //i = j; //if (j > 19) i -= 19; //インスタンスに名前を付ける this["sp" + color_list[i]].name = color_list[i]; //画像をスプライトに貼る this["sp" + color_list[i]].addChild(this[color_list[i]+"Button_off"]); //位置決め this["sp" + color_list[i]].x = 120; this["sp"+color_list[i]].y = 60*(i-5) //スプライトを登録 this.stage.addChild(this["sp" + color_list[i]]); //イベントリスナ登録 this["sp" + color_list[i]].addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); this["sp" + color_list[i]].addEventListener(MouseEvent.ROLL_OUT, onMouseRollout); } //3行目を配置 for (i = 10; i < 15; i++ ) { //i = j; //if (j > 19) i -= 19; //インスタンスに名前を付ける this["sp" + color_list[i]].name = color_list[i]; //画像をスプライトに貼る this["sp" + color_list[i]].addChild(this[color_list[i]+"Button_off"]); //位置決め this["sp" + color_list[i]].x = 240; this["sp"+color_list[i]].y = 60*(i-10) //スプライトを登録 this.stage.addChild(this["sp" + color_list[i]]); //イベントリスナ登録 this["sp" + color_list[i]].addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); this["sp" + color_list[i]].addEventListener(MouseEvent.ROLL_OUT, onMouseRollout); } //4行目を配置 for (i = 15; i < 20; i++ ) { //インスタンスに名前を付ける this["sp" + color_list[i]].name = color_list[i]; //画像をスプライトに貼る this["sp" + color_list[i]].addChild(this[color_list[i]+"Button_off"]); //位置決め this["sp" + color_list[i]].x = 360; this["sp"+color_list[i]].y = 60*(i-15) //スプライトを登録 this.stage.addChild(this["sp" + color_list[i]]); //イベントリスナ登録 this["sp" + color_list[i]].addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); this["sp" + color_list[i]].addEventListener(MouseEvent.ROLL_OUT, onMouseRollout); } } //================================================================ private function onMouseOver(e:MouseEvent):void { e.currentTarget.removeChild(this[e.currentTarget.name+"Button_off"]); e.currentTarget.addChild(this[e.currentTarget.name + "Button_on"]); } private function onMouseRollout(e:MouseEvent):void { e.currentTarget.removeChild(this[e.currentTarget.name+"Button_on"]); e.currentTarget.addChild(this[e.currentTarget.name + "Button_off"]); } //================================================================ } }