メイン コーダーズルーム【スクリプト系】 おみくじスクリプト | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
komainu | Åê¹ÆNo.2726 投稿日時: 2004-1-7 19:53 |
新米 居住地: 大阪 投稿: 14
使用環境:
WinXp、FlashMX2004 |
おみくじスクリプト 質問です。
昨日からおみくじを作ろうかと思って制作しているんですが、 ランダムの数値を取得して、if文で設定した条件を満たす フレームに飛ばすように制作しているんですが、 乱数を取得した後、どうしてもフレームの2つ目と3つ目が 交互にしか表示でないんです。 スクリプトの書き方でどこかまずいものがあるのでしょうか? ご教授お願い致します。 on (release) { d = Math.random()*100+1; if (1<=d<=33) { gotoAndPlay ("daikyou"); //<<2フレーム目がこれ } else if (34<=d<=66) { gotoAndPlay ("kiti"); //<<3フレーム目がこれ } else if (67<=d<=100) { gotoAndPlay ("daikiti");//<<ここが表示されない } } |
ゲスト | Åê¹ÆNo.2730 投稿日時: 2004-1-7 20:35 |
Re: おみくじスクリプト どうも、こんにちわ
on(release){ d = Math.random()*100+1; trace(d) if (1<=d && d<=33) { gotoAndPlay ("daikyou"); } else if (34<=d && d<=66) { gotoAndPlay ("kiti"); } else if (67<=d && d<=100) { gotoAndPlay ("daikiti"); } } これでどうでしょうか。 1<=d<=33 の書き方はエラーは出ませんが、ActionScriptとしては正しくないため希望どうり動かなかったのでしょう。 またついでですが、dについて、 1<=d && d<=33 34<=d && d<=66 67<=d && d<=100 の範囲設定では、仮にd=66.5やd=33.4などとなったときに行き先がありませんし理屈上100を上回ることもあるので、 1<=d<=33 34<d<=66 66<d<=101 とするか、 dを設定する段階で d = Math.floor(Math.random()*100)+1; とされるのがよいかと思います。 |
|
うすあじ | Åê¹ÆNo.2734 投稿日時: 2004-1-7 21:42 |
職人 居住地: 東京都杉並区 投稿: 211
使用環境:
FlashCS5.5 ,MacOSX 10.6.8 |
Re: おみくじスクリプト こんにちは、うすあじです。
先に33で割るなど、シンプルにした方がよいかもしれませんね。 私のところの”おみくじ”を紹介しておきます。 FlashLiteでおみくじのFlaファイルの構造 http://hspcenter.com/flash/505sc/flasc1.html FlashLiteのおみくじムービー http://www.hspcenter.com/i/omi505.swf FlashMX(PC向け)おみくじ http://hspcenter.com/flash/omikuji.html
|
nao | Åê¹ÆNo.2738 投稿日時: 2004-1-7 21:59 |
職人 居住地: 投稿: 208
使用環境:
WinXP Pro Flash8 Professional |
Re: おみくじスクリプト
これでどうでしょうか? ActionScriptでは if (1<=d<=33)ではなく if ((d >= 1) and (d <= 33)) と書きます. あと,komainuの条件の指定の仕方だと 33.5とか66.3とかが出るとどこにも行かないのでは??
|
野中文雄 | Åê¹ÆNo.2740 投稿日時: 2004-1-7 22:53 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: おみくじスクリプト 比較論理式は、左辺から評価されます。
(1<=d)<=33 (1<=d)は、dが1以上ならtrue、1より小さればfalseになります。このBoolean(論理)値を数値として扱われると、trueが1、falseは0に変換されます。 (1または0)<=33 1も0も33以下ですので、式の評価はつねにtrueとなります。つまり、いつも"daikyou"です。「交互に表示」される理由がよくわかりません。 引用: komainuさんは書きました:
|
komainu | Åê¹ÆNo.2752 投稿日時: 2004-1-8 10:00 |
新米 居住地: 大阪 投稿: 14
使用環境:
WinXp、FlashMX2004 |
Re: おみくじスクリプト 皆さんありがとうございました。
条件文の表現はこう書かないといけないんでですね &&で条件文を2つにしたところちゃんと動きましたのでご報告いたします。 もっと条件を簡単にしたほうがいいというのも分かっているんですが、 最終的には吉の幅を広く作って、凶と大吉を狭くするつもりですので このような形にしています。 > 「交互に表示」される理由がよくわかりません。 それが私も分からないので、私も困っていました。 何せ一つしか表示されないのだったら、記述が悪いのかな? とか思うんですが、何故か中途半端に動くもので、余計に混乱しました。 何でなんだろう? |
野中文雄 | Åê¹ÆNo.2765 投稿日時: 2004-1-8 17:59 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: おみくじスクリプト 条件の順序を正しく組立てれば、ふたつずつ指定する必要はないと思いますよ(なお、gotoAndPlay()にはthisをつける方がよいでしょう)。
引用: komainuさんは書きました: ポストされたスクリプト以外に、原因があると思います。 引用: 何せ一つしか表示されないのだったら、記述が悪いのかな? |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |