• ベストアンサー

FLASHでビンゴを作成するアクションスクリプトを教えて下さい。

4年ぶりにFLASHを作らざるを得ない状況に追い込まれていますが 抽選用のアクションスクリプトなんて組んだ事がありません。 BINGO用とのことで、履歴も表示せにゃならないようですが…… アクションスクリプトの組み方を教えて下さい。

  • Flash
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

ActionScript の組み方と書かれましても, バージョンだけを考えても ActionScript1.0~3.0 までバージョンがあります。 またさらに, 各Flash作成ソフトのバージョンによっても使えるスクリプト使えないスクリプトが様々ですから, それに応じて組み方も変わりますし,ムービーの構造も変わります。 今が2008年10月ですから,4年前となると,2004年10月ですね。 私のメモによりますと, FlashMX2004日本語版 の発売が 2004年12月5日 ですから,4年前にはまだ出ていません。 したがって, その先代の FlashMX(2002年3月29日発売)以上で使える範囲内のActionScript1.0 でよろしいでしょうか。 (発売日や定価などの情報も回答に関係する場合があるのでデータはメモしてあります。) ビンゴの数字となると普通のランダムではなく, 同じ数字が重複して出ないランダムな数でなくてはなりません。 これには,  配列内の要素に出すべき全データを用意して,  その配列内の要素をシャッフルして,  シャッフルした要素を順に取りだす。 という方法を使うのが一般的です(他にも方法はありますが)。 喩えるなら,  1~12までのトランプカードを用意して,  それらのカードを無茶苦茶にシャッフルして,  並べかえたカードを上から1枚ずつ取る。 というようなイメージです。 これだと,12枚目のカードを取るまで, ランダムな数のカードが重複なく出ますよね。 つまり, 数字を出す度にランダムを考えるのではなくて, 先にランダムは用意しておくということです。 先に用意しておいてもそれを一気に見せなければ良いだけです。 よろしければ, ステージサイズ横500×縦300くらい(その辺で適当)の新規ドキュメントを作成し, 次のスクリプトをフレーム1に書いて(コピペして), 「制御」→「ムービープレビュー」するかパブリッシュして動作確認してみてください。 それなりのもの(デザインとかはまるで凝っていない簡素なもの)が自動作成されると思います。 //========================================== // --- ↓★以下は本当は手動で作成★↓ ------ // 変数 i を 0~9 間で 1 ずつ加算してループ for (i=0; i<=9; i++) { // 履歴表示用テキストフィールド history_txt0~9 を作成 this.createTextField("history_txt"+i, i, 40, 50+i*20, 30, 20); this["history_txt"+i].border = true; } // // 抽選表示用テキストフィールド lot_txt の作成 this.createTextField("lot_txt", 100, 100, 50, 340, 150); this.lot_txt.border = true; // // 抽選表示用テキストフィールドの書式設定 lotTF = new TextFormat(); lotTF.size = 120; lotTF.align = "center"; this.lot_txt.text = "Bingo"; // 抽選表示用テキストフィールドに書式を適用 this.lot_txt.setTextFormat(lotTF); // // ボタン(ボタンとなるムービークリップ) btn_mc を作成 this.createEmptyMovieClip("btn_mc", 200); this.btn_mc._x = 100; this.btn_mc._y = 210; // btn_mc 中の文字を表示するテキストフィールド _txt の作成 this.btn_mc.createTextField("_txt", 0, 0, 0, 0, 0); this.btn_mc._txt.border = true; this.btn_mc._txt.autoSize = true; this.btn_mc._txt.background = true; this.btn_mc._txt.backgroundColor = 0xFF9999; this.btn_mc._txt.text = " 抽選! "; // --- ↑★以上は本当は手動で作成 ★↑ ------ // ビンゴの最小の番号を設定 (☆可変) minNum = 1; // ビンゴの最大の番号を設定 (☆可変) maxNum = 75; // 演出用の「溜め」のフレーム数時間を設定(☆可変) directTime = 30; // データ用配列 dataArr を作成 dataArr = new Array(); // 変数 i を minNum~maxNum 間で 1 ずつ加算してループ for (i=minNum; i<=maxNum; i++) { // dataArr[0]~dataArr[maxNum-minNum] に // minNum~maxNum の値を代入 dataArr.push(i); } // 要素をランダムにシャッフル for (i=0; i<dataArr.length; i++) { // 0 以上 dataArr.length-i 未満の整数の乱数を取得 j = Math.floor(Math.random()*(dataArr.length-i)); // ranArr[dataArr.length-1-i] と ranArr[j] を入れ替える k = dataArr[dataArr.length-1-i]; dataArr[dataArr.length-1-i] = dataArr[j]; dataArr[j] = k; } // 抽選回数カウント用変数 cnt の初期化 cnt = 0; // 抽選ボタン btn_mc クリック時の動作定義 this.btn_mc.onRelease = function() { // この 抽選ボタン のボタン機能を無効にする this.enabled = false; // // ちょっとした演出込みで dataArr の要素を順次表示 // フレーム数カウント用変数 frm の初期化 frm = 0; // 1フレーム進む時間毎に随時実行 this._parent.onEnterFrame = function() { // フレーム数カウントを 1 加算 frm++; // 変数 directNum に演習用の無意味なランダム数を代入 directNum = Math.floor(Math.random()*maxNum)+minNum; // 抽選表示用テキストフィールドに directNum を表示 this.lot_txt.text = directNum; // 抽選表示用テキストフィールドに書式を適用(手動配置では不要) this.lot_txt.setTextFormat(lotTF); // // もしフレーム数カウントが directTime 以上になれば if (frm>=directTime) { // 抽選表示用テキストフィールドに dataArr の cnt 要素を表示 this.lot_txt.text = dataArr[cnt]; // 抽選表示用テキストフィールドに書式を適用(手動配置では不要) this.lot_txt.setTextFormat(lotTF); // 履歴表示用テキストフィールドに dataArr の cnt 要素を表示 this["history_txt"+cnt].text = dataArr[cnt]; // 抽選回数カウントを 1 加算 cnt++; // この 抽選ボタン のボタン機能を有効にする this.btn_mc.enabled = true; // この onEnterFrame を削除 delete this.onEnterFrame; } }; }; //==========================================  ※ ActionScript1.0    Flash MX 以上で使用可能    FlashPlayer6 以上用SWFで閲覧可能 手動でテキストフィールドやボタンを作成する場合(普通はすると思います), ボタン は ムービークリップ ではなく,ボタンシンボルのインスタンスでかまいません。 ActionScriptでは ムービークリップ しか作成できないので ムービークリップ を作成しているだけです。 また テキストフィールド lot_txt とか,抽選ボタン btn_mc とか, ステージ上に表示されるものの名前(lot_txt と かbtn_mc とか) は, 全て "インスタンス名" を示しています。   

関連するQ&A

  • FLASH 4 アクションスクリプトについて

    FLASH 4 を使ってジグソーパズルを作る事になったのですが、 アクションスクリプトが分かりません。 FLASHを使ったジグソーパズルのアクションスクリプトのサンプルが載ったサイトや、書籍って誰か教えていただけないですか? 時間がなくて大変困ってます。 お願いします。

    • 締切済み
    • CSS
  • Flashアクションスクリプトで

    Flashアクションスクリプトで、Movieクリップにswfファイルを読み込む時に、swfファイルが表示されるMovieクリップの背景色ってどうやって帰られるのでしょうか?? よとしくおねがいしますm(__)m

  • FLASHのアクションスクリプトを簡単に

    アクションスクリプトってどんなものか簡単に教えて下さい。 FLASH2で止まりで、これからFlashMXの勉強を始めようと思ったので。 よろしくおねがいします!

  • FLASHのアクションスクリプトについて

    FLASHのアクションスクリプトを勉強したいのですが、 何かよい本やWebサイトはありますでしょうか。 (日本語のものがよいです) どうか教えてください、よろしくお願いいたします。

  • Flashのアクションスクリプト

    Flashのアクションスクリプトで、生成したオブジェクトの開放処理は書かなくてもいいのでしょうか? そこら辺の仕組みがどうなっているのか教えてください。

  • Flashのアクションスクリプト

    HPを作成しています。いろいろなFlashのアクションスクリプトのサンプルが載っているサイトか、お勧めの本がありましたらご紹介下さい。

  • Flashのアクションスクリプトで物体を動かす

    ネットで画面を表示させたときにフラッシュのアクションスクリプト使って1つの物体で同じ動作を繰り返させるソースを教えていただけないでしょうか?  またそのような情報扱っているサイトや本などがあれば紹介していただけないでしょうか? お願いします。

  • FLASHでメーラーの立ち上げるアクションスクリプトを教えてください

    初歩的な質問なんですが、 FLASHでメーラーの立ち上げるアクションスクリプトを教えてください。

    • ベストアンサー
    • Flash
  • 「Suzuka」のアクションスクリプト

    フリーのFlash作成ソフト、「Suzuka」を使用してFlashをつくっているのですが、アクションスクリプトの命令の言語がさっぱりわかりません。 スクリプト(クリックアクション)となっている所に、スクリプト編集があるのですが、もともと、アクションスクリプトの知識は皆無で、手も足も出ません。 今回は、Flashでテキストだけの物語を作ろうとしているので、 せめて、 「クリックして、次のテキストを表示する」 ことをやりたいのです。 これは、テキストエフェクトでは出来ませんでした。 やりかたがわかる人はどうか、教えてください。 よろしくお願いします。

  • Flashのアクションスクリプトについて質問があります。

    Flashのアクションスクリプトについて質問があります。  FlashのCS2を使って選択式クイズを作っています。タイトルや問題などのフレームにはラベルを付けて、ラベルレイヤーのキーフレームにスタートや選択肢のボタンを配置しました。そして、タイトルラベルにあるスタートボタンを押すと問題1に飛ぶようにアクションスクリプトを設定しました。その後、きちんと設定出来ているか再生して確認してみたところ、問題1から再生されて、タイトルから再生されなくなりました。何回かやり直してみたのですが、タイトルから再生されませんでした。アクションスクリプトの設定は、「タイトルラベルのキーフレームをクリック→スタートボタンが選択されていることを確認→F9を押してアクションスクリプトの設定画面を表示→スクリプトアシストをオンにする→グローバル関数の中にあるgotoをダブルクリック→移動して再生を停止をオンにする→タイプをフレームラベルに変更→フレームのメニューをクリックして問題1を選ぶ」というふうにしました。 なぜ、タイトルからではなくスタートボタンを押さないと表示されない問題1が表示されたのかわかりません。どこで設定を間違えているのか分からないので、わかる方がいらっしゃたら教えていただきたいと思います。お願いします。

専門家に質問してみよう