トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   どこでもFlash【携帯向けFlash関連】
     12時間表記
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
tibitarou
Åê¹ÆNo.43107
投稿日時: 2009-8-9 14:02
新米
居住地:
投稿: 10
使用環境:
12時間表記
FlashLite1.1でデジタル時計を作成してます。
GetTimeHoursで時間を取得し、そこから?12をして12時間表記にするようにしましたがうまくいきません。
actionは以下のとおりです。
どこが悪いかわかる方回答をお願いできませんでしょうか。
よろしくお願いします。
(使用ソフトはFlash CS4です。)

/* ----時間 12時間表示---- */
hours = fscommand2("GetTimeHours");
if (13<=hours and hours<=23) {
h = ("hours" add -12);
}
if (length(hours)==1){
hours='0' add substring(hours,0,1);
} else {
h = hours;
break;
}
hour1.num = substring(hours, 2, 1);
hour2.num = substring(hours, 1, 1);
森 巧尚
Åê¹ÆNo.43108
投稿日時: 2009-8-9 16:07
モデレータ
居住地: 宝塚
投稿: 650
使用環境:
.5/CS4/Safari3
XP+2000//IE6
Re: 12時間表記
引用:
tibitarouさんは書きました:
どこが悪いかわかる方回答をお願いできませんでしょうか。


引用:
h = ("hours" add -12);

これは、引き算ではなく、文字列の足し算をしています。
だからhの値は、12を引いた値ではなく、"hours-12"という文字列になります。


----------------
森 巧尚
http://www.ymori.com

tibitarou
Åê¹ÆNo.43110
投稿日時: 2009-8-9 20:33
新米
居住地:
投稿: 10
使用環境:
Re: 12時間表記
森 巧尚さん ありがとうございます。

h = ("hours" add -12);のところをh = "hours-12";と書けば良いのでしょうか?
森 巧尚
Åê¹ÆNo.43111
投稿日時: 2009-8-9 20:41
モデレータ
居住地: 宝塚
投稿: 650
使用環境:
.5/CS4/Safari3
XP+2000//IE6
Re: 12時間表記
h = "hours-12";
と書けば、hには、"hours-12"という文字列が入ります。

ダブルクォーテーションではさんで書くと文字列になることはご存じですか?

hから12を引きたいのですから、普通に算数で12の引き算をすればいいのです。


----------------
森 巧尚
http://www.ymori.com

tibitarou
Åê¹ÆNo.43112
投稿日時: 2009-8-9 21:06
新米
居住地:
投稿: 10
使用環境:
Re: 12時間表記
森 巧尚さん ありがとうございます。
下記のように(h = hours-12;)書き直したのですが出来ませんでした。
どこが悪いのか教えていただけると嬉しいのですが。

/* ----時間 12時間表示---- */
hours = fscommand2("GetTimeHours");
if (13<=hours and hours<=23) {
h = hours-12;
}
if (length(hours)==1){
hours='0' add substring(hours,0,1);
} else {
h = hours;
break;
}
hour1.num = substring(hours, 2, 1);
hour2.num = substring(hours, 1, 1);
森 巧尚
Åê¹ÆNo.43113
投稿日時: 2009-8-9 21:43
モデレータ
居住地: 宝塚
投稿: 650
使用環境:
.5/CS4/Safari3
XP+2000//IE6
Re: 12時間表記
もう一度、スクリプト全体をよく見直してみてください。

先ほどの質問で、
hoursが13以上23以下のとき、hにhoursから12を引いた値を入れました。

その後わざわざ計算して求めたhは、何かに使っていますか?

何故、何のために、12を引くのかを考えてみてください。


----------------
森 巧尚
http://www.ymori.com

tibitarou
Åê¹ÆNo.43114
投稿日時: 2009-8-9 22:45
新米
居住地:
投稿: 10
使用環境:
Re: 12時間表記
もう少しわかりやすく教えて欲しかったのですが無理なようなので
ありがとうございました
森 巧尚
Åê¹ÆNo.43115
投稿日時: 2009-8-9 23:37
モデレータ
居住地: 宝塚
投稿: 650
使用環境:
.5/CS4/Safari3
XP+2000//IE6
Re: 12時間表記
引用:

tibitarouさんは書きました:
もう少しわかりやすく教えて欲しかったのですが無理なようなので


いやいや、無理というほど難しいことじゃないですよ。

これはtibitarouさんが考えて作られたプログラムでしょう?

tibitarouさんは、
「GetTimeHoursで時間を取得し、そこから?12をして12時間表記に」
したいわけですよね。

それで
if (13<=hours and hours<=23) {
h = hours-12;
}
と、「hoursが13以上23以下のとき、hにhoursから12を引いた値を入れ」たわけですよね?

ところが、せっかく12を引く計算をした値を「h」に入れて求めたにも関わらず、その後「h」の値を何も使っていないから「うまくいかない」わけです。

その後の処理ではhを使う必要があるとは思いませんか?
もしくは、hとhoursの2つの変数を使うのが難しいのであれば、hを使わず、計算自体をhoursに行うようにまとめる必要があるとは思いませんか?

これは基本的な考え方の問題ですよ。

「どこが悪いか」という質問に対しての答えとしては、

1)hoursから12を引く計算が文字列の足し算になっている。
2)その計算で求めた結果を使わずに表示している。

の2点が悪いということです。


----------------
森 巧尚
http://www.ymori.com

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops