In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

勉強中2 (forked from: flash on 2010-3-5)

表示されるドットをくすぐるとカウントが増します
くすぐり続けないとたちまちカウントは減ります
いまのところ、くすぐっても何も起こりません (^^;
Get Adobe Flash player
by tenasaku 06 Mar 2010
    Embed
/**
 * 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; // クリックするとカウントはゼロになります
		}
	}
}