メイン 迷える子羊の部屋【初心者専用】 抽選くじの作り方 | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
huwaff | Åê¹ÆNo.46722 投稿日時: 2011-1-5 16:37 |
新米 居住地: 投稿: 6
使用環境:
WinXP,Flash8 |
抽選くじの作り方 抽選くじを作ろうと思っています。単純に【くじを引く】ボタンをクリックすると、フレームを移動して【A賞 プラズマテレビ】のように賞品名が出るというものです。
ただ、賞品が100以上あるのと、一度出た賞品は再度出ないようにしたいのです。「ここを勉強したら」など、ポイントだけでも結構なので、教えていただけると嬉しいです。(作成してみてまたお伺いしてしまうかもしれませんが...) どうぞよろしくおねがいします。 |
野中文雄 | Åê¹ÆNo.46723 投稿日時: 2011-1-5 16:47 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 抽選くじの作り方 「一度出た賞品」が「再度出」てよいなら、おできになるのでしょうか。その場合、どのようにつくられますか。→【やり方(スクリプトの書き方)を教えてください】
引用: huwaffさんは書きました: |
ひろゆき | Åê¹ÆNo.46724 投稿日時: 2011-1-5 16:48 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: 抽選くじの作り方 問題は「考え方」でしょう。
まず「一度出た賞品は再び出ないようにしたい」自体が不明確です。 遊びとしての賞品なのか、本物としての賞品なのかによって、 何をなさりたいのか解釈が変わってきます。 つまり、一度出てしまった賞品は、他の人には出さないという意味なのか、 ある人が引いてしまった賞品は、その人には出さないという意味なのか、 そのあたりのことが不明確です。
|
huwaff | Åê¹ÆNo.46726 投稿日時: 2011-1-5 18:00 |
新米 居住地: 投稿: 6
使用環境:
WinXP,Flash8 |
Re: 抽選くじの作り方 野中文雄さん、ひろゆきさん、早速にありがとうございます。感激してしまいました。
以前に「賞品が5つで、同じ賞品が出てもよい」という条件で作成したFLASHがあります。(根本的に間違っていそうで、恥ずかしくて書けませんでした。すみません。) ------------------------------------ 1フレーム目 【くじを引く】ボタン on (release, keyPress "<Space>"){ i = Math.floor(Math.random()*5); if (i == 0) { gotoAndPlay("random_1"); } if (i == 1) { gotoAndPlay("random_2"); } if (i == 2) { gotoAndPlay("random_3"); } if (i == 3) { gotoAndPlay("random_4"); } if (i == 4) { gotoAndPlay("random_5"); } else {} } ------------------------------------ random1?5ラベルのいずれかに飛び、賞品名を表示するというものです。 これを調整して賞品100個、100フレーム分を用意するとしても、1度引かれた賞品を表示させないようにするにはどのような関数が考えられますでしょうか。 お恥ずかしながら背景ですが、地元の商店街で抽選会が予定されていて、くじはFLASHで大きなスクリーンに映しながら行うことになっています。くじで出た賞品(テレビやタオルなどの物品です。)はそのまま賞品として渡してしまうので、次の人以降がくじを引いた際、同じ賞品が表示されないようにしたいのです。 お手数ですが引き続きよろしくお願いします。 |
ひろゆき | Åê¹ÆNo.46728 投稿日時: 2011-1-5 18:32 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: 抽選くじの作り方 gotoAndPlayよりも、gotoAndStopの方がいいんじゃないかと思いますが、
何故にgotoAndPlayなのか、きっと深い事情が隠されていると思うので、放置しておきます。 ただ、100フレーム分、if文を記述するのは、面倒だと思うので、
まず、どの程度スクリプトを理解されているのか示されていませんので、 全く理解されていないという前提で、 ヒントだけでいいということなので、 「配列」を学習してください。以上。
|
野中文雄 | Åê¹ÆNo.46729 投稿日時: 2011-1-5 18:42 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 抽選くじの作り方 ムービーを1度再生したら抽選は最後まで行う、つまり抽選の経過を保存する必要がないという前提でよろしいですね。その場合今のやり方に合わせるなら、移動先フレームラベルすべてを配列に入れ、ランダムに並べ替えてから順に取出してフレームを切替えればよいでしょう。
参考: 拙著『ActionScript 3.0プロフェッショナルガイド』T.1.2「配列エレメントをランダムに並べ替える」(PDF) ちなみに、if条件を並べるのでなく、else ifと組合わせた方が無駄は省けます。 引用: huwaffさんは書きました: |
コマツ | Åê¹ÆNo.46730 投稿日時: 2011-1-6 10:14 |
職人 居住地: 東京都葛飾区 投稿: 356
使用環境:
windows7 CS5.5 CS6 |
Re: 抽選くじの作り方 huwaffさん、 こんにちは。
野中さんやひろゆきさんが書いているように、配列を使いこなせれば望みのものができそうに思います。 配列を使う意味がわかれば、以下のフォーラムの以前のスレッドも参考になるかもしれません。 ランダムに配列等から値を取得 |
huwaff | Åê¹ÆNo.46750 投稿日時: 2011-1-6 16:31 |
新米 居住地: 投稿: 6
使用環境:
WinXP,Flash8 |
Re: 抽選くじの作り方 みなさま、ありがとうございます。「配列」ということで、調べてみたところまさに実現したかったことです。色々な使い道がありそうで、勉強になりました。
また、野中さんからいただきましたPDF内の「初めにシャッフルして運命を決める」には目からうろこでした。 そして過去ログもあったのですね...大変失礼致しました。みなさまありがとうございます。 参考にさせていただきながら悪戦苦闘、ここまでできましたが...。 -------------------- 1フレーム目 -------------------- var frame:Array = ["random_1","random_2","random_3","random_4","random_5"] function xShuffleArray(frame:Array) { var i = frame.length; while(i) { var nRandom = Math.floor(Math.random()*(i--)); var temp:Object = frame[i]; frame[i] = frame[nRandom]; frame[nRandom] = temp; } } trace(frame); -------------------- 【くじを引く】ボタン -------------------- on (release) { var link = frame.shift(); gotoAndStop(link); } -------------------- trace(frame); で見てみると、ランダムにならずそのまま random_1?5 の順番で表示されます。 ランダムに並んだ配列を、取り出す方法になかなか行き着きません。 もう少しのような気がするのですが、ダメなところを教えていただけますでしょうか。 |
ひろゆき | Åê¹ÆNo.46751 投稿日時: 2011-1-6 16:42 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: 抽選くじの作り方 スクリプトは、見やすいように、[code][/code]で囲んで、掲載しましょう。
また、スクリプトはコードを貼り付けるだけでなく、 どこに記述したとか、どんなインスタンスをどこに配置してあるかの情報も必要です。 第三者が再現しやすいような説明を心がけてください。 くじを引くボタンは、ボタン・インスタンスなのか、ムービークリップ・インスタンスなのかによって、 スクリプトを変えなければならないので、それも明記すべきでしょう。 xShuffleArray()が実行されていませんが。
|
野中文雄 | Åê¹ÆNo.46752 投稿日時: 2011-1-6 16:44 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: 抽選くじの作り方 関数(function)の定義については理解されていますか?拙著『ActionScript 3.0プロフェッショナルガイド』の紹介ページに公開しているChapter 2の「PDFプレビュー」(全58ページ)に解説しています。
引用: huwaffさんは書きました: |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |