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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     指定日時のカウントについて
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
Åê¹ÆNo.42546
投稿日時: 2009-6-12 1:49
指定日時のカウントについて
指定日時までカウントするスクリプトを以下のように書きました。

onClipEvent (load) {
toDate = new Date();
toDate.setFullYear(2009,10-1,1);
toDate.setHours(0,0,0);
}
onClipEvent (enterFrame) {
theDate = new Date();
ss = Math.ceil((toDate.getTime() - theDate.getTime())/1000);
dd = Math.floor(ss/(60*60*24));
ss = ss-dd*60*60*24;
hh = Math.floor(ss/(60*60));
ss = ss-hh*60*60;
mt = Math.floor(ss/60);
ss = ss%60;
}

カウントはするのですが、以下の機能をつけたいときに
どうしていいかわかりません。

1.残り日数、時間、分、秒が10を切ったときに09,08などと
左に0がつくようにしたい。(現状では10を切ると9,8,7...と
一桁表示になってしまうためデザイン上0を残したい。)

2指定日時に達したときに指定フラグまで飛ばしたい。

以上です。

よろしくお願いします。



野中文雄
Åê¹ÆNo.42547
投稿日時: 2009-6-12 3:58
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 指定日時のカウントについて
_droptargetとswapDepths (was: dragtargetとswapDepths)」をご参照ください。
引用:
hermanoさんは書きました:
1.残り日数、時間、分、秒が10を切ったときに09,08などと
左に0がつくようにしたい。(現状では10を切ると9,8,7...と
一桁表示になってしまうためデザイン上0を残したい。)

「フラグ」というのは、フレームラベルのことですか?ifステートメントを使います。
引用:
2指定日時に達したときに指定フラグまで飛ばしたい。


----------------
 

961832p
Åê¹ÆNo.42550
投稿日時: 2009-6-12 15:03
常連
居住地: Akiruno-shi
投稿: 155
使用環境:
 
:AS3:
- Adobe Flex SDK, Eclipse, AIR GEAR
- LB.Log AS3, Alcon2

:AS2:
- AMES(ASDT, MTASC, Eclipse, swfmill)
- Natural Entry Point Method
- LB.Log, Zeroi

Pro, Firefox, Chromium(Iron), IE

----------------
Pro,
Re: 指定日時のカウントについて
 
桁を揃える方法は、考え方が色々あって面白いですよね。自分もその中から一つを試してみました。
 ・ActionScript 数 桁 揃え - Google 検索

[AS3]数値を2桁(ゼロ埋め)で揃えた文字にする例

var hour:Number;
var hour_str:String;

//数値が1桁だった場合
hour = 6;
hour_str = "0" + hour.toString(); // toStringは呼ばなくてもいい
hour_str = hour_str.substring(hour_str.length - 2);
Log.trace("d " + hour_str); // 06

//数値が2桁だった場合
hour = 11;
hour_str = "0" + hour;
hour_str = hour_str.substring(hour_str.length - 2);
Log.trace("d " + hour_str); // 11

また、他の言語では有名な sprintf関数 と同じ事ができるライブラリもあるもようです。
 ・AS3 sprintf - Google 検索


----------------
:961832p:
- だんだんAS3に慣れてきた“なんちゃって”AMES使いの日曜プログラマー

ゲスト
Åê¹ÆNo.42561
投稿日時: 2009-6-13 14:40
Re: 指定日時のカウントについて
野中様ありがとうございます。

>hermanoさんは書きました:
1.残り日数、時間、分、秒が10を切ったときに09,08などと
左に0がつくようにしたい。(現状では10を切ると9,8,7...と
一桁表示になってしまうためデザイン上0を残したい。)

に関しては以下のようなスクリプトで無事に表示することが
できました。

onClipEvent (load) {
toDate = new Date();
toDate.setFullYear(2009,10-1,1);
toDate.setHours(0,0,0);
}

onClipEvent (enterFrame) {
theDate = new Date();
ss = Math.ceil((toDate.getTime() - theDate.getTime())/1000);
dd = Math.floor(ss/(60*60*24));
ss = ss-dd*60*60*24;
hh = Math.floor(ss/(60*60));
ss = ss-hh*60*60;
mt = Math.floor(ss/60);
ss = ss%60;
//10以下になったら0を表示する。
if (ss < 10) {
ss = "0"+ ss
}
if (dd < 10) {
dd = "0"+ dd
}
if (hh < 10) {
hh = "0"+ hh
}
if (mt < 10) {
mt = "0"+ mt
}
}

>2指定日時に達したときに指定フラグまで飛ばしたい。
に関しては指定時刻だとうまく飛ぶかすぐに確認できないので
秒が0になったら指定フラグまで飛ばすことにしましたが、以下のようにしたところうまくいきません。
onClipEvent (load) {
toDate = new Date();
toDate.setFullYear(2009,10-1,1);
toDate.setHours(0,0,0);
}

onClipEvent (enterFrame) {
theDate = new Date();
ss = Math.ceil((toDate.getTime() - theDate.getTime())/1000);
dd = Math.floor(ss/(60*60*24));
ss = ss-dd*60*60*24;
hh = Math.floor(ss/(60*60));
ss = ss-hh*60*60;
mt = Math.floor(ss/60);
ss = ss%60;
if (ss < 10) {
ss = "0"+ ss
}
if (dd < 10) {
dd = "0"+ dd
}
if (hh < 10) {
hh = "0"+ hh
}
if (mt < 10) {
mt = "0"+ mt
}
//秒が0になったらtestフラグまで移動する。
  if (ss == 0) {
gotoAndStop("test");
}
}

それと実際に10月1日がきたら指定フラグまで飛ばすには
if (mt == 0) {
gotoAndStop("test");
}

という設定でよろしいでしょうか。

よろしくお願いします。
ゲスト
Åê¹ÆNo.42562
投稿日時: 2009-6-13 14:43
Re: 指定日時のカウントについて
961832p様ありがとうございます。

AS3にはまだ手をつけていないので今後の参考にさせていただきますね。

ありがとうございます。
野中文雄
Åê¹ÆNo.42564
投稿日時: 2009-6-13 18:09
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 指定日時のカウントについて
その「フラグ」を入力するボックスにマウスポインタを近づけると、「フレームラベル」と表示されませんか?初心者であれば用語がわからないのは仕方ありません。けれど、指摘されたらスルーせずに、確かめる努力くらいはしましょう。
引用:
Fumioは書きました:
「フラグ」というのは、フレームラベルのことですか?ifステートメントを使います。

ターゲットパスは、合っていますか?いずれにしても、問題を絞込むべきです。

引用:
hermanoさんは書きました:
>2指定日時に達したときに指定フラグまで飛ばしたい。
に関しては指定時刻だとうまく飛ぶかすぐに確認できないので
秒が0になったら指定フラグまで飛ばすことにしましたが、以下のようにしたところうまくいきません。
onClipEvent (load) {
	/*
	この間コメントアウト
	*/
	// if (ss == 0) {
		gotoAndStop("test");
	// }
}


----------------
 

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

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