トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     自作コンポーネントの重なりを調べる方法
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
youich
Åê¹ÆNo.12722
投稿日時: 2004-11-26 16:06
職人
居住地: kobe
投稿: 349
使用環境:
Re: 自作コンポーネントの重なりを調べる方法
引用:


完成したグリッドを新しいムービーに配置したときに、二つ重ねるように配置すると動作が思うように行きません。
というのも、ハイライト行や選択の処理をonMouseMoveなどで行っているのですが、例えば重なった部分では二つのどちらのグリッドもハイライト処理が行われてしまいます。

onRollOver/onRollOutでフラグ処理をやってみたんですが、今度はスクロールバーなどにイベントが届かなくなってしまいました・・・
(これは排他的にイベントが・・ってことですよね)

targetMC.hitTestをやっても、二重になったときはどちらにも反応してしまうので困っています。

うまく自分のコンポーネント上にマウスカーソルがある時のみ動作させる方法があれば教えていただきたいです


onMouse?はStage全体に反応しますので特別にコンポーネントに
限った問題ではないのではと思うのですが、なにか特にあります?
思いつくところでは、下のヒットテストは上のヒットテストが反応
している時は反応させないようにするとかでしょうか。

class GridDummy extends MovieClip{
	var _upper:GridDummy;
	
	function GridDummy(){
		this.onMouseMove = defaultMouseMove;
	}
	function set upper(grid:GridDummy){
		
		if(grid == undefined ||grid == null){
			this.onMouseMove = defaultMouseMove;
		}else{
			this.onMouseMove = extMouseMove;
		}
		_upper = grid;

	}
	function get over():MovieClip{
		return _upper;
	}
	
	function checkMouse():Boolean{
		return this.hitTest(_root._xmouse,_root._ymouse,true);
	}
	
	function defaultMouseMove(){
		if(checkMouse()){
			trace('onMouseMove ' + this);
		}
	}
	
	function extMouseMove(){
		if(checkMouse() && !_upper.checkMouse()){
			trace('addMouseMove ' + this);
		}
	}
}
//belowGridDummyMC.upper = upperGridDummyMC;


ピント外れなことを言っとりましたらすみませんです。


----------------
- yo

フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
   自作コンポーネントの重なりを調べる方法 taka72 2004-11-26 13:56
   » Re: 自作コンポーネントの重なりを調べる方法 youich 2004-11-26 16:06
       Re: 自作コンポーネントの重なりを調べる方法 taka72 2004-11-26 16:21
         Re: 自作コンポーネントの重なりを調べる方法 youich 2004-11-26 18:33
           Re: 自作コンポーネントの重なりを調べる方法 taka72 2004-11-26 20:20

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops