flash on 2010-4-13
♥0 |
Line 36 |
Modified 2010-04-13 20:19:26 |
MIT License
archived:2017-03-10 09:13:20
ActionScript3 source code
/**
* Copyright kihon ( http://wonderfl.net/user/kihon )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/9nY7
*/
package
{
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.MouseEvent;
import flash.geom.Point;
public class Main extends Sprite
{
private var bitmap:Bitmap;
private var point:Point = new Point();
public function Main()
{
// 適当な設定で
var bd:BitmapData = new BitmapData(100, 100, false, 0xED1A3D);
bitmap = new Bitmap(bd);
addChild(bitmap);
// マウスボタンが押されたら、onMouseDown()を呼び出す - ドラッグ開始
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
// マウスボタンが離されたら、onMouseUp()を呼び出す - ドラッグ終了
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
}
private function onMouseDown(event:MouseEvent):void
{
// クリックした地点にbitmapが無かったら処理終了
if (!bitmap.hitTestPoint(mouseX, mouseY)) return;
// ローカル座標を取得
point = bitmap.globalToLocal(new Point(mouseX, mouseY));
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
}
private function onMouseUp(event:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
}
private function onMouseMove(event:MouseEvent):void
{
bitmap.x = mouseX - point.x;
bitmap.y = mouseY - point.y;
}
}
}