Deprecated: Assigning the return value of new by reference is deprecated in /home/sites/heteml/users/i/k/e/ike/web/blog/wp-settings.php on line 520

Deprecated: Assigning the return value of new by reference is deprecated in /home/sites/heteml/users/i/k/e/ike/web/blog/wp-settings.php on line 535

Deprecated: Assigning the return value of new by reference is deprecated in /home/sites/heteml/users/i/k/e/ike/web/blog/wp-settings.php on line 542

Deprecated: Assigning the return value of new by reference is deprecated in /home/sites/heteml/users/i/k/e/ike/web/blog/wp-settings.php on line 578

Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/sites/heteml/users/i/k/e/ike/web/blog/wp-settings.php on line 18
スクロール マウス【AS3】 « ike flash memo

スクロール マウス【AS3】

いつもやり方忘れるのでメモ
こんな感じのスクロールを作成。今回は横スクロールエブリタイム。

まず前提条件となる、各種値を設定。

// スクロールさせるオブジェクトの移動範囲
private var _minPosX:Number = 0;
private var _maxPosX:Number;
 
// マウスの座標がこの範囲内じゃないとスクロールしない
private var _minMouseX:Number = 100;
private var _maxMouseX:Number;
 
// スクロールさせるオブジェクトの幅 インスタンス名はmy_mc
private var _scrolledObjWidth:Number = my_mc.width;
 
// イ−ジング
private var _ease:Number = 0.15;
 
// ステージ情報
private var _sW:Number = 550;
private var _sH:Number = 400;

気持ちよさ的にマウスのx座標が0になる前に、オブジェクトのx座標が最小の値になるようにする。
_minMouseX = 100なので、今回はマウスのx座標が100のときにオブジェクトのx座標が最小の値になる。

// スクロール処理
addEventListener( Event.ENTER_FRAME, HandleEnterFrame );

常にスクロール処理

そして今回の要の部分。上記で呼ばれるメソッド。

// スクロール処理
// -----------------------------------
private function HandleEnterFrame( e:Event = null ):void
{
	// 目標座標
	var tx:Number = _minPosX;
 
	if( _sW < _scrolledObjWidth )
	{
		// スクロールさせるマウスの範囲の最大値
		_maxMouseX = _sW - _minMouseX;
 
		// スクロールするオブジェクトの移動範囲の最大値
		_maxPosX = _sW - _scrolledObjWidth;
 
		// この値をマウスのx座標から_minMouseXを引いた値をかける
		var p:Number = ( _maxPosX - _minPosX ) / ( _maxMouseX - _minMouseX );
 
		// マウスのx座標 最大値と最小値を調整
		var mousex:Number = Math.max( _minMouseX, Math.min( stage.mouseX, _maxMouseX ) );
		tx = ( ( mousex - _minMouseX ) * p ) + _minPosX;
	}
	my_mc.x += ( tx - my_mc.x ) * _ease;
}

ステージサイズが可変であることを視野においてるための書き方をしてるが

注意するとこはここ

// スクロールさせるマウスの範囲の最大値
_maxMouseX = _sW - _minMouseX;

この場合はマウスの座標がステージの幅より左に100pxの部分に達してところでオブジェクトのx座標が最大の値になるようにした。

コメントをどうぞ

コメントを投稿するにはログインしてください。


Licensed and Generic products for Canadian pharmacies mail order .(| buy Canadian drugs safest way to get! More than 30,000 medicines and health products, 100% of the goods are certified. Buy in the canadian pharmacy selection of medicines, abstracts, reviews, recommendations of doctors. The accumulation of points and extra discounts makes favorable re-order in canadian pharmacy %($& buy drugs online All goods when entering the pharmacy passes the test of "drug quality". Product quality is one of key performance indicators online pharmacy ^/; buy prescription drugs every remedy is accompanied with detailed instruction on supports.