メイン コーダーズルーム【スクリプト系】 性格判断コンテンツ | 投稿するにはまず登録を |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
Itchy | Åê¹ÆNo.25274 投稿日時: 2006-5-1 14:11 |
新米 居住地: 投稿: 14
使用環境:
WinXP,Flash 8 |
Re: 性格判断コンテンツ ひろゆきさん、野中さん
色々ご意見ありがとうございます。 また、返信遅くなり申し訳ございません。 野中さん、ひろゆきさんの意見を参考にしつつ何とか、自力で考えた結果、昨日ようやく解決できました。 解決手段としては、今まで、三つのMCに書いていたIF文を ひとつにし、下記のように書きました。 this.setResult = function() { var resultA=0; var resultB=0; trace("pointA"); trace(_global.pointA); trace("pointB"); trace(_global.pointB); //set resultA if(17<=_global.pointA && _global.pointA<=20){ resultA = 1; } if(13<=_global.pointA && _global.pointA<=16){ resultA = 2; } ・ ・ ・ ・ このような、if文で、resultA、resultBをそれぞれ4つ定義し、 さらに、if文で if(resultA ==1 && resultB ==4){ this._parent.mcResult.gotoAndStop("resA"); //_root.mainContents.mcResult.gotoAndStop("resA"); trace("resA!"); } ・ ・ ・ ・ resultAと resultBの組み合わせで、結果ムービークリップの各ラベルに飛ばすようにしました。 問題のポイント加算はラジオボタンに、 _global.pointB += 4; と書き、加算させました。 また、メインのタイムラインに定義した、グローバル関数も はじめ、 _global.pointA=""; のように、統一していたものも、ポイント加算に関するものは _global.pointA=0; に直しました。 "";は文字列として扱われてしまうんですね・・・ どうりで加算されないわけです・・・・。 入れ違いで、ご返信いただいたのに、申し訳ございません。今後も参考にさせていただきます。 ありごとうございました。 |
ひろゆき | Åê¹ÆNo.25239 投稿日時: 2006-4-29 8:48 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: 性格判断コンテンツ なんだか、どんどん複雑にされているような気がしますが...。
「サンプル」 #FlashPlayer7以降で、RadioButton コンポーネントを利用するとして、 #1画面だけで選択肢を選択、判定を行うもの。 ライブラリ内に、RadioButton を追加。 また、ムービークリップ(リンケージ識別子: set_mc) を作成。 set_mc には、テキストフィールド(インスタンス名: n_txt, q_txt) を配置。
参考まで。
|
Itchy | Åê¹ÆNo.25146 投稿日時: 2006-4-25 18:18 |
新米 居住地: 投稿: 14
使用環境:
WinXP,Flash 8 |
Re: 性格判断コンテンツ お世話さまです。
たしかにABCDの前に改行が入ってました。 また、変数のリストアップもご指摘の通りでした。 >ムービーの構成を縮小して、2択1問で結果を正しく取得して、判定することはおできになりますか? 試してみます。 |
野中文雄 | Åê¹ÆNo.25145 投稿日時: 2006-4-25 18:11 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 性格判断コンテンツ まず、グローバル変数は、代入演算子=で空文字列""に設定されていますか? だとすれば、[出力]パネルには、正確には6行の改行が入っていませんか?
また、[ムービープレビュー]で[変数のリストアップ]をしたとき、以下のようにグローバル変数の右辺が空ではありませんか? [デバッグ] > [変数のリストアップ]より引用: グローバル変数: 以上の場合には、すべてのグローバル変数が、初期値の空文字列""から変更されていません。したがって、2択のボタンによる値が設定されていないと推測されます。 さらにムービーの構成を縮小して、2択1問で結果を正しく取得して、判定することはおできになりますか? 引用: Itchyさんは書きました: |
Itchy | Åê¹ÆNo.25144 投稿日時: 2006-4-25 17:50 |
新米 居住地: 投稿: 14
使用環境:
WinXP,Flash 8 |
Re: 性格判断コンテンツ traceに関してですが、ムービープレビューをして、各選択肢を選択して、最後に診断結果ボタンを押したところ、出力パネルにはABCDとだけでました。最後の
onClipEvent (load) { this.getPoint03 = function() { trace(_global.resultA); trace(_global.resultB); trace(_global.m01); trace(_global.m02); trace(_global.s01); trace(_global.s02); if (_global.resultA == _global.m01 && _global.resultB == _global.s01) { trace("A"); _root.resMC.gotoAndPlay("A"); } if (_global.resultA == _global.m01 && _global.resultB == _global.s02) { trace("B"); _root.resMC.gotoAndPlay("B"); } if (_global.resultA == _global.m02 && _global.resultB == _global.s01) { trace("C"); _root.resMC.gotoAndPlay("C"); } if (_global.resultA == _global.m02 && _global.resultB == _global.s02) { trace("D"); _root.resMC.gotoAndPlay("D"); } }; } に関しては、データの引渡しは可能とのことでしょうか? |
野中文雄 | Åê¹ÆNo.25143 投稿日時: 2006-4-25 17:34 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 性格判断コンテンツ trace()ステートメントは、処理の経過状況を確認するためのものですから、動作結果は変わりません。引用されたスクリプト中でも、使っていらっしゃいませんでしたか?
引用: Itchyさんは書きました: 引用: Itchyさんは書きました: 参考:「trace関数」 「ActionScript ? Flash」 「FLASHのActionScriptを楽しく覚える講座」 Flash ActionScript入門ノート「trace()で出力パネルに書き出す」 |
Itchy | Åê¹ÆNo.25142 投稿日時: 2006-4-25 17:17 |
新米 居住地: 投稿: 14
使用環境:
WinXP,Flash 8 |
Re: 性格判断コンテンツ 前の回答で挿入したtrace()ステートメントの結果は、確認されましたか?
実際に前回の通りtraceを追加したのですが、特に変化ありませんでした。その前に、trace()ステートメントの結果を、確認するというのはどういうことでしょうか?すみません、教えてください。(勉強不足です・・・) |
野中文雄 | Åê¹ÆNo.25141 投稿日時: 2006-4-25 16:22 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 性格判断コンテンツ 代入演算子=に変更すれば、初期値の設定として(とくにFlash Player 7以降では)意味があります。ただ、初期値が空白文字列""でよいのかは、後に検討すべき問題として残ります。
引用: Itchyさんは書きました: 前の回答で挿入したtrace()ステートメントの結果は、確認されましたか? その結果を見ないと、先に進めません。 引用: また、「指定のフレームに飛ばない」というのは、result_controller03のMovieClipアクションに定義した関数(function)getPoint03()で 以下にいわれている内容が、よくわかりません。MoiveClipアクションにはまた別の関数(function)が定義してあるようですので、それをどのように呼出しているのかわからないことにはコメントができません。 ただいずれにしても、上述のtrace()結果の確認が先決だと思われます。 引用: resultA、resultB、その組み合わせの3つをそれぞれちがったムービークリップアクションに書いているため、その連携がうまくいかないのかなと、思ったりしてたのですがいかがでしょうか? |
Itchy | Åê¹ÆNo.25140 投稿日時: 2006-4-25 16:08 |
新米 居住地: 投稿: 14
使用環境:
WinXP,Flash 8 |
Re: 性格判断コンテンツ ご返信ありがとうございます。
_global.ans_A1 == ""; を _global.ans_A1 = "";にしてもこの場合あまり意味がないということでしょうか? また、「指定のフレームに飛ばない」というのは、result_controller03のMovieClipアクションに定義した関数(function)getPoint03()で _root.resMC.gotoAndPlay("A"); このように、結果MC(インスタンス名はresMC)内のキーフレームに、結果を配置しているので、ポイントによりラベルA?Dまでのどれかにとばしたかったのですが・・・。 resultA、resultB、その組み合わせの3つをそれぞれちがったムービークリップアクションに書いているため、その連携がうまくいかないのかなと、思ったりしてたのですがいかがでしょうか? |
野中文雄 | Åê¹ÆNo.25138 投稿日時: 2006-4-25 15:39 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 性格判断コンテンツ 気づいた点から、順につぶしていきます。
まず、以下のスクリプトで「グローバル変数」は設定されていません。新規のムービーにこのフレームアクションだけを記述して、[ムービープレビュー]で[デバッグ] > [変数のリストアップ]を行っても、グローバル変数はひとつも表示されないと思います。 等価演算子==は、両辺の比較を行うだけです。値を設定する場合には、代入演算子=を用います。もっとも、この処理は意味がないものの、必ずしも不具合の原因ではないかもしれません。 引用: Itchyさんは書きました: 「指定のフレームに飛ばない」というのは、インスタンスresult_controller03のMovieClipアクションに定義した関数(function)getPoint03()の動作が意図どおりでないという意味だと推測します。 引用: 現在の状況としては、結果表示のMCは出るのですが 「条件式を3つに分けてる」といわれるのが、どの処理を指すのかわかりかねます。いずれにしても、if条件で判定対象となっている値を確認することから始めるのがよいでしょう。 引用: やはり、ポイントが加算されてないのではと思うのですが、条件式を3つに分けてる過程で引き継がれていないのでしょうか?
|
(1) 2 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |