- 締切済み
1度押されたボタンを消すには
環境:MacOS10.5.6 Flash:CS3 Actionscript:2.0で書いてます 初歩的な質問ですみません。 5つのボタンがあって、そのうちいづれか 「1つのボタンインスタンスを1回押したらそのボタンは消える」 というスクリプトを組みたいのですがどう書いていいかわかりません。。 ボタンは最初の画面で5つ表示されており、ユーザーがそのうちどれでも自由に(ランダムに)押せるようになっています。 このランダムに押された場合、どう処理していいかわからないです。 どうかご教授ください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- DPE
- ベストアンサー率85% (666/776)
ボタンを表示するかしないかを決める、_visible というプロパティがあります。 消える=見えなくするとのことでしたら、クリックした時にボタンの _visible プロパティを false にしてはいかがでしょう。_visible プロパティに false を設定すると、そのボタンは表示されなくなります。 _visible プロパティが false になっている間は表示されない(ステージに存在するが、画面上では見えない)だけでなく、ボタンとしての機能も停止しますので、再度クリックしても何も起こりません。 作り方の一例です。 ボタンを配置し、各インスタンス名を、”共通の名前と通し番号”で付けてください。 例えば共通の名前を” btn ”、通し番号を 1 からとすると、btn1・btn2・btn3 ・・・というように連番で付けます。 インスタンス名をこのように、規則性のある名前にするところがポイントです。 次に、ボタンがクリックされた時に行う処理を定義します。 ステージにボタンのインスタンス btn1 ~ btn5 があるとします。 ボタンのインスタンスを配置したタイムラインのフレームに、次のようなスクリプトを記述してください。 (↓各行頭に全角のスペースが入っています。コピーする際は、全て半角のスペースかタブに置き換えてください。このまま使うとシンタックスエラーになります) /****************************************************/ //ボタン btn1 ~ btn5 が押された時の処理を定義 for( var i:Number = 1 ; i <= 5 ; i++ ) { this[ "btn" + i ].onRelease = function():Void { //このボタンを非表示にする this._visible = false; }; } /****************************************************/ 「ムービープレビュー」で動作を確認してみてください。どのボタンをどのような順番で押しても、押されたボタンが消えます。 また、消えたボタンがあった場所にマウスカーソルを合わせてもカーソルの形が変わりませんし、クリックしても何も反応しません。 この例は、単純に”押されたら自分自身が消える”というボタンが5つ並んでいるだけで、消えたものはもう元には戻りません。ですから、5つとも押すとボタンが全部消えてしまいます。 既にどれかが押されている状態で他のボタンを押すと、前に押されていたボタンは元に戻る・1つ押されたら他のボタンは押せなくなる・・・などの場合は、また別の工夫が必要になります。
お礼
貴重なご回答ありがとうございました。 5つとも試してみたのですが、間にムービーを挟んでおりましたので ちょっと難しかったです。 でも非常に参考になりました! ありがとうございました。
補足
ご回答ありがとうございます。 DPE様の書いてくださったスクリプトをちょっと改変しまして とりあえず1つのボタンは成功しました! 月曜日に全てのボタンにあててみて、改めてお礼したいと思います。 ありがとうございました。