• 締切済み

flashで作成した時計を、PHPで取得したサーバー時刻で動かしたい。

flashで作成した時計を、PHPで取得したサーバー時刻で動かしたい。 宜しくお願い致します。 現在、flashのサンプルページで拝借したアナログ時計を持っているのですが、 これを、PHPのサーバー時刻で動かす事が出来ませんでしょうか。 現在、針のムービーのActionScript(2.0)はこのようになっております。 nowDate = new Date(); hour = nowDate.getHours(); minute = nowDate.getMinutes(); second = nowDate.getSeconds(); for (mc in this) { this[mc].setNowTime(hour, minute, second); } ※2番目のモーションには「gotoAndPlay(1);」と入っています。 ActionScriptは全くの素人の為、宜しければ易しくご教授頂けると幸いです。 宜しくお願い致します。

  • Flash
  • 回答数1
  • ありがとう数3

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

this[mc].setNowTime(hour, minute, second); これの意味が何のことやら全くわかりませんので無視させていただきます。 PHP で 「1970年1月1日0時 からのミリ秒数」 を取得し PHPにアクセスした時にその数値を表示させることはできますでしょうか? たとえば「time.php」というアクセスで「1267054770906」のようなデータを表示させること。 それができれば Flash から その値をロードして使えば良いということになります。 ◎簡易例です テキストエディタで 1267054770906 とだけ書いたものを用意し, 任意のPCローカルフォルダに 「time.php」 というファイル名で保存します。 中身は単なるテキストですが拡張子は .php で良いです。 次に Flash を起動させて ActionScript 2.0 の新規ドキュメントを作成し 上の 「time.php」 と同じフォルダに任意の名前で保存します。 そのFlashドキュメントのフレームに次のように書きます。 ---------------------- //テキストフィールド「time_txt」を作成 this.createTextField("time_txt", 0, 20, 10, 0, 0); time_txt.autoSize = true; //このタイムラインの変数化 var me:MovieClip = this; //サーバ時刻の変数 server_time の宣言 var server_time:Number; // 開始時間の変数 start_time の宣言 var start_time:Number; // 時刻を求める関数 answerTime を定義 function answerTime() { //1970年1月1日からの経過時間を算出 var my_time:Number = server_time+(getTimer()-start_time); //その時間の時刻オブジェクトを作成 var nowDate:Date = new Date(my_time); var hour:Number = nowDate.getHours(); var minute:Number = nowDate.getMinutes(); var second:Number = nowDate.getSeconds(); //テキストフィールドに時刻を表示 time_txt.text = hour+"時"+minute+"分"+second+"秒"; } //LoadVarsクラスのインスタンスmyLV を作成 var myLV:LoadVars = new LoadVars(); //データロード完了時に実行 myLV.onData = function(my_data:String) { //変数 server_time にロードしたデータを数値にして代入 server_time = Number(my_data); //変数 start_time にロードした時点での時間を代入 start_time = getTimer(); //answerTime を毎フレーム実行 me.onEnterFrame = answerTime; }; //myLV に time.php をロード myLV.load("time.php"); ---------------------- 「制御」→「ムービープレビュー」で動作確認できると思います。 PHPに頻繁にアクセスするわけにはいかないので, 最初だけアクセスして時刻を貰い あとは Flash 内(クライアントサイド)で経過時間を加算していく方式です。 長時間アクセスしないとだんだん時刻が狂ってきます。 たまにはリロードするなどのことが必要です。  

関連するQ&A

  • PHPでPCのローカル時刻は取得出来ますでしょうか?

    PHPでPCのローカル時刻は取得出来ますでしょうか? 現在、javascriptで取得しているのですが、これを PHPの変数として取得出来ないか考えております。 javascriptでは下記のように取得して表示させています。 <script type="text/javascript"> var nowtime = new Date(); var hour = nowtime.getHours(); var minute = nowtime.getMinutes(); var second = nowtime.getSeconds(); if(hour < 10) { hour = "0" + hour; } if(minute < 10) { minute = "0" + minute; } if(second < 10) { second = "0" + second; } document.write(hour,minute,second); </script> 例えば現在が12時34分56秒だとしたら、javascriptで 「123456」という6ケタの数字を取得出来ます。 この「123456」を、PHPの変数として使いたいです。 ($jikoku = 123456) どなたかお知恵を拝借出来ませんでしょうか? 何卒宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 時計が表示できません

    ASP.NET C# でHTMLとJavascriotを使用しWeb画面を作成しているのですが、そこに表示するリアルタイムで動く時計が上手く表示できません。<head runat="server">~</head>にて以下のプログラムを埋め込むと動かす事はできます。 <SCRIPT type="text/javascript"> <!-- function Watch() { now = new Date(); year = now.getYear(); month = now.getMonth()+1; day = now.getDate(); hour = now.getHours(); minute = now.getMinutes(); second = now.getSeconds(); if (year < 1000) { year += 1900 } if (hour < 10) { hour = '0' + hour } if (minute < 10) { minute = '0' + minute } if (second < 10) { second = '0' + second } document.form.watch.value = year+'年' + month + '月' + day   + '日 '+ hour + ':' + minute + ':' + second; setTimeout("Watch()",1000); } document.write('<FORM name=form><name=form><INPUTname=watchsize=27></FORM>'); Watch(); //--> (注:上記プログラムはあるサイトのコピーとなります) ですが、<body>~</body>内の自分が表示させたい位置に埋め込むと、 表示できません。 大変申し訳ないのですが、 わかる方どなたか教えていただけないでしょうか?

  • flashで正確な時刻のアナログ時計を作りたいです。

    flashで正確な時刻のアナログ時計を作りたいです。 学校のPCにFlash 8 professionalが入っていたので、先日、Allaboutが掲載していた アナログ時計の作り方を使って、私も素人ながらflashの時計を作成致しました。 (参照URL:http://allabout.co.jp/gs/flash/closeup/CU20081010A/) しかし、この時計だと、自分のPCの時刻がずれると同じようにずれてしまう為、出来れば 日本標準時を用いた時計を作成してみたいのですが、上記URLに書かれたActionScriptを どのように工夫すれば解決しますでしょうか?一旦PHPやPerlを経由しなければ難しいでしょうか。 周囲でFlashに詳しい人がほとんどいない為こちらで質問させていただきました。 宜しくお願い致します。

  • <SCRIPT type="text/javascript">

    <SCRIPT type="text/javascript"> <!-- function Watch() { now = new Date(); year = now.getYear(); month = now.getMonth()+1; day = now.getDate(); hour = now.getHours(); minute = now.getMinutes(); second = now.getSeconds(); if (year < 1000) { year += 1900 } if (hour < 10) { hour = '0' + hour } if (minute < 10) { minute = '0' + minute } if (second < 10) { second = '0' + second } document.form.watch.value = year+'年' + month + '月' + day + '日 ' + hour + ':' + minute + ':' + second; setTimeout("Watch()",1000); } document.write('<FORM name=form><INPUT name=watch size=27></FORM>'); Watch(); //--> </SCRIPT> の意味を詳しく説明してください。 あと、scriptでカウントダウンの作りかたを教えてください。 ようするに、999から998、997えとカウントダウンするという意味です。 だれか教えてください。かなり詳しく小学生でもわかるように超めっちゃ詳しく教えてください。 お願いします。 ほんと詳しくお願いします。できるだけ早くお願いします。 このscriptの中身を詳しくお願いします。あと、 <script type="text/JavaScript">を小学生でもわかるほど詳しく書いてあるサイトがあれば教えて ください。 ※JavaScriptでランダムRPGゲームを作る は知っているのでもっと詳しく説明してあるサイトを教えてください。

  • デジタル時計の文字色を変えたい。。。

    デジタル時計の部分を 時計の絵にはめこんでいるのですが、 現在の文字色は赤です。 onClipEvent (load) { function TIME() { hour = nowtime(); } // End of the function function nowtime() { n_time = new Date(); hours = n_time.getHours(); minutes = n_time.getMinutes(); seconds = n_time.getSeconds(); if (seconds < 10) { seconds = "0" + n_time.getSeconds(); } // end if if (minutes < 10) { minutes = "0" + n_time.getMinutes(); } // end if if (hours < 10) { hours = "0" + n_time.getHours(); } // end if n_hour = hours + ":" + minutes + ":" + seconds; return (n_hour); } // End of the function } onClipEvent (enterFrame) { this.TIME(); } 上記のどこを変えるとデジタルの色を変えることができるのでしょう? 宜しくお願いいたします。

    • ベストアンサー
    • Flash
  • ActionScriptでアナログ時計

    ActionScriptでアナログ時計を作ったのですが、いまいちスクリプトの意味が分かりません。 _rootのタイムラインに長針・短針・秒針をまとめたムービークリップを配置し(Y軸に対して水平)、そのムービークリップの1フレーム目に以下のフレームアクションを記入しました。 now = new Date(); theHour = now.getHours(); theMin = now.getMinutes(); theSec = now.getSeconds(); ここまでは現在の時間を取得しているという事が分かりますが、問題は以下です。hour、min、secはそれぞれ短針、長針、秒針のMCの名前です。 hour._rotation = (theHour*30)+(theMin/2)-90; min._rotation = theMin*6-90; sec._rotation = theSec*6-90; この2,3行目については、「分・秒ともに60回で360°を一周するから、一度に6°ずつ動く。それに分または秒を掛けたものがそのMCの角度になる。Y軸に水平になっているから90を引くことで12時のところが起点になる」という理解でよろしいでしょうか。 問題は1行目です。theHourに30を掛けるのは12時間*30°で360°になるからで、その後が分かりません。

    • ベストアンサー
    • Flash
  • javascriptでの時刻表示カスタム

    ホームページを作れと言われた普通のOLです。 htmlとcssは少しだけ触れますが、javascriptは......(T_T) 知人や知り合いの社員共々聞きましたが全滅です..... 本題ですが、javascriptで現在時刻を取得し、それをそれぞれの要素へ反映させたいです。 例えば、 <div class="smample">??月??日??時??分</div>←現在の時刻-3分 <div class="smample">??月??日??時??分</div>←現在の時刻-4分 <div class="smample">??月??日??時??分</div>←現在の時刻 <div class="smample">??月??日??時??分</div>←現在の時刻-15分 <div class="smample">??月??日??時??分</div>←現在の時刻-4分 という具合に表示できれば最高です。 基本的な時刻表示(下記記載のスクリプト)で試行錯誤しましたが、 ??月??日??時5分の場合、-6分とすると「分」の所の表示が0-1となってしまいます。 更に、-4分/-5分といった複数指定もできません。 javascriptにお詳しい方、どうかご教授下さい。 正直凄く困ってます。。。。 <script type="text/javascript"> var get_current_timestamp = function() { var weeks = new Array('日', '月', '火', '水', '木', '金', '土'); var d = new Date(); // 年月日・曜日・時分秒の取得 var month = d.getMonth() + 1; var day = d.getDate(); var week = weeks[ d.getDay() ]; var hour = d.getHours(); var minute = d.getMinutes() - 6; var second = d.getSeconds() + 10; // 1桁を2桁に変換する if (month < 10) {month = "0" + month;} if (day < 10) {day = "0" + day;} if (hour < 10) {hour = "0" + hour;} if (minute < 10) {minute = "0" + minute;} if (second < 10) {second = "0" + second;} // 整形して返却 return d.getFullYear() + "/" + month + "/" + day + "(" + week + ") " + hour + ":" + minute + ":" + second; } // 現在の日付・時刻を表示する document.write(get_current_timestamp()); </script>

  • setTimeout()が使えない

    今、JavaScriptでリアルタイムで動く時計を作ってるのですが、setTimeoutが動かないため使えません。 時刻は表示するのですが、自動更新してくれません。 JavaScriptのサイトの時計は動いているんですけど、自分の作ったのだと動いてくれません。 ---- function Clock() { dd = new Date(); Year = dd.getFullYear(); Mon = dd.getMonth()+1; Date = dd.getDate(); Days = new Array("日","月","火","水","木","金","土"); Day = Days[dd.getDay()]; AMPM = ""; Hour = dd.getHours(); Min = dd.getMinutes(); Sec = dd.getSeconds(); if (Hour > 12) { Hour = dd.getHours()-12; AMPM = "午後"; } else { AMPM = "午前"; } if (Hour < 10) Hour = "0"+Hour; if (Min < 10) Min = "0"+Min; if (Sec < 10) Sec = "0"+Sec; document.myForm.Time.value = Year+"年"+Mon+"月"+Date+"日("+Day+") "+AP+Hour+"時"+Min+"分"+Sec+"秒"; setTimeout("Clock()", 1000); } ---- 「<body onLoad="Clock()">」はしています。

  • flashで週ごとに変わる当番表を作りたいのですが…

    flashで週ごとに変わる当番表を作りたいのですが… 初めて質問させて頂きます。 flashに関しては独学で少しかじった事のある程度であまり詳しくはありません。 現在、flashで週ごとに変わる当番表のようなものを作ろうとしています。 ActionScript2.0で作成しています。 簡単に説明しますと、(起動して)最初の週はラベル"01"が表示され、 次の週はラベル"02"が、更に次の週は"03"が、と進んでいき、 ラベル"04"まで進むと、次の週からはまた"01"に戻るといった仕様です。 以下のような命令文で動かそうと考えています。 1: 変数"hi"に0を代入する。 2: 変数"ji"、"fun"、"byou"に、それぞれ現在時刻の時、分、秒を代入する。 3: 日付が3つ全て0の時、変数"hi"に+1させる。 4: 変数"hi"=6(一週間分)になった時、ラベル"○"に飛ぶ。 これが張り付けられているMCを、各ラベルごとに置く… といった感じです。 ------------------------------------------------------------ onClipEvent (enterFrame){ this.hi= 0; objDate =new Date(); this.ji = objDate.getHours(); this.fun = objDate.getMinutes(); this.byou = objDate.getSeconds(); if(ji==0 && fun==0 && byou==0){ this.hi= hi+1; if(hi==6){ this.gotoAndPlay("03"); } } } ------------------------------------------------------------ ひとまず、ここまで組んで、 『3: 日付が3つ全て0の時、変数"hi"に+1させる。』 までは出来たのですが、その後の指定したラベルに飛ぶという動きが出来ません。 そのまま最初に戻ってしまいます。 各ラベルの最後には、タイムライン上にstop();を書いて静止させています。 おそらくこれも原因の一つなのでしょうが、どうすればいいのか分かりません。 宜しくお願い致します。

    • ベストアンサー
    • Flash
  • デジタル時計のプログラムについて

    はじめまして。 FLASH初心者で、参考書片手に勉強しております。 デジタル時計をホームページに載せたいと思いまして、作ってみたのですが、プレビューで確認しても実際サーバーにアップロードしてみても文字が表示されなく困っております。 dispTimeというダイナミックテキストに時刻を表示させたく、アクションのレイヤーに以下を記述してみました。 _root.dispTime.onEnterFrame = function(){ now_date = new Date(); h = now_date.getHours(); m = now_date.getMinutes(); s = now_date.getSeconds(); _root.dispTime = h + ":" + m+ ":" +s; }; 環境は、WinXP home SP2、FLASH8です。間違っていそうな箇所がありましたら、ご教授宜しく御願い致します。

    • ベストアンサー
    • Flash

専門家に質問してみよう