一日毎にランダム切り替わる4桁の数字をフラッシュで作成したい
と思っています。
http://010101.blog25.fc2.com/?style3=10639&index
上記アドレスのサイトのような雰囲気ですが、リロードで数字が変わらないようにしたいと思っています。(左上部分)
一日毎のHP訪問者のラッキーナンバーみたいな感じです。
そのラッキーナンバーをお店にて言って頂くと割引を提供する
ようにしたいと思っています。
(例)
2月28日 1245(固定)
3月1日 4567(固定)
・・・・
といった感じです。
当方のフラッシュはマイクロメディアflashpro 8です。
A 回答 (2件)
- 最新から表示
- 回答順に表示
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/FN030 …
また,
ダイナミックテキストに数字を表示させるのではなく,
画像で表示したい場合は次のURLが参考になるかもしれません。
質問:【カウンタ画像表示】split?
http://oshiete1.goo.ne.jp/qa2754295.html
↑教えて!goo ↓OKWave (同じです)
http://okwave.jp/qa2754295.html
貴重なお時間を割いて頂き本当にありがとうございます。
上記方法にて、PHPではありませんが
うまくいきました。
さらに上を目指し、効率化のためにもPHPを勉強してみます。
m(__)m
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があれば確認できますね。)
なんか素人な考え方ですが参考までに。
貴重なご意見ありがとうございます。
ちゃんとしたものを作ろうと思うと
PHPの知識が必要になるわけですね・・・。
色々また調べてみます。
m(__)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
flash (.swf) を編集したい
-
potplayerについて質問です
-
uwscでExcelに自動記入
-
自分でチラシを作りたいです!...
-
アメブロで音声ファイルを貼る方法
-
AS3 MC内ボタンクリックでシー...
-
FLASHでゲームを作っていた人は...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
XMLの&が&に変換されない
-
スクロールバーの自作の仕方
-
flashのおみくじのような(4桁...
-
UIScrollBarを利用したスクロー...
-
AS3 時計のコロンの点滅を0.5s...
-
FlashとJSPの連携
-
今日の残り時間を表示する時計...
-
文字を一文字づつ表示し、スク...
-
ランダムに4桁の数字を表示する...
-
【ActionScript】onLoad後の「t...
-
ダイナミックテキストの表示値...
-
flashで1秒間に任意の数字を加...
-
ムービー上で入力した値の送信...
-
外部テキストの文字化けが直ら...
-
LoadVars
-
ActionScriptをつかってテキス...
-
HTMLレンダリングについて
-
txtをloadしているswfをloadMovie
-
複数の入力テキストに同じ入力...
-
Googleの検索窓をFlashオブジェ...
おすすめ情報