勉強中2 (forked from: flash on 2010-3-5)
表示されるドットをくすぐるとカウントが増します
くすぐり続けないとたちまちカウントは減ります
いまのところ、くすぐっても何も起こりません (^^;
/**
* Copyright tenasaku ( http://wonderfl.net/user/tenasaku )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/Owvl
*/
// forked from tenasaku's 勉強中 (flash on 2010-3-5)
package {
import flash.display.*;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;
// 表示されるドットをくすぐるとカウントが増します
// くすぐり続けないとたちまちカウントは減ります
// いまのところ、くすぐっても何も起こりません (^^;
public class Main extends Sprite {
private var _oldMouseX:Number;
private var _oldMouseY:Number;
private var _ticklesCount:int;
private var _tf:TextField;
private var _banner:TextField;
public function Main():void {
// ステージを描画領域の左上隅に合せる
stage.align = StageAlign.TOP_LEFT;
// 縮尺しない (クロップされる可能性がある)
stage.scaleMode = StageScaleMode.NO_SCALE;
// 背景色を変更し
this.graphics.clear();
this.graphics.beginFill(0xccffcc);
this.graphics.drawRect(0,0,465,465);
this.graphics.endFill();
// 方眼紙状の網目を描く
var i:int = 0;
while ( i <= 460 ) {
if ((i%100) == 0) {
this.graphics.lineStyle(1,0xff0000,0.4);
} else {
if ((i%50) == 0) {
this.graphics.lineStyle(1,0x008000,0.4);
} else {
this.graphics.lineStyle(1,0x0000ff,0.4);
}
}
this.graphics.moveTo(0,i);
this.graphics.lineTo(463,i);
this.graphics.moveTo(i,0);
this.graphics.lineTo(i,463);
i += 10;
}
// 少し小ぶりの円板を描く
this.graphics.beginFill(0xff8000);
this.graphics.lineStyle(0,0x808080);
this.graphics.drawCircle(250,250,10);
this.graphics.endFill();
// バナー
_banner = new TextField();
_banner.text = "TICKLE THE DOT";
_banner.x = 250;
_banner.y = 20;
_banner.height = 30;
_banner.width = 170;
_banner.background = true;
_banner.backgroundColor = 0xffffff;
addChild(_banner);
// 情報フィールド
_tf = new TextField();
_tf.x = 0;
_tf.y = 0;
_tf.width = 90;
_tf.height = 150;
_tf.background = true;
_tf.backgroundColor = 0x999900;
_tf.alpha = 0.8;
stage.addChild(_tf);
// くすぐりカウンターをリセット
_ticklesCount = 0;
stage.addEventListener(Event.ENTER_FRAME, handle_enterFrame);
stage.addEventListener(MouseEvent.CLICK, handle_click);
}
private function handle_enterFrame(e:Event):void {
if ( ( ( this.mouseX != _oldMouseX ) || ( this.mouseY != _oldMouseY ) )
&& ( Math.abs(this.mouseX - 250) <= 10 )
&& ( Math.abs(this.mouseY - 250) <= 10 ) ) { // くすぐられた
_ticklesCount += 20;
} else { // くすぐられてない
if ( ( Math.abs(this.mouseX - 250) >= 15 )
|| ( Math.abs(this.mouseX - 250) >= 15 ) ) { // マウスが離れた
_ticklesCount = 0;
} else { // マウスは離れていないが, くすぐったくない
_ticklesCount = Math.floor(_ticklesCount*0.8); // 指数的にカウント減少
}
}
if (_ticklesCount <= 0) { _ticklesCount = 0; } // no less than zero
_oldMouseX = this.mouseX;
_oldMouseY = this.mouseY;
_tf.text = "Status\n\n";
_tf.appendText("mouseX = " + String(stage.mouseX) + "\n");
_tf.appendText("mouseY = " + String(stage.mouseY) + "\n\n");
_tf.appendText("Tickle = " + String(_ticklesCount) + "\n");
}
private function handle_click(e:MouseEvent):void {
_ticklesCount = 0; // クリックするとカウントはゼロになります
}
}
}