• 締切済み

flashのおみくじのような(4桁の数字)ランダムの表示

一日毎にランダム切り替わる4桁の数字をフラッシュで作成したい と思っています。 http://010101.blog25.fc2.com/?style3=10639&index 上記アドレスのサイトのような雰囲気ですが、リロードで数字が変わらないようにしたいと思っています。(左上部分) 一日毎のHP訪問者のラッキーナンバーみたいな感じです。 そのラッキーナンバーをお店にて言って頂くと割引を提供する ようにしたいと思っています。 (例) 2月28日 1245(固定) 3月1日  4567(固定) ・・・・ といった感じです。 当方のフラッシュはマイクロメディアflashpro 8です。

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

みんなの回答

noname#35109
noname#35109
回答No.2

#1の方の回答の補足に, > ちゃんとしたものを作ろうと思うと > PHPの知識が必要になるわけですね・・・。 と書かれていますが, これは, > そのラッキーナンバーをお店にて言って頂くと割引を提供する という条件があるからですよ。 PHPが必要か不要かはどうでも良いとして, サーバ上に固定の数を保存しておかなければ, ラッキーナンバーが正しいかどうかわからないでしょう。 ですから, サーバ上に固定した値を置いておく, もしくはサーバ上で固定した値を生成するしかないのです。 もし, > 上記アドレスのサイトのような雰囲気ですが、 > リロードで数字が変わらないようにしたいと思っています。 というだけのことでしたら,Flash だけで可能です。 しかし, お客さんが勝手に出した数値を店側が把握できるわけはありませんからね。 ですから, 結局サーバ側でのデータが必要になるので, Flash で固定の数値を作成しても,それは無駄なのです。 Flash は基本的にクライアントサイド(お客さん側)のPCで実行されるものです。 勝手にクライアントサイドで生成された4桁のランダムな数字なんて,お客さん以外普通はわかりません。 ======================= PHP などがダメでしたら, まとめて1ヶ月分くらいの4桁のランダムな数字データを, 手動(またはエクセルなど)で作成し, メモ帳か何かのテキストエディタでテキストファイルとして保存, そしてサーバ上にアップしておいてはいかがでしょうか。 例えば次のような感じです。 まずテキストファイルですが,ファイル名を仮に「lucky.txt」というファイル名にしておきます。 テキストファイルのデータ内容は次の --- 内のようにしておきます。 「lucky.txt」 ------------------------------------ &date0301=1234& &date0302=5678& &date0303=9876& &date0304=5432& &date0305=7410& &date0306=8520& &date0307=9630& &date0308=3578& &date0309=9632& &date0310=4478& ------------------------------------ 意味はわかると思いますが, date0301=1234 とは, 3月1日用の勝手に作った変数「date0301」の値が「1234」である。 ということです。 Flash の作成ですが, 新規ドキュメントを作成して, まずステージ上に4桁の数字が表示されるようなダイナミックテキストを用意し, そのダイナミックテキストフィールドのインスタンス名を, 「today」 にでもしておきます。 ダイナミックテキストの文字の色は ステージの背景色(白)以外の色にしておいてください。 そして, 新規レイヤーを追加し, そのレイヤーに次のようなスクリプトを書きます(コピペ可能)。 -------------------------------------------- // ---日付データの準備--- // 今日の時刻オブジェクト myDate を作成 var myDate = new Date(); // 変数 mon 今月を取得 // (月は 0月から始まるので1を加算) var mon = myDate.getMonth()+1; // 変数 dat に今日の日付を取得 var dat = myDate.getDate(); // 変数 luckyNum に 月(2桁)と日(2桁)を取得 var luckyNum = ("0"+mon).substr(-2, 2)+("0"+dat).substr(-2, 2); // // ---テキストのロードと表示--- // LoadVarsインスタンスの作成 var myLV = new LoadVars(); // // テキストロード完了時の処理を定義 myLV.onLoad = function(Seikou) { // ロード成功時 if (Seikou) { // テキストフィールド today に // 外部テキストファイルの変数 date? の値を表示 _root.today.text = this["date"+luckyNum]; // ロード失敗時 } else { // テキストフィールド today に luckyNum を表示 _root.today.text = "ロード失敗"; } }; // // 外部テキストを LoadVarsインスタンス にロード // (※キャッシュデータ参照防止処理入り) myLV.load("lucky.txt?n="+luckyNum); -------------------------------------------- それで, この Fla ファイルを,外部テキストファイル「lucky.txt」と同じフォルダに任意の名前で保存し, SWF と HTML をパブリッシュします。 そして,パブリッシュされた HTML を開くと, テキストフィールド today にその日の4桁の数字が表示されると思います。 ただし, パブリッシュした SWF を開いたり, ドキュメントの「制御」→「ムービープレビュー」では, ロードが失敗するため, テキストフィールド today には「ロード失敗」が表示されてしまうと思います。 なぜロードが失敗するかというと,  // 外部テキストを LoadVarsインスタンス にロード  // (※キャッシュデータ参照防止処理入り)  myLV.load("lucky.txt?n="+luckyNum); のように,キャッシュデータ参照防止処理を入れた, "lucky.txt?n="+luckyNum というものが書いてあるからです。 この部分を,普通通り, myLV.load("lucky.txt"); にしてもらうと, パブリッシュした SWF を開いたり, ドキュメントの「制御」→「ムービープレビュー」した場合でもちゃんとラッキーナンバーが表示されると思います。 myLV.load("lucky.txt"); しただけだと,ブラウザのキャッシュ(一時ファイル)を参照表示させる場合があるので, 日々違うデータを用意する場合はこうしておいた方が無難であるため入れています。 例えば今日が 3月2日 であった場合, myLV.load("lucky.txt?n="+luckyNum); と書いておくと,Flash は, 「lucky.txt?n=0302」という外部テキストファイルを読みに行こうとします。 明日になれば, 「lucky.txt?n=0303」という外部テキストファイルを読みに行こうとします。 ネット上ではこれで大丈夫ですが,ローカルPCの場合は, 「lucky.txt?n=0302」などというファイルはないので,ロードが失敗してしまいます。 キャッシュには 3月2日 には 「lucky.txt?n=0302」 のキャッシュが残り, 3月3日 には 「lucky.txt?n=0303」 のキャッシュが残り, 日によって違うキャッシュがのこるので古いテキストデータを参照表示されることがなくなります。 本題とは全く関係のないキャッシュの話になってしまいましたが, 話を本題に戻して, 1ヶ月とか3ヶ月単位でラッキーナンバーデータ「lucky.txt」を用意しても, 大したファイルサイズにはならないので大丈夫だと思います。 更新さえ忘れなければ良いわけで, この方法を使うと PHP などを用意する必要も特にありませんね。 上記スクリプトの, 日付に関しては,次のURLが参考になるかもしれません。 「時間について」 http://hakuhin.hp.infoseek.co.jp/main/as/time.html LoadVars に関しては,次のURLが参考になるかもしれません。 「LoadVarsオブジェクトを使った外部テキストファイルの読込み」 http://www.fumiononaka.com/TechNotes/Flash/FN0303007.html また, ダイナミックテキストに数字を表示させるのではなく, 画像で表示したい場合は次のURLが参考になるかもしれません。 質問:【カウンタ画像表示】split? http://oshiete1.goo.ne.jp/qa2754295.html  ↑教えて!goo ↓OKWave (同じです) http://okwave.jp/qa2754295.html

beginner11
質問者

お礼

貴重なお時間を割いて頂き本当にありがとうございます。 上記方法にて、PHPではありませんが うまくいきました。 さらに上を目指し、効率化のためにもPHPを勉強してみます。 m(__)m

  • perse
  • ベストアンサー率74% (113/152)
回答No.1

3月1日は誰が訪問しても4567にしたいということであればphpなどを 使ってサーバ側で何とかするしかありません。 phpでランダム4桁数字を作成してテキストファイルとして保存する。 それをswf側からloadVarsで読み込んで表示させる。 という動きになると思います。 細かいことを言うと、 ランダム数字を作成するのは一日一回だけなので、 数字を作成した日も何処かに覚えておかなければなりません。 suuji=1234&koushinbi=20070301 の様にテキストに保存して誰かが訪問するたびにphpで更新日をみて今日の日付でなければ新しくランダム数値を作成してテキストに上書き保存。(もしphpでテキスト作成日や保存日がわかるのであれば日付は必要ないです。) またあらかじめ画像を用意しておくという手もあります。 20070301.jpgの画像を読み込んで表示するだけで簡単です。 でもアドレスがわかってしまえば、ラッキーナンバーがばれてしまうかもしれません。 それに更新も面倒です。 さらにランダムでなくても良いのならswf側だけでも出来ます。 例えば2007年03月01日の場合この日付を「2」「0」「0」「7」「0」「3」「0」「1」の8つの数字として考え、2桁ずつの和を求めて 2+0=2 0+7=7 0+3=3 0+1=1 これで2731というランダムっぽい数値が出来上がります。 この「2桁ずつの和を求める」方法だと簡単にわかってしまいますが、4桁の数字を作成するロジックをもっと複雑にすればわかりにくくはなるでしょう。 お店側の人がそのロジックさえ知っていれば求めることができるので、 客の言った数字が今日のラッキーナンバーかどうかもわかります。 (というかどんなに複雑な方法で4桁の数字を作成しても サイトをみればその数字があるわけですからお店にPCがあれば確認できますね。) なんか素人な考え方ですが参考までに。

beginner11
質問者

お礼

貴重なご意見ありがとうございます。 ちゃんとしたものを作ろうと思うと PHPの知識が必要になるわけですね・・・。 色々また調べてみます。 m(__)m

関連するQ&A

  • FLASHでランダムでURLを表示させたいのですが

    FLASH初心者です。携帯用のFLASHを作成しているのですが、FLASHムービーの終了後にボタンを押すと他のページに飛ぶようにするために以下のようなスクリプトを書きました。 on(keyPress"<enter>"){ getURL("http://●●●●●●●●"); } ここまではよかったのですが、次にURLのあとにパラメーターを付け、そのパラメーターをランダムで表示させて飛ぶようにさせたいのです。以下のような感じです。 on(keyPress"<enter>"){ getURL("http://●●●●●●●●?rmd=○○○"); } ※ ○○○は3桁の数字がランダムで入ります。 この場合、どのようなスクリプトを書けばいいのでしょうか?いろいろなサイトで調べて試してみたのですがどうしてもうまくいきません。どうか教えてください。

    • ベストアンサー
    • Flash
  • randomで

    4桁の数字をランダムで出したいのですが、たまに2桁になったり3桁になったりします。どうしたらいいでしょうか・・。 class Number{ public static void main(String [] args){ double a; for(int i=1;i<=10;i++){ a = Math.random()*10000; System.out.print((int)a); } } }

    • ベストアンサー
    • Java
  • 数字5桁と10桁のパターンを作りたいのですが。。

    4月4日に数字4桁のパターンの作り方を質問し、 回答を頂き、4桁は解決しました。 (QNo.2893813 数字4ケタのパターンをつくりたいのですが・・ ) 今度は5桁と10桁のパターンを作りたいです。 (「乱数を作りたい」といった言い方が正しいのかもしれません) ■5桁の数:1~9までの数字の中から作る <例>14762、98426、39175、87214、、 ■10桁の数:1~10の数字から作る <例>1 3 4 8 9 2 5 7 6 10 どちらも、かぶらないように100~200パターンほど作りたいです。 エクセルの関数で出来る様ですが、エクセルはど素人なので、 前回の質問QNo.2893813 の回答no.5のようなプログラム自体をコピー&ペーストしてできるものが嬉しいです。 以下、前回頂いた回答の一部です ※回答いただいた方のお名前と、プログラムはここでは伏せます --------------------------------------------------------------- 作り方 Excelを起動→ツール→マクロ→visiual basic editor Visual Basic で 挿入→標準モジュール 出てきた画面に下のプログラムをコピー、ペースト 使い方 Excelでツール→マクロ→マクロ 『test』を選択して実行作り方 Excelを起動→ツール→マクロ→visiual basic editor Visual Basic で 挿入→標準モジュール 出てきた画面に下のプログラムをコピー、ペースト 質問が2回に分かれる形になってしまい、申し訳ありません。 知っている方いらっしゃいましたら、教えてください。

  • Flashで日毎に違う数字を外部テキストで表示

    初めて投稿させて頂きます。 FLASHで抽選くじのようなものを作ろうとしているのですが つまづいてしまいましたので、アドバイスを頂けたら幸いです。 内容は以下の通りです。 こちらの指定した電話番号の下4桁の数字で、当たりの出る抽選クジを作りたいと思っています。 『例)今日は、下4桁が1234の方に◯◯をプレゼント!』という感じです。 4桁の数字は日毎に変わるようにしたいです。(1、2週間分の数字をストックしておきたいです。) 更新しやすいように、4桁の数字は外部のテキストを読み込ませたいと思っております。 スタートボタンを押すと、パラパラと適当な乱数が表示された後にその日の4桁が表示される。といった方法にしたいと思っています。 説明が下手ですみません。 よろしくお願い致します。

  • エクセルで数字の置換をしたい

    エクセルで、ランダムに5桁の数字が並んでいる表を作っているのですが、その数字の4桁目、つまり千の位を一度に置換できるような操作はありますか? たとえば 20325 20652 24585 53257 ↓ 21325 21652 21585 51257 のような感じです

  • FC2ブログ。コメントした時、#から始まる8桁の数字について。

    FC2ブログで、他の人のブログに書き込みをすると、 年.月.日 (時間) 名前 URL #******** と、URLの前後どちらかに、#の後ろに8桁の数字が表示されます。 これはどこのブログに書き込んでも同じ数字が出るようなので、 自分のIDみたいなものだと思うのですが、この数字を表示しないようにするにはどうしたら良いのでしょうか。

  • 数字にまつわるジンクス

    タイトル通りなんですが、数字にまつわるジンクスや話を教えてください。自分が知っている限りでは666がオーメンの数?(意味は知らない)と13日の金曜日と777のラッキーセブンと二桁目が9のおいちょカブのカブくらいだと思います。漫画や小説で題材にされている数でもかまいません。何でもいいのでヨロシクお願いします。また皆さんのラッキーナンバーとその由来も教えていただければ幸いです。

  • 長い数字列のエンジェルナンバーについて

    よろしくお願いします。 例えば6桁のエンジェルナンバーなら、最初の3桁と後の3桁、もしくは2桁ごとに読み取っていくものだと思います。123456、なら、123、456。また12,34,56という感じだと思います。 そして質問なのですが、 1・11桁の場合は、3,3,3,2、という区切り方で見る形が正しいでしょうか? また、 2・その11桁の数字列の他、他の数字列でもそうですが、その列の中の、ある特定の数字がとても気になってしまった場合、その数字のみが自分にとってのエンジェルナンバーなのでしょうか? 例えば123456なら、何故か123だけが気になってしまった場合は、その123がエンジェルナンバーなのでしょうか?

  • arduinoでの7セグ4桁表示について

    http://garretlab.web.fc2.com/arduino/introduction/beginning_with_7segment_led/#turn_on_four_digits こちらのサイトを参考に7セグ4桁表示に挑戦しています。 // 1桁の数字(n)を表示する void display_number (int n) { for (int i = 0; i < number_of_anode_pins; i++) { digitalWrite(anode_pins[i], digits[n] & (1 << i) ? HIGH : LOW); } } この部分の digits[n] & (1 << i) ? HIGH : LOW の 「&」 「?」 「:」 の意味はどのようなものですか?

  • 【Flash】時間表示を2桁にしたい

    Flashでイベントまでのカウントタイムタイマー(?)を作成しています。 途中までは他の質問等を参考になんとかできたのですが、 最期に行き詰ってしまいました。 ダイナミックテキストでインスタンス名は 日数が「event_date」、 時間が「event_hour」、 分が「event_min」、 秒が「event_sec」となっています。 イベント開催日時を2008年4月1日午前10時とし、 1フレームに以下のスクリプトを記述しました。 // _root.createEmptyMovieClip("date_cnt", 0); date_cnt.onEnterFrame = function() { date_obj = new Date(); yy = date_obj.getFullYear(); mm = date_obj.getMonth(); dd = date_obj.getDate(); hour = date_obj.getHours(); min = date_obj.getMinutes(); ss = date_obj.getSeconds(); eventUTC = Date.UTC(2008, 4-1, 1, 10, 0, 0); todayUTC = Date.UTC(yy, mm, dd, hour, min, ss); remain = eventUTC-todayUTC; _root.event_date = Math.floor(remain/86400/1000); remain -= _root.event_date*86400*1000; _root.event_hour = Math.floor(remain/3600/1000); remain -= _root.event_hour*3600*1000; _root.event_min = Math.floor(remain/60/1000); _root.event_sec = Math.floor((remain-_root.event_min*60*1000)/100 // この状態ですと各項目が1桁になった場合に見栄えが悪いので 1桁になった場合には「09」「08」「07」・・・と2桁で表示したいと考えています。 どのようにすれば1桁の数字を"0"をつけた2桁で表示できるのでしょうか? 使用ソフトは『FlashMX』です。 最終的には携帯電話での使用を考えています。 似た質問を参考に1週間ほど試行錯誤してみましたが、解決できませんでした。 よろしくお願いいたします。

    • ベストアンサー
    • Flash

専門家に質問してみよう