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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     ラジオボタンが選択されていないときの処理
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yousona
Åê¹ÆNo.33777
投稿日時: 2007-6-22 11:00
半人前
居住地:
投稿: 35
使用環境:
winxp
Flash MX 2004 pro
ラジオボタンが選択されていないときの処理
お世話になっています。
フレーム1に
ラジオボタンが5個とテキストフィールドが1個
あります。ラジオボタンが選択されていないとき
選択を促す表示をしたいのですがどうも
わかりません。選択されていないというのは
スクリプトではどのように書くのでしょうか。
よろしくお願いします。
RaListener=new Object();
var ttest="○";
RaListener.click=function(evt){
//この部分がわかりません。
if(evt.target.selectedData==""){
ftext1.text="選択してください";
}
else if(ttest==evt.target.selection.data){

ftext1.text=evt.target.selection.data;

}
else{
ftext1.text="×";
}
}


radioGroup.addEventListener("click",RaListener);

野中文雄
Åê¹ÆNo.33784
投稿日時: 2007-6-22 19:39
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: ラジオボタンが選択されていないときの処理
まず、引用のスクリプトは、ご自分で考えて書かれたものですか? また、処理の内容は、理解されていますか?

RadioButtonGroup.clickは、未選択のRadioButtonインスタンスを選択しようとクリックしたときに発生するイベントです。つまり、つねに発生直前は未選択で、発生時に選択状態に変わります。今まさに選択しようとクリックしたのに「選択を促す表示」が出たら、ユーザーはテーブルをひっくり返します。

ご自分のやろうとされていることをもう1度整理し、改めてご説明・ご質問された方がよいように思われます。
引用:
yousonaさんは書きました:
フレーム1に
ラジオボタンが5個とテキストフィールドが1個
あります。ラジオボタンが選択されていないとき
選択を促す表示をしたいのですがどうも
わかりません。選択されていないというのは
スクリプトではどのように書くのでしょうか。
よろしくお願いします。
RaListener=new Object();
var ttest="○";
RaListener.click=function(evt){
	//この部分がわかりません。
	// ...[中略]...
}

radioGroup.addEventListener("click",RaListener);


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

yousona
Åê¹ÆNo.33786
投稿日時: 2007-6-22 21:34
半人前
居住地:
投稿: 35
使用環境:
winxp
Flash MX 2004 pro
Re: ラジオボタンが選択されていないときの処理
野中さん

お世話になっています。
ご教示ありがとうございます。
フレーム1に
ボタンが配置してあるのですが
そこに、選択されていない
場合のスクリプトを書けばよいという
ことですね。
それでボタンに以下のスクリプトを書いたのですが
これですと、選択を促す表示はできても
この場合、フレーム10が表示されてしまいます。
次のフレームに移動させないで表示させることは
できるのでしょうか。
参考書を見ながらやっているのですが、
どうも情報量がすくなくて、困っています。
よろしくお願いします。


on(press){
if(evt.target.selection.data==False){
ftext1.text="選択してください";
//trace("選択してください");
}
_root.gotoAndPlay(10);
}
野中文雄
Åê¹ÆNo.33787
投稿日時: 2007-6-22 22:16
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: ラジオボタンが選択されていないときの処理
前の回答でご質問したことについて、お答えがないようです。
引用:
野中文雄は書きました:
まず、引用のスクリプトは、ご自分で考えて書かれたものですか? また、処理の内容は、理解されていますか?

ただ、以下のスクリプトから判断するかぎり、処理内容を理解されていないように見受けられます。その参考書には、スクリプトの説明はないのでしょうか?

スクリプトをどこに書けばよいかは、いつ「選択を促す表示」をしたいかによります。これは仕様に属することで、コンテンツの制作者が決めるべきことです。ボタンを押したときに表示したいのでしたら、ボタンに記述します。

「フレーム10が表示されて」しまうのは、第10フレームに移動するステートメントがあるからです。

また、以下のif条件では、RadioButtonの選択にかかわらず、つねに「選択を促す表示」がされると思われます。

処理内容を理解せずに参考書やサイトのサンプルを抜書きしてスクリプトを書くのは、アクセル/ブレーキ/クラッチの機能を「理解」せず、「操作の順番」だけ覚えてドライブしようとするのに等しいです。危険ですし、大抵事故ります。
引用:
yousonaさんは書きました:
フレーム1に
ボタンが配置してあるのですが
そこに、選択されていない
場合のスクリプトを書けばよいという
ことですね。
それでボタンに以下のスクリプトを書いたのですが
これですと、選択を促す表示はできても
この場合、フレーム10が表示されてしまいます。
次のフレームに移動させないで表示させることは
できるのでしょうか。
...[中略]...
on (press) {
	trace(evt.target.selection.data);
	trace(False);
	if (evt.target.selection.data == False) {
		ftext1.text = "選択してください";
		// trace("選択してください");
	}
	_root.gotoAndPlay(10);
}


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

yousona
Åê¹ÆNo.33789
投稿日時: 2007-6-23 7:20
半人前
居住地:
投稿: 35
使用環境:
winxp
Flash MX 2004 pro
Re: ラジオボタンが選択されていないときの処理
野中さん

質問に答えなくてすみませんでした。

>まず、引用のスクリプトは、ご自分で考えて書かれたものですか? また、処理の内容は、理解されていますか?

参考書とネット検索で調べ、自分なりに考えて作成しました。
しかし、野中さんに指摘され、スクリプトの内容を大して
理解していなかったことがよくわかったような状況です。
アドバイスをもとに、以下のように修正しましたが
根本的に発想というのか、作成法が誤っているのでは
ないかと思うようになりました。
やりたかったことは、選択肢式のクイズでした。
ラジオボタンを選択させ、正解なら○を表示をさせ
ボタンでつぎのクイズを表示させるといったものです。
アドバイスをいただければ助かります。
on(press){
if(radioGroup.selection==undefined){
trace("選択してください");
         //移動があやしい
_root.gotoAndPlay(5);
}
else{
_root.gotoAndPlay(10);
}
}

ひろゆき
Åê¹ÆNo.33790
投稿日時: 2007-6-23 7:56
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: ラジオボタンが選択されていないときの処理
引用:
//移動があやしい

「移動があやしい」とは、どういうことでしょうか?

問題の解決を図るにあたって、答えを求めようとするあまり、
現状の把握あるいは第三者への説明を省かれているように思います。

テキストフィールドについて、どこにどのように配置されているのか、
説明がないように思いますが...。

複数のフレームを用いているのであれば、
どのフレームに何を配置されているなどの説明もされるべきでしょう。



_root に、RadioButtonコンポーネント(インスタンス名: rb1, rb2, rb3, rb4, rb5) を配置。
また、ムービークリップ(インスタンス名: myBtn) を配置。
テキストフィールド(インスタンス名: result_txt) も配置。

タイムラインは1フレームのみ

_root 第1フレームに
import mx.controls.RadioButton;
for (var n:Number = 1; n <= 5; n++) {
	var _rb:RadioButton = this["rb"+n];
	_rb.label = "rb"+n;
	_rb.data = n;
	_rb.groupName = "group";
}
myBtn.onRelease = function():Void {
	if (group.selection == undefined) {
		result_txt.text = "選択されていません。";
	} else {
		result_txt.text = group.selection.data;
	}
};
と記述。


----------------
質問する際は、回答者に具体的な情報を与えてください。

野中文雄
Åê¹ÆNo.33791
投稿日時: 2007-6-23 8:34
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: ラジオボタンが選択されていないときの処理
スクリプトのご説明がありません。

スクリプトを見てください】より引用:
アプリケーションのバグがないかぎり、スクリプトは記述されたとおりに動きます。ほとんどの場合、問題はスクリプト自体の動作にあるのではなく、目的や意図に合わない記述をしている点にあります。目的や意図は、期待どおり動作しないスクリプトの記述を見せられても、推測することはできません。

引用:
yousonaさんは書きました:
ラジオボタンを選択させ、正解なら○を表示をさせ
ボタンでつぎのクイズを表示させるといったものです。
アドバイスをいただければ助かります。
on(press){
	// ...[後略]...


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

yousona
Åê¹ÆNo.33792
投稿日時: 2007-6-23 10:30
半人前
居住地:
投稿: 35
使用環境:
winxp
Flash MX 2004 pro
Re: ラジオボタンが選択されていないときの処理

ひろゆき さん
お世話になります。

引用:


引用:
//移動があやしい

「移動があやしい」とは、どういうことでしょうか?
略・・・


どのフレームに何を配置されているなどの説明もされるべきでしょう。


説明不足ですみません。
フレーム5,10,15,20・・・のそれぞれに、ラジオボタン5個、次へのボタンと、ヒントボタンを配置して、
フレーム6,11,16,21・・・
にヒントとなるフレームを配置しています。
また、テキストフィールドは別のレイヤーに配置していまして
配置したどのフレームからも見えるようにしています。
それで、以下のように記述したところ
ラジオボタンが選択されていないとき、フレーム5では
なく、フレーム6が表示されてしまったのです。
その後の修正で、この現象はなくなりました。
野中さんにも回答をいただきましたのでそちらの
返信で修正のスクリプトを載せますが、
なぜなのか原因はわかりません。

on(press){
//ラジオボタンが選択されているかどうかのチェック
if(radioGroup.selection==undefined){
//選択されていない場合の表示とフレームの移動停止
trace("選択してください");
_root.gotoAndPlay(5);
}
else{
//ラジオボタンが選択されている場合はつぎのフレームに移動
_root.gotoAndPlay(10);
}
}
ひろゆきさんにご提示していただいた
スクリプトはこれから試してみます。
本当にありがとうございました。


yousona
Åê¹ÆNo.33793
投稿日時: 2007-6-23 10:55
半人前
居住地:
投稿: 35
使用環境:
winxp
Flash MX 2004 pro
Re: ラジオボタンが選択されていないときの処理
野中さん
何度もすみません。
さらに修正したスクリプトですが
これでどうでしょうか。
フレームに書いていたスクリプトをボタンの方に移動しました。
これで期待した結果がえられました。
on(press){
//ここに、ラジオボタンが選択されていないかをチェックする関数を設置
function mycheck() {
if(radioGroup.selection==undefined){
trace("選択してください");
//選択されていないときフレーム移動を停止
_root.gotoAndStop(5);
}
}
//まず、チェック作動。
mycheck();

RaListener=new Object();
var ttest="○";
RaListener.click=function(evt){
//チェックされたラジオボタンのプロパティのdataとttestが一致したら
//その結果を、フィールドに表示させる。一致していないときは×を
//表示させる。

if(ttest==evt.target.selection.data){

ftext1.text=evt.target.selection.data;

}
else{
ftext1.text="×";
}
}
//ラジオボタンが選択されていたら、次のフレームに移動する。
if(radioGroup.selection!=undefined){

_root.gotoAndPlay(10);
}

//新しいオブジェクトへの関連付け?
radioGroup.addEventListener("click",RaListener);
}
ひろゆき
Åê¹ÆNo.33794
投稿日時: 2007-6-23 14:14
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: ラジオボタンが選択されていないときの処理
複雑なものを作る前に、
もっと基本的なもので、動作を確認するなどされた方が良いのでは?

Flash ActionScript Helper: ムービークリップのフレームの移動


引用:
ラジオボタンが選択されていないとき、フレーム5では
なく、フレーム6が表示されてしまったのです。

gotoAndStop(5) ではなく、gotoAndPlay(5) と記述しているのですから、
第5フレームで止まらないのは、当然のことのように思います。

むしろ、第6フレームで止まるというのが不思議です。
第6フレームに、stop(); と記述しているのではありませんか?
だとしたら、やはり、まだ説明不足だと思います。


----------------
質問する際は、回答者に具体的な情報を与えてください。

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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