マウスイベントとスコープ ver.1
...
@author --> axcelwork
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.events.MouseEvent;
/**
* ...
* @author --> axcelwork
*/
public class Main_ver3 extends Sprite {
/* インスタンス名表示用 */
private var txtSubTitle:TextField;
private var intSize:int = 20;
/*===============================================
* コンストラクタ
*/
public function Main_ver3():void{
var btnCircle:Sprite;
/*
* インスタンス作成~表示までを単純に5回書く
* */
/* インスタンス作成 */
btnCircle = new Sprite();
/* 塗る */
draw( btnCircle, 0xFF0000, intSize );
/* 位置指定 ( (幅*2) + padding ) * 繰り返し + (幅*2) */
btnCircle.x = ( btnCircle.width + 20 ) * 1 + btnCircle.width;
btnCircle.y = 40;
/* クリックのイベント定義 */
btnCircle.addEventListener( MouseEvent.MOUSE_OVER, btnOverHandler );
btnCircle.addEventListener( MouseEvent.MOUSE_OUT, btnOutHandler );
btnCircle.addEventListener( MouseEvent.CLICK, btnClickHandler );
btnCircle.addEventListener( MouseEvent.DOUBLE_CLICK, mouseDClickHandler );
/* ダブルクリックを有効化 */
btnCircle.doubleClickEnabled = true;
/* マウスカーソルを指印に */
btnCircle.buttonMode = true;
/* 表示 */
addChild( btnCircle );
/* インスタンス作成 */
btnCircle = new Sprite();
/* 塗る */
draw( btnCircle, 0xFF0000, intSize );
/* 位置指定 ( (幅*2) + padding ) * 繰り返し + (幅*2) */
btnCircle.x = ( btnCircle.width + 20 ) * 2 + btnCircle.width;
btnCircle.y = 40;
/* クリックのイベント定義 */
btnCircle.addEventListener( MouseEvent.MOUSE_OVER, btnOverHandler );
btnCircle.addEventListener( MouseEvent.MOUSE_OUT, btnOutHandler );
btnCircle.addEventListener( MouseEvent.CLICK, btnClickHandler );
btnCircle.addEventListener( MouseEvent.DOUBLE_CLICK, mouseDClickHandler );
/* ダブルクリックを有効化 */
btnCircle.doubleClickEnabled = true;
/* マウスカーソルを指印に */
btnCircle.buttonMode = true;
/* 表示 */
addChild( btnCircle );
/* インスタンス作成 */
btnCircle = new Sprite();
/* 塗る */
draw( btnCircle, 0xFF0000, intSize );
/* 位置指定 ( (幅*2) + padding ) * 繰り返し + (幅*2) */
btnCircle.x = ( btnCircle.width + 20 ) * 3 + btnCircle.width;
btnCircle.y = 40;
/* クリックのイベント定義 */
btnCircle.addEventListener( MouseEvent.MOUSE_OVER, btnOverHandler );
btnCircle.addEventListener( MouseEvent.MOUSE_OUT, btnOutHandler );
btnCircle.addEventListener( MouseEvent.CLICK, btnClickHandler );
btnCircle.addEventListener( MouseEvent.DOUBLE_CLICK, mouseDClickHandler );
/* ダブルクリックを有効化 */
btnCircle.doubleClickEnabled = true;
/* マウスカーソルを指印に */
btnCircle.buttonMode = true;
/* 表示 */
addChild( btnCircle );
/* インスタンス作成 */
btnCircle = new Sprite();
/* 塗る */
draw( btnCircle, 0xFF0000, intSize );
/* 位置指定 ( (幅*2) + padding ) * 繰り返し + (幅*2) */
btnCircle.x = ( btnCircle.width + 20 ) * 4 + btnCircle.width;
btnCircle.y = 40;
/* クリックのイベント定義 */
btnCircle.addEventListener( MouseEvent.MOUSE_OVER, btnOverHandler );
btnCircle.addEventListener( MouseEvent.MOUSE_OUT, btnOutHandler );
btnCircle.addEventListener( MouseEvent.CLICK, btnClickHandler );
btnCircle.addEventListener( MouseEvent.DOUBLE_CLICK, mouseDClickHandler );
/* ダブルクリックを有効化 */
btnCircle.doubleClickEnabled = true;
/* マウスカーソルを指印に */
btnCircle.buttonMode = true;
/* 表示 */
addChild( btnCircle );
/* インスタンス作成 */
btnCircle = new Sprite();
/* 塗る */
draw( btnCircle, 0xFF0000, intSize );
/* 位置指定 ( (幅*2) + padding ) * 繰り返し + (幅*2) */
btnCircle.x = ( btnCircle.width + 20 ) * 5 + btnCircle.width;
btnCircle.y = 40;
/* クリックのイベント定義 */
btnCircle.addEventListener( MouseEvent.MOUSE_OVER, btnOverHandler );
btnCircle.addEventListener( MouseEvent.MOUSE_OUT, btnOutHandler );
btnCircle.addEventListener( MouseEvent.CLICK, btnClickHandler );
btnCircle.addEventListener( MouseEvent.DOUBLE_CLICK, mouseDClickHandler );
/* ダブルクリックを有効化 */
btnCircle.doubleClickEnabled = true;
/* マウスカーソルを指印に */
btnCircle.buttonMode = true;
/* 表示 */
addChild( btnCircle );
/* TextFieldの作成 */
txtSubTitle = new TextField();
txtSubTitle.selectable = false;
txtSubTitle.autoSize = "left";
addChild( txtSubTitle );
}
/*===============================================
* イベントハンドラ:オーバー、アウト、クリック、ダブルクリック
*/
private function btnOverHandler( evt:MouseEvent ):void {
draw( Sprite( evt.target ), 0x0000FF, intSize );
}
private function btnOutHandler( evt:MouseEvent ):void {
draw( Sprite( evt.target ), 0xFF0000, intSize);
}
private function mouseDClickHandler ( evt:MouseEvent ):void {
draw( Sprite( evt.target ), 0x00FF00, intSize );
}
/*===============================================*//*
* イベントハンドラ:クリック:TextFieldを表示
*/
private function btnClickHandler( evt:MouseEvent ):void {
txtSubTitle.text = evt.target.name;
txtSubTitle.x = evt.target.x - txtSubTitle.width/2;
txtSubTitle.y = evt.target.y + evt.target.height/2;
}
/*===============================================*//*
* メソッド:色を塗り替える
* @param --> target [Sprite]
* @param --> color [int]
* @param --> size [int]
*/
private function draw( target:Sprite, color:int, size:int ):void {
target.graphics.clear();
target.graphics.beginFill( color, 1 );
target.graphics.drawCircle( 0, 0, size );
target.graphics.endFill();
}
}
}