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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     座標指定内でのカーソル変更
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
Åê¹ÆNo.2280
投稿日時: 2003-12-19 2:17
座標指定内でのカーソル変更
度々お世話になります。erikoです。
過去ログを調べたのですが、ちんぷんかんぷんで困っています。

XY座標(0,0)から(300,300)内でのみマウスカーソルをMCに置き換えたいと思っています。

過去ログを参考にして書いたMCアクション
onClipEvent (load) {
	function xChangeCursor() {
		Mouse.hide();
		bFollowMouse = true;
	}
	function xRestoreCursor() {
		Mouse.show();
		bFollowMouse = false;
	}
}
onClipEvent (enterFrame) {
	if (bFollowMouse) {
		this._x = _root._xmouse;
		this._y = _root._ymouse;
	}
}

カーソルを変更するボタンアクション
on (release) {
	_root.cur.xChangeCursor();
}

今の現象はボタンを押すと、swfファイル内全域でマウスカーソルが変更されたままとなっています。
座標指定していないので当たり前なのですが、(^^;
どこに指定アクションを入れたらいいのか分かりません..

以下にサンプルを揚げています。
http://www3.ocn.ne.jp/~aigo/sample.fla

どなたかお手数なのですが、ご教授の程よろしくお願いいたします。m(_ _)mペコリ
笠居トシヒロ
Åê¹ÆNo.2282
投稿日時: 2003-12-19 2:55
マスター
居住地: 兵庫
投稿: 870
使用環境:
SnowLeopard, Safari4, CS4
Windows7, IE8, CS4
Re: 座標指定内でのカーソル変更
んー、MCは常にカーソルにくっついていて、指定座標の中と外で、可視・不可視を切り替える、ではダメですかね。
とすれば、座標での分岐は、enterFrameの中に書けばよいということになりますが。
onClipEvent (load) {
	function xChangeCursor() {
		Mouse.hide();
		this._visible = true;
	}
	function xRestoreCursor() {
		Mouse.show();
		this._visible = false;
	}
}
onClipEvent (enterFrame) {
	this._x = _root._xmouse;
	this._y = _root._ymouse;
	if (this._x<300 && this._y<300) {
		xChangeCursor();
	} else {
		xRestoreCursor();
	}
}{

でも、これだと常にfunctionを実行し続けてることになりますね(^^;)
もうちょっとスマートなやり方があると思うので、専門家(笑)の意見を待ちましょう。


----------------
笠居 マッドシー
http://www.mad-c.com/

空野大二郎
Åê¹ÆNo.2283
投稿日時: 2003-12-19 3:34
職人
居住地: 愛知
投稿: 389
使用環境:
 XP:Home
FlashMX
IE6.0+FlashPlayer7,0,19
CPU:Pentium4 2.26GHz
メモリ:1,024MB
Re: 座標指定内でのカーソル変更
ボタンでマウスカーソルをオンにしているから、オフにすることもあるという前提で。bFollowMouse がtrueの時だけ作動。
引用:
onClipEvent (load) {
function xChangeCursor() {
bFollowMouse = true;
}
function xRestoreCursor() {
bFollowMouse = false;
}
}
onClipEvent (enterFrame) {
if (bFollowMouse) {
//マウスカーソルの位置を調べて、範囲内で適応する
if (_root._xmouse < 300 && _root._ymouse < 300) {
this._x = _root._xmouse;
this._y = _root._ymouse;
Mouse.hide();
} else {
//範囲を出たらマウスカーソルを戻す
Mouse.show();
}
}
}

こんな感じでしょうか。
これでもカーソル変更中は毎フレームごとにマウスを消したり見せたりしていますね。やむなしかしら。
あと、どうスクリプトを組めば分からないときは、最初にコメントをつかって日本語で行動を書くと、パニックに陥りにくいですよ。
(なんでかスクリプトのタブがなくなってる・・・)


----------------
空野 大二郎 アニメーター作家
桜の道

野中文雄
Åê¹ÆNo.2284
投稿日時: 2003-12-19 7:41
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 座標指定内でのカーソル変更
領域内に入ったときと出たときに処理を行う考え方は、[onハンドラを使わずにロールオーバー/ロールアウトを検出する]のノートが参考になるかと思います。

このノートでは、領域をMovieClipで判定しています。その部分を、座標に直せばよいでしょう。あるいは、実際MovieClipを配置した方が扱いやすい場合もありえます。
引用:
soranoさんは書きました:
これでもカーソル変更中は毎フレームごとにマウスを消したり見せたりしていますね。やむなしかしら。


----------------
 

ゲスト
Åê¹ÆNo.2287
投稿日時: 2003-12-19 10:26
Re: 座標指定内でのカーソル変更
kasaiさん、soranoさん、fumioさん、アドバイスありがとうございました。
スクリプトを書き換えたところ、思うような動きをしました。

でも、kasaiさん、soranoさんが言われている
引用:
これだと常にfunctionを実行し続けてることになりますね(^^;)
これでもカーソル変更中は毎フレームごとにマウスを消したり見せたりしていますね。

これではシステムに負担がかかるということですか..?
(すみません。今までただ自分の思うように動けばいいとやってきました・・(>.<)

Fumioさんサイトの『onハンドラを使わずにロールオーバー/ロールアウトを検出する』でスクリプトがかけるかどうかちょっと頑張ってみます。
(自力・・は無理かなぁ?(^?^; 問題解決能力がかけてるし・・(>.<)

とり急いでお礼を!でした☆
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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