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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     ボタンの機能について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
Shun-ic
Åê¹ÆNo.2729
投稿日時: 2004-1-7 20:22
新米
居住地:
投稿: 26
使用環境:
Flash MX
WinXP
ボタンの機能について
こちらのスレッドにて、新たに質問させていただきます。
ボタンの中でも、サイトによって時々ボタン機能があるにもかかわらず、ロールオーバーしてもリンクの手のマークではなく、矢印のまま変化しないボタンがありますが、これはどのような作りなのでしょうか。
御存知でしたら、宜しくお願い致します。
ゲスト
Åê¹ÆNo.2731
投稿日時: 2004-1-7 20:44
Re: ボタンの機能について
Button.useHandCursor=true でハンドカーソル
Button.useHandCursor=false で矢印のまま
です。デフォルトは当然ながらtrueです。
MXから追加された分ですね。

またMX以前では、hitTestを使う手法もあります。
Shun-ic
Åê¹ÆNo.2751
投稿日時: 2004-1-8 9:02
新米
居住地:
投稿: 26
使用環境:
Flash MX
WinXP
Re: ボタンの機能について
Keitaさん、早速ありがとうございます。
引用:

Keitaさんは書きました:
Button.useHandCursor=true でハンドカーソル
Button.useHandCursor=false で矢印のまま
です。デフォルトは当然ながらtrueです。
MXから追加された分ですね。

またMX以前では、hitTestを使う手法もあります。

ボタンアクションとして、Onハンドラの中に挿入する形で試したのですが、ムービープレビューで確認しても、ハンドカーソルがそのまま表示されます。
挿入場所が原因なのでしょうか。
森 巧尚
Åê¹ÆNo.2754
投稿日時: 2004-1-8 10:17
モデレータ
居住地: 宝塚
投稿: 650
使用環境:
.5/CS4/Safari3
XP+2000//IE6
Re: ボタンの機能について
引用:
ボタンアクションとして、Onハンドラの中に挿入する形で試したのですが、ムービープレビューで確認しても、ハンドカーソルがそのまま表示されます。
挿入場所が原因なのでしょうか。

onハンドラの中でもちゃんと動きます。このようにすれば、マウスがボタンの上に来たときにハンドカーソルをfalseにします。
on (rollOver) {
	Button.useHandCursor = false;
}

仮に「on (release)」で設定していたとしても1回ボタンを押せば利くようになるはずです。
しかし、普通はこんな風にonハンドラの中で使ったりはしません。フレームアクションなどであらかじめ1回
Button.useHandCursor = false;

と指定しておきます。
設定が利かないのは、ボタンのインスタンス名がずれていたりするんじゃないでしょうか。


----------------
森 巧尚
http://www.ymori.com

Shun-ic
Åê¹ÆNo.2759
投稿日時: 2004-1-8 14:16
新米
居住地:
投稿: 26
使用環境:
Flash MX
WinXP
Re: ボタンの機能について
ymoriさま早速ありがとうございます。

引用:
仮に「on (release)」で設定していたとしても1回ボタンを押せば利くようになるはずです。
しかし、普通はこんな風にonハンドラの中で使ったりはしません。フレームアクションなどであらかじめ1回
Button.useHandCursor = false;

と指定しておきます。
設定が利かないのは、ボタンのインスタンス名がずれていたりするんじゃないでしょうか。

設定したのですが、動きません。
ターゲットの指定は、このスクリプトの前に付けるんですよね。
笠居トシヒロ
Åê¹ÆNo.2761
投稿日時: 2004-1-8 15:03
マスター
居住地: 兵庫
投稿: 870
使用環境:
SnowLeopard, Safari4, CS4
Windows7, IE8, CS4
Re: ボタンの機能について
引用:
設定したのですが、動きません。
ターゲットの指定は、このスクリプトの前に付けるんですよね

ちょっと勘違いがあるようですね。
サンプルスクリプトの「Button」の部分がボタンインスタンスのターゲットパスですよ。

例えばボタンのインスタンス名が「btn01」だったら、
btn01.useHandCursor = false;

と記述します。

ステージ上の全てのボタンに適用したいのであれば、
for (btn in _root) {
	_root[btn].useHandCursor = false;
}

とでもすればいいでしょう。


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

Shun-ic
Åê¹ÆNo.2770
投稿日時: 2004-1-8 19:35
新米
居住地:
投稿: 26
使用環境:
Flash MX
WinXP
Re: ボタンの機能について
kasaiさま、ご親切にありがとうございます。
引用:
ちょっと勘違いがあるようですね。
サンプルスクリプトの「Button」の部分がボタンインスタンスのターゲットパスですよ。

例えばボタンのインスタンス名が「btn01」だったら、
btn01.useHandCursor = false;

と記述します。

そうなんですね、勘違いしておりました。
おかげさまで、うまく作動するようになりました。

引用:
ステージ上の全てのボタンに適用したいのであれば、
for (btn in _root) {
	_root[btn].useHandCursor = false;
}

とでもすればいいでしょう。

for..inで反復させているんですね。他にも使えそうです。
Onイベントの中に挿入したときは、最初のロールオーバー時はハンドカーソルで、ワンクリック後に矢印になっていたのですが、フレームアクションで上記スクリプトを加えたところ、最初から矢印で表示されました。ちなみに、Onイベント挿入時でも、最初から矢印表示させる事は可能なのでしょうか。例えば、一部のボタンだけに適用させたい場合などに・・・。
野中文雄
Åê¹ÆNo.2771
投稿日時: 2004-1-8 20:09
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: ボタンの機能について
森さんのアドバイスは、有効ではなかったのでしょうか?
引用:
Shun-icさんは書きました:
Onイベントの中に挿入したときは、最初のロールオーバー時はハンドカーソルで、ワンクリック後に矢印になっていたのですが、フレームアクションで上記スクリプトを加えたところ、最初から矢印で表示されました。ちなみに、Onイベント挿入時でも、最初から矢印表示させる事は可能なのでしょうか。例えば、一部のボタンだけに適用させたい場合などに・・・。

引用:
ymoriさんは書きました:
onハンドラの中でもちゃんと動きます。このようにすれば、マウスがボタンの上に来たときにハンドカーソルをfalseにします。
on (rollOver) {
	Button.useHandCursor = false;
}

仮に「on (release)」で設定していたとしても1回ボタンを押せば利くようになるはずです。
しかし、普通はこんな風にonハンドラの中で使ったりはしません。フレームアクションなどであらかじめ1回
Button.useHandCursor = false;

と指定しておきます。

しかし、森さんもいわれるとおり、Buttonアクションのonハンドラは、こうした設定を行うのに適した仕組みではありません。一部のButtonにだけ適用したい設定は、そのインスタンスを指定してフレームアクションで処理すればよいと思います。
// MovieClip: ボタンを配置したタイムライン
// フレームアクション
適用したいButton1.useHandCursor = false;
適用したいButton2.useHandCursor = false;
適用したいButton3.useHandCursor = false;
...

スクリプトをインスタンスと一体化したいということでしたら、ボタンをムービークリップシンボルで作成すべきでしょう。


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

Shun-ic
Åê¹ÆNo.2784
投稿日時: 2004-1-9 15:04
新米
居住地:
投稿: 26
使用環境:
Flash MX
WinXP
Re: ボタンの機能について
Fumioさま、早速のレスありがとうございます。

引用:
しかし、森さんもいわれるとおり、Buttonアクションのonハンドラは、こうした設定を行うのに適した仕組みではありません。一部のButtonにだけ適用したい設定は、そのインスタンスを指定してフレームアクションで処理すればよいと思います。
// MovieClip: ボタンを配置したタイムライン
// フレームアクション
適用したいButton1.useHandCursor = false;
適用したいButton2.useHandCursor = false;
適用したいButton3.useHandCursor = false;
...

スクリプトをインスタンスと一体化したいということでしたら、ボタンをムービークリップシンボルで作成すべきでしょう。

フレームアクションで処理する方法で試してみようと思います。
皆さまから教えていただき、大変参考になりました。
ありがとうございます。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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