メイン コーダーズルーム【スクリプト系】 Monthを取得して、月ごとに異なるフレームへ飛ばすには | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
watase_ | Åê¹ÆNo.11984 投稿日時: 2004-11-4 16:28 |
新米 居住地: 投稿: 9
使用環境:
WinXP,Flash MX |
Monthを取得して、月ごとに異なるフレームへ飛ばすには 初めまして。新米です。どこが違って動かないのかどうしてもわかりません。
宜しくお願いします。 WinXPで flash MXを使用しています。 いわゆるカレンダーを設置したく、月ごとに異なる図をフレームごとに振り分けて設置しました。 1フレーム目でMonthを取得して、現在の月に応じたフレームへ飛ばしたいのですが、 なぜか真っ白のまま何も表示されません。 1フレーム目 下記のスプリクトを記述 2?3フレーム目 真っ白(何も配置していない) 4フレーム目 4月のカレンダー 5フレーム目 5月のカレンダー ・・・ ・・ ・ 記述したスプリクトは以下の通りです。 // Dateオブジェクトによる月の取得 now = new Date(); nowMo=now.getMonth(); // 取得月によって開始フレームを指定 if (nowMo==4) { this.gotoAndStop(4); } else if (nowMo==5) { this.gotoAndStop(5); } else if (nowMo==6) { this.gotoAndStop(6); } else if (nowMo==7) { this.gotoAndStop(7); } else if (nowMo==8) { this.gotoAndStop(8); } else if (nowMo==9) { this.gotoAndStop(9); } else if (nowMo==10) { this.gotoAndStop(10); } else if (nowMo==11) { this.gotoAndStop(11); } else if (nowMo==12) { this.gotoAndStop(12); } else if (nowMo==1) { this.gotoAndStop(13); } else if (nowMo==2) { this.gotoAndStop(14); } else { this.gotoAndStop(15); } 以上です。thisはむしろいらないかとも思いましたが、念のため。 あと、if文の作り方ももっと効率の良いものができそうな気もするのですが、スプリクトに強くないのでこんな状態です。 なにかよい方法があればそれも教えていただけたらと思います。 |
ひろゆき | Åê¹ÆNo.11986 投稿日時: 2004-11-4 16:38 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: Monthを取得して、月ごとに異なるフレームへ飛ばすには 1フレーム目をキーフレームにして、
|
野中文雄 | Åê¹ÆNo.11987 投稿日時: 2004-11-4 16:53 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: Monthを取得して、月ごとに異なるフレームへ飛ばすには 確認は、ブラウザでされているのでしょうか?
メインのタイムライン第1フレームのスクリプトは、第1フレームの描画が行われるよりも前に処理されます。つまり、フレームに配置されるほとんどのエレメントがロードされる前です。 第1フレームアクションが処理されたとき、指定フレームのエレメントはロードが間に合わず、開店前の「準備中」かもしれません。ActionScriptは移動先フレームが「準備中」であれば、エラーも出さずに無視します。つまり、フレーム移動自体行われません。 引用: watase_さんは書きました: |
ひろゆき | Åê¹ÆNo.11988 投稿日時: 2004-11-4 17:12 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: Monthを取得して、月ごとに異なるフレームへ飛ばすには SA Flash Player で確認すると、表示されませんね。
ブラウザでは表示されました。 1フレーム目ではなくて、2フレーム目のキーフレームに、 スクリプトを記述すると、SA Flash Player でも表示されました。 ご参考まで。 |
watase_ | Åê¹ÆNo.12015 投稿日時: 2004-11-5 9:52 |
新米 居住地: 投稿: 9
使用環境:
WinXP,Flash MX |
ありがとうございました、解決です! ありがとうございました。正しく動かすことができました。
原因は、どうやらスプリクトを1フレーム目に記述していたためのようで、2フレーム目に記述すると動きました。 ついでに、Monthに+1を記述していないことも、正しい表示をさせるために必要なことがわかりました。 ひろゆき 様。 スプリクトを、提案いただいた短いものに書き直してみましたが、まずは改善のないまま失敗に終わりました。 しかし、新たなメッセージを見てスプリクトを2フレーム目に移してみたところ、すんなりうごきました ありがとうございます。 野中文雄 様。 ありがとうございました。 スプリクトの「月を取得する」という部分を抜いて記述すると、正しく動作することは確認していました。 ブラウザでも確認済みでした。(その旨、記述すべきでしたすみません) でも、ジャンプした先のフレームロードが間に合わないとき無視してしまう要素があるとは知りませんでした。今後の参考にさせていただきます。 --------------------------- ところで、これまで now = new Date(); nowMo = now.getMonth(); だった記述のMonth()の部分に+1を加えてはじめて、正しい月が表示されることを知りました。そうでなければスプリクトは11月なのに10月を返してしまうようです。 なぜでしょう?getMonth()だけでは正しく取得できない(月がひとつ若い)のはあたりまえのことでしょうか? |
kisii | Åê¹ÆNo.12016 投稿日時: 2004-11-5 10:03 |
常連 居住地: 投稿: 122
使用環境:
WinXP FlashMX2004Pro |
Re: 私も常々疑問でした 私もgetMonth()で月から1引いた値が出てくるのは疑問でしたが、ActionScriptのヘルプをみると、
引用: 指定された Date オブジェクトの月 (1 月は 0、2 月は 1 など) をローカル時間で返します。ローカル時間は、Flash Player を実行しているオペレーティングシステムによって決まります。 とあるので、仕様だと思います。 JavaScripでも同様の動作を示しますので、実はScript関係では当然のことなのかもしれません |
cheer | Åê¹ÆNo.12045 投稿日時: 2004-11-5 20:08 |
新米 居住地: 投稿: 3
使用環境:
WinXP MX2004 Pro |
Re: 私も昔疑問でした +1しないと正しい月にならないというのは、ちょっとちがいます。
日本だと1月・2月というように1から数えますが、海外(少なくとも英語圏)だと0から数字を数えます。 February、Januaryと月の呼び方に数字が入らないですし。 なので、0番目の月・1番目の月・・・と0から数えた月数が返ってきます。 スクリプトやプログラムは、だいたいそうなっています。 私も昔、最初から+1した数返してくれよー!いちいち足すの面倒だよーと思ってました。 |
kisii | Åê¹ÆNo.12052 投稿日時: 2004-11-6 9:23 |
常連 居住地: 投稿: 122
使用環境:
WinXP FlashMX2004Pro |
Re: 疑問氷解です なるほど、ColdFusionなら1月は1で返ってくるのに、Flashはプラス1しないといけないのは、いつもごっちゃになって面倒だとおもっていたのですが、
これで疑問解決です。 cheerさん、教えてくださってありがとうございました! |
future | Åê¹ÆNo.12053 投稿日時: 2004-11-6 11:29 |
新米 居住地: 冥王星 投稿: 18
使用環境:
|
Re: 私も昔疑問でした いや、海外でも普通に1から数えると思いますよ。
引用: 日本だと1月・2月というように1から数えますが、海外(少なくとも英語圏)だと0から数字を数えます。 |
ひろゆき | Åê¹ÆNo.12153 投稿日時: 2004-11-9 11:13 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: 私も昔疑問でした getMonth() と同様に、getDay() でも、0 からですよね?
配列から文字列を引き出すのには、その方が便利ではないですか? |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |