リプタクのもう覚えられません
Google
Web サイト内
topmemo ▶ ドラッグサンプル比較

ActionScript

ドラッグサンプル比較

シンボルのドラッグを実装する際、startDragとMOUSE_MOVEの比較。

【サンプル】

JavaScriptを有効にし、最新のFlashPlayerをインストールお願いしますGet Adobe Flash player



【サンプル】

JavaScriptを有効にし、最新のFlashPlayerをインストールお願いしますGet Adobe Flash player



startDragの方がスクリプの記述が簡単であるが、動作はフレームレートに依存し、一度に1つまでドラッグできないなど制約がある。

【as3 startDrag】



var pinA_mc:Cla_PinA = new Cla_PinA();

func_Const();
function func_Const(){
	
	//配置
	addChild(pinA_mc);
	pinA_mc.x = 200;
	pinA_mc.y = 200;
	
	//リスナー登録
	pinA_mc.hit_mc.addEventListener(MouseEvent.MOUSE_DOWN,func_pinA_MOUSE_DOWN);
	pinA_mc.hit_mc.addEventListener(MouseEvent.MOUSE_UP,func_pinA_MOUSE_UP);
}

//マウスダウン
function func_pinA_MOUSE_DOWN(e:MouseEvent):void{
	pinA_mc.startDrag();//updateAfterEvent()意味無し
}

//マウスアップ
function func_pinA_MOUSE_UP(e:MouseEvent):void{
	pinA_mc.stopDrag();
}




【as3 MOUSE_MOVE】



var pinA_mc:Cla_PinA = new Cla_PinA();

func_Const();
function func_Const(){
	
	//配置
	addChild(pinA_mc);
	pinA_mc.x = 200;
	pinA_mc.y = 200;
	
	//リスナー登録
	pinA_mc.hit_mc.addEventListener(MouseEvent.MOUSE_DOWN,func_pinA_MOUSE_DOWN);
}

var hoseiX:int;
var hoseiY:int;

//マウスダウン
function func_pinA_MOUSE_DOWN(e:MouseEvent):void{
	
	hoseiX = e.target.mouseX;
	hoseiY = e.target.mouseY;
	
	//リスナー登録
	stage.addEventListener(MouseEvent.MOUSE_MOVE,func_pinA_MOUSE_MOVE);//マウスムーブ
	stage.addEventListener(MouseEvent.MOUSE_UP,func_pinA_stop);//マウスアップ
}

//マウスムーブ
function func_pinA_MOUSE_MOVE(e:MouseEvent):void{
	pinA_mc.x = mouseX - hoseiX;
	pinA_mc.y = mouseY - hoseiY;
	e.updateAfterEvent();
}

//リスナー解除
function func_pinA_stop(e:MouseEvent):void{
	//リスナー解除
	stage.removeEventListener(MouseEvent.MOUSE_MOVE,func_pinA_MOUSE_MOVE);//マウスムーブ
	stage.removeEventListener(MouseEvent.MOUSE_UP,func_pinA_stop);//マウスアップ
}
last update 2011.3.22
参考・出典等
「特に無し」

▲page top

topmemogalleryblogtestaboutlinksmail
Copylight(C)2008-2011 Riptac. All Rights Reserved.