forked from: マウスをぐるぐる回すと円が描画される
マウスをぐるぐる回すと円がどんどん描画されていきます。
* 右周りでも左周りでもOK
* 画面上の線はマウスで円を描いているかどうかの判定です。
* 遅かったりすると線は途切れます。
* つながる様にマウスを回す事!
*
♥0 |
Line 117 |
Modified 2009-09-26 02:02:30 |
MIT License
archived:2017-03-20 17:54:24
ActionScript3 source code
/**
* Copyright kenta ( http://wonderfl.net/user/kenta )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/fDQn
*/
// forked from yooKo's マウスをぐるぐる回すと円が描画される
/**
*
* マウスをぐるぐる回すと円がどんどん描画されていきます。
* 右周りでも左周りでもOK
* 画面上の線はマウスで円を描いているかどうかの判定です。
* 遅かったりすると線は途切れます。
* つながる様にマウスを回す事!
*
*/
package {
import flash.display.Graphics;
import flash.display.Stage;
import flash.display.Sprite;
import flash.events.EventDispatcher;
import flash.events.TimerEvent;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.utils.Timer;
public class FlashTest extends Sprite {
private var _timer:Timer;
private var _canvas:Graphics;
private var _flg:Boolean = false;
public function FlashTest() {
init();
}
public function init():void {
_canvas = this.graphics;
stage.addEventListener(MouseEvent.MOUSE_MOVE, drawing);
_timer = new Timer(60);
_timer.addEventListener( TimerEvent.TIMER, onTimerHandler );
_timer.start();
}
private function drawing(e:MouseEvent):void {
if(_flg){_canvas.lineTo(stage.mouseX, stage.mouseY);}
}
private function processing():void {
var circle:Sprite = new Sprite();
circle.x = Math.random() * stage.stageWidth;
circle.y = Math.random() * stage.stageHeight;
var g:Graphics = circle.graphics;
g.clear();
g.beginFill(Math.random() * 0xFFFFFF);
g.drawCircle(0, 0, 20);
g.endFill();
addChild(circle);
}
private var _swich:int;
private var _mouseX:Number;
private var _mouseY:Number
private var _distanceX:Number;
private var _distanceY:Number;
private var _dX:int;
private var _dY:int;
private function onTimerHandler( event:TimerEvent = null ):void {
if (_flg == false) { _canvas.clear() };
_flg = true;
_canvas.lineStyle(3, 0x0000FF);
_canvas.moveTo(stage.mouseX, stage.mouseY);
_distanceX = stage.mouseX - _mouseX;
_distanceY = stage.mouseY - _mouseY;
_mouseX = stage.mouseX;
_mouseY = stage.mouseY;
_dX = Math.abs(_distanceX);
_dY = Math.abs(_distanceY);
switch( _swich ) {
case 0:
if ( _dX < _dY && _dY > 20 ) {
_swich = 1;
} else if ( _dX > _dY && _dX > 20 ) {
_swich = 5;
}
break;
case 1:
if ( _dX > _dY && _dX > 20 ) {
_swich = 2;
} else {
_swich = 0;
_flg = false;
}
break;
case 2:
if ( _dX < _dY && _dY > 20 ) {
_swich = 3;
} else {
_swich = 0;
_flg = false;
}
break;
case 3:
if ( _dX > _dY && _dX > 20 ) {
_swich = 0;
processing();
} else {
_swich = 0;
_flg = false;
}
break;
case 5:
if ( _dX < _dY && _dY > 20 ) {
_swich = 6;
} else {
_swich = 0;
_flg = false;
}
break;
case 6:
if ( _dX > _dY && _dX > 20 ) {
_swich = 7;
} else {
_swich = 0;
_flg = false;
}
break;
case 7:
if ( _dX < _dY && _dY > 20 ) {
_swich = 0;
processing();
} else {
_swich = 0;
_flg = false;
}
break;
}
}
}
}