A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
20分のカウントダウン自体は,目標の時間から,経過時間を引けば良いだけですから,
経過時間の算出さえできれば簡単だとは思います。
目標時間が 10秒だとすると,
表示時間 = 目標時間-経過時間
表示時間 = 10-1 (= 9)
表示時間 = 10-2 (= 8)
表示時間 = 10-3 (= 7)
表示時間 = 10-4 (= 6)
表示時間 = 10-5 (= 5)
表示時間 = 10-6 (= 4)
表示時間 = 10-7 (= 3)
表示時間 = 10-8 (= 2)
表示時間 = 10-9 (= 1)
表示時間 = 10-10 (= "TIMEOVER!")
ということです。
でもしかし,問題なのは 「カウントダウン自体」 ではなく 「その表示のさせ方」 だと思います。
どのような感じで表示させようと考えていらっしゃるのでしょうか?
例えば
「カウントダウン数をミリ秒単位に表示させる。」
「カウントダウン数を単位に表示させる。」
「カウントダウン数を分+秒単位に表示させる。」
… など … など …
また表示させるルールも問題です。
「Flash が表示されてからのカウントダウン」
「ボタンがクリックされてからのカウントダウン」
「カウントダウンする秒数は閲覧者が決める」
「カウントダウンする秒数は作成者が決める」
… など … など …
最初に書きました通り,カウントダウン数は単純に「目標時間-経過時間」で引き算してください。
それ以外の部分によってそれ以外の答えは変わりますし,
考えるポイント,つまり難しい点も,それ以外の部分が大半になるはずです。
~~~ ~~~ ~~~ ~~~ ~~~ ~~~
というわけでたくさんのものを回答できませんので,一例のみを回答いたします。
まず,ステージ上に,ボーダー(周囲の枠線)付きの横長めのダイナミックテキストを作成します。
また,ダイナミックテキストのインスタンス名を 「TM」 としたことにしておきます。
そのインスタンス名 「TM」 のダイナミックテキストをムービークリップに変換します。
そのムービークリップ自体に次のように書きます。
// このムービークリップが表示されたとき
onClipEvent (load) {
// カウントダウン数の設定 (※1)
//( 20分(20×60×1000ミリ秒) )
cnt = 20*60*1000;
// _root のフラグ用変数 cnt_flg を false にしておく
_root.cnt_flg = false;
}
// 毎フレーム時間で随時実行
onClipEvent (enterFrame) {
// _root の変数 cnt_flg が true であれば
if (_root.cnt_flg) {
// カウントダウン数を変数 ms に代入(ミリ秒) (※2)
ms = cnt-(getTimer()-_root.my_time);
// 分の算出
m = Math.floor(ms/60/1000);
// 秒の算出
s = Math.floor(ms/1000)-m*60;
// カウントダウン数を TM に表示
if (ms>=0) {
this.TM.text = "あと "+m+"分 "+s+"秒";
} else {
this.TM.text = "TIMEOVER!";
}
}
}
// このムービークリップをクリックしたとき (※3)
on (release) {
// _root の変数 flg が false であれば
if (!_root.cnt_flg) {
_root.cnt_flg = true;
// _root の変数 my_time に時間を代入
_root.my_time = getTimer();
}
}
これで,「テキストフィールド入りムービークリップをクリックしたとき」,
カウントダウン表示が始まるものができます。
※1 の部分について
一応20分にしています。
20分は 20×60=1200秒
1200秒は 1200×1000=1200000ミリ秒です。
その計算自体が面倒なので,
20*60*1000 と記入しています。
動作検証に 20分 もかけるのはいやだと思いますから,
cnt = 1*60*1000; //←1分
とか
cnt = 30*1000; //←30秒
くらいで実験すると良いと思います。
※2 の部分について
本題はこの ※2 の行
ms = cnt-(getTimer()-_root.my_time);
これだけです。
それ以外の大半の部分は,
「テキストフィールドをクリックした時にカウントダウン開始,
『あと ○分 ○秒』 という形のものを表示させる。」
というしくみを作成しているだけで,
カウントダウン自体 とは関係がありません。
※3 の部分について
on (release) { } はムービークリップに書いています。
他のボタンをクリックしたときにカウントダウンを開始させる場合,
この on (release) { } 文全てをそのボタンに移動させてください。
わざと _root の変数によって動作するしくみにしてありますから,
どこに(どの階層に)ボタンやカウントダウンムービークリップを
持って行っても,おそらくそのまま使用できると思います。
また,
お持ちのFlashのバージョンを書かれていませんので説明のしかたも良くわかりません。
バージョンがわからないので本当は Flash 5 でも作成可能なスクリプトやしくみを書きたかったのですが,
Flash 5 では作成するものの構造説明がさらにややこしくなるため Flash MX 以上で作成可能なものにさせていただきました。
当たり前のことなのですが,
使用するバージョンが古いほど不可能なことが多くなるので,
同じものを作るにしても作成するスクリプトや構造が難しくなりますし,いくら努力しても不可能なことも出てきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
else if文の順序を変えることに...
-
photoshopで書いた四角の枠の中...
-
CreateDialogについて
-
テキストエリア内の文字列にリ...
-
XMLの読み込み
-
VB6.0で、フォームから、別のフ...
-
クラスのプロパティ一覧を列挙...
-
テキストボックスの中身をリセ...
-
C# chart controlの透過について
-
ActionScript - 複数の空ムービ...
-
ボタンをクリックして画面遷移...
-
【VB.NET】別Formのボタンが押...
-
'2465'指定した式で参照してい...
-
VBScriptでMsgBoxのYesNoボック...
-
getURL 外部ファイル呼び出し...
-
ステージの大きさをフィットさ...
-
チェックボックスのテキストを...
-
内容
-
DataTableの件数を取得したい
-
マウス自体の移動量の取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Pythonを使ってせん断応力図、...
-
python ボタンを押すと複数の関...
-
else if文の順序を変えることに...
-
SNMPの標準MIBについて
-
四乗根を英語で言うと・・・
-
ADに参加していないPCからADサ...
-
PythonでSetWindowPosを使うに...
-
pythonのグローバル変数
-
ゲージと連動したムービークリ...
-
レーダーチャートの描画
-
SharedObjectの動作がうまくい...
-
リンゲージの設定
-
loadMovie()を組み込んだswfフ...
-
100点でクリアする簡単なモグラ...
-
flashでURLからのデータ取得
-
StandardMLの二分木に関する問...
-
経過時間を計るには
-
グローバル変数の呼び出し
-
ムービークリップの拡大縮小
-
Excel VBAで読み込んだテキスト...
おすすめ情報