• 締切済み

日数、時間指定で、変化させるスクリプト

flashの時間指定についての質問です。 指定した時間(例:○○月○○日の○○時)に、roadMovieをさせたり, gotoAndPlay(フレームへ飛ばす) をさせたりする事は可能なんでしょうか? 今まで調べて見たところ、 http://okwave.jp/qa1901367.html (時刻によって読み込まれるファイルを変更)や、 http://oshiete1.goo.ne.jp/qa2098739.html(曜日指定でボタン表示) で、似たようなものを発見しましたが、 ”○○月○○日○○時に動きを指定” というスクリプトを見つける事は出来ませんでした。 月指定、分数指定まではこの際なくても良いと思っているのですが、 もし可能であれば、 1:○○日後の○○時に動作(roadMovie または gotoAndPlay) 2:○○時間後に動作  のどちらかのスクリプトを教えて頂けると幸いです。 時間取得方法は以下のスクリプトを使っています。 (...と思います。以下はサンプルからそのまま持って来たものです。申し訳ないのですが私はスクリプト初心者ですので、サンプルのコードはいじる事が出来ませんでした。) この時間取得方法を基準に上記の時間指定をしようと考えています。 var load_lv = new LoadVars(); load_lv.onLoad = function() { var array2 = this.date2.split("/"); var event2_date = new Date(parseInt(array2[0], 10), parseInt(array2[1], 10)-1, parseInt(array2[2], 10)); onEnterFrame = function () flashのバージョンは8です。

  • t0ty
  • お礼率0% (0/2)
  • Flash
  • 回答数2
  • ありがとう数1

みんなの回答

  • perse
  • ベストアンサー率74% (113/152)
回答No.2

4フレーム目に書いたスクリプトを _root.stop(); _root.onEnterFrame = function() { if (getTimer()>start+timer) { } else { _root.t1 = Math.ceil((start+timer-getTimer())/1000); } }; とすればカウントダウンしてくれると思います。 カウントするためにはフレーム毎にどれだけ時間が経過したかを知る必要があるので _root.onEnterFrame = function() {} 内に記述しなければなりません。 日数、時間、分、秒のカウントの方法は 時計のカウントダウンする方法 http://oshiete1.goo.ne.jp/qa1736108.html が参考になります。

  • perse
  • ベストアンサー率74% (113/152)
回答No.1

以下のActionScriptをフレームに記述してください。 //基準となる時間 //例:2007年6月1日 1時5分 BaseYear = 2007; BaseMonth = 6; BaseDate = 1; BaseHour = 1; BaseMinute = 5; BaseSecond = 0; //基準の時間から目的の時間までの間隔(何時間後とか) //例:20分30秒後 addYear = 0; addMonth = 0; addDate = 0; addHour = 0; addMinute = 20; addSecond = 30; //目的の時間取得 //2007年6月1日 1時25分30秒となる my_date = new Date( BaseYear+addYear , BaseMonth-1+addMonth , BaseDate+addDate , BaseHour+addHour , BaseMinute+addMinute , BaseSecond+addSecond ); year = my_date.getFullYear(BaseYear+addYear); month = my_date.getMonth(BaseMonth-1+addMonth); date = my_date.getDate(BaseDate+addDate); hour = my_date.getHours(BaseHour+addHour); minute = my_date.getMinutes(BaseMinute+addMinute); second = my_date.getSeconds(BaseSecond+addSecond); //確認 trace(my_date); _root.onEnterFrame = function() { my_date = new Date(); yy = my_date.getFullYear(); mm = my_date.getMonth(); dd = my_date.getDate(); hh = my_date.getHours(); min = my_date.getMinutes(); sec = my_date.getSeconds(); //目的の時間かどうかチェック if (yy == year && mm == month && dd == date && hh == hour && min == minute & sec == second) { delete _root.onEnterFrame; //実行 Action(); } }; function Action() { //実行させたい処理を記述 trace("実行"); }

t0ty
質問者

補足

とても早くご回答を頂き、大変感謝しています 問題なく動作するようになりました! ありがとうございます! 何度も厚かましく申し訳ないのですが、もうひとつ質問があります。 お教え頂いたスクリプトに、秒数のみのカウント(指定日時までの秒数カウントを付けてみたいのですが、getTimerの指定で可能でしょうか? (もしくは秒数のみカウントではなく、日数、時間、分、秒のカウントも付けてみたいです。) 以下のスクリプトを追記してみたのですが、時間指定の方法が違うのか、かみあわないようです。。。 (2フレーム目のスクリプト) //初期設定を行う start = getTimer(); //現在のタイムを変数「start」に取得 timer = 500 * 1000 //タイマーの長さを設定する変数「timer」を5秒(5000ミリ秒)に設定 (4フレーム目のスクリプト) if (getTimer()>start+timer) { } else { _root.t1 = Math.ceil((start+timer-getTimer())/1000); //残りの秒数をテキストフィールド変数t1に表示 } 上記のスクリプトは、秒数カウントのサンプルから頂いたものですが、 カウントアップ後のアクションは省いています。 もしやり方をご存知でしたら、ご指導頂けると幸いです。

関連するQ&A

  • 外部のテキストを読み込んで数値として使う。

    下記のような内容のテキストファイルがあり 各行を各フレーム目のクリップのx座標y座標 に当てはめたいのです。 一フレーム目は(x,y)=10,10 5フレーム目は(x,y)=50,50 といった具合に テキスト(ppp.txt)の内容 10,10 20,20 30,30 40,40 50,50 60,60 70,70 80,80 90,90 メインのタイムラインに var load_lv:LoadVars = new LoadVars(); load_lv.load("ppp.txt"); load_lv.onData = function(s) { if (s.length > 0) { myFunction(s); } } function myFunction(s:String):Void { var lines:Array = s.split("\n"); for(i=1;i<9;i++){ var Array_1:Array = lines[i].split(","); clip_1._x = 5*Number(Array_1[0]); clip_1._y = 5*Number(Array_1[1]); } } これでは無理でした、、、 お願いします

    • ベストアンサー
    • Flash
  • PCの時間に合わせて画像を変化させたい。

    PCの時間に合わせて画像を変化させたい。 「自分時計」のスクリプトをダウンロードして試しています。「美人時計」のように1分ごとに画像が変わります。 http://sky.geocities.jp/minamox/jibun-tokei/ さっそく動かしてみたところ、PCの時刻と連動して画像が変わるのではなく、アクセスした時間に60秒を足して画像を切り替えてるようです。なので、PC の時間と画像が切り替わるタイミングが一致しません。「美人時計」のように一緒にはできないでしょうか?お分かりの方がいらしたらぜひ教えてください。よろしくお願いします。 ▼ソースはこれです。 <html> <head> <meta http-equiv="content-type" content="text/html; charset=shift_jis"> <title>test</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js&quot;&gt;&lt;/script&gt; <script> function getImageFile(date){ var dir = './'; var ext = 'jpg'; var hour = date.getHours(); if(hour < 10){ hour = '0' + hour; } var minute = date.getMinutes(); if(minute < 10){ minute = '0' + minute; } return dir + hour + minute + '.' + ext; } function updateClock(){ var date = new Date(); var image = getImageFile(date); date.setTime(date.getTime() + 60 * 1000); var next_image = getImageFile(date); $('#clock').fadeOut(1000, function(){ $('#clock') .html('<img src="' + image + '"><img src="' + next_image + '" style="display:none;">') .fadeIn(1000); }); setTimeout('updateClock()', 60 * 1000); } $(document).ready(function(){ updateClock(); }); </script> </head> <body> <div id="clock"></div> </body> </html>

  • Javascriptのリストボックスのリンクの指定の仕方

    Javascriptで2つのリストボックスを作成し、 1つ目のリストボックスで選択した値によって、 2つ目にリストボックスに表示される内容が変わるようにしました。 ソースは以下です。 <script language="JavaScript"> var no = new Array; no[0] = new Array("sample1", "sample2", "sample3"); no[1] = new Array("1sample1", "12sample2", "1sample3"); no[2] = new Array("2sample1", "2sample2", "2sample3"); no[3] = new Array("3sample1", "3sample2", "3sample3"); function Change(n){ a = n.area.selectedIndex; for(i=0;i < 3;i++){ n.country.options[i].text=no[a][i]; } } </script> <form> <select name="リストボックス1" onchange="Change(this.form)"> <option selected="selected">例1 <option>例2 <option>例3 <option>例4 </select> <select name="リストボックス2" size="1"> <option selected="selected">sample1 <option>sample2 <option>sample3 </select> </form> この際に、2つ目のリストボックスで値が選択された 時点で、指定のURLに飛ぶようにしたいのですが、 URLをどこに指定していいのかわかりません。 ご存知の方、宜しくお願いします!

  • Scriptを読み込み中の表示について

    HTML <script language="JavaScript" type="text/javascript" src="AAA.js"></script> 外部JS <!-- google.load("feeds", "1"); function initialize() { var feed = new google.feeds.Feed("RSSURL"); feed.setNumEntries(5); feed.load(function(result) { if (!result.error) { var container = document.getElementById("mini_feed"); for (var i = 0; i < result.feed.entries.length; i++) { var entry = result.feed.entries[i]; var div = document.createElement("div"); var entry = result.feed.entries[i]; var dd = new Date(entry.publishedDate); // now var yearNum = dd.getYear(); if (yearNum < 2000) yearNum += 1900; var date = yearNum + "年"+(dd.getMonth()+1)+"月"+dd.getDate()+"日"; container.innerHTML += "<div>【"+"<b>" + date+"</b>" +"】<br /><a href='" + entry.link + "'>" + entry.title + "</a></div>"; } } }); } google.setOnLoadCallback(initialize); //--> を設置し、RSSをスクリプトで表示しています。 2秒くらい読込みが遅いので、その部分が、一時空白状態のままになります。 そこで、読み込み中に読込みしていますというぐるぐる回る画像を表示したいのですが、どのように記述すれば宜しいのでしょうか?

  • flashでPHPファイル(実際は該当するxmlを呼ぶ)を読み込む方法について

    FLASH(AS2.0)でPHPファイル(実際は該当するxmlを呼ぶ)を読み込むようにするにはどのようにしたらいいのですか? 現状では、ローカルのxmlファイルを読み込むように、 下記のように書いてあります。 var objXML:XML = new XML(); objXML.ignoreWhite = true; objXML.onLoad = function(success:Boolean):Void { if(success) { loadXML(this); } } var menuArray:Array = new Array(); // function loadXML(objXML:XML):Void { var dataNode:XMLNode = objXML.firstChild; var menuNodes:Array = dataNode.childNodes; for(var i:Number = 1; i <= menuNodes.length; i++) { var menuNode:XMLNode = menuNodes[i-1].childNodes; var Name:String = menuNode[0].firstChild.nodeValue; menuArray[i] = { title:Name}; } myVars(menuArray); } objXML.load("sample.xml"); この状態から、外部<http://aaaa/sample.php>URLに アクセスして、PHPファイルを読み込むにはどのようにしたら よいのか全くわかりません。 objXML.load("sample.xml"); 上記の()の中に直接URLを挿入すると、 ローカルでは確認できるのですが、 ファイルをアップすると、まったく読み込めてはいません。 ActionScriptは全くわからないので、ご教授よろしくお願いいたします。

  • flashアクションスクリプト LoadVarsについて

    はじめまして。初めて質問させていただきます。 onloadメソッドの中でロードしたデータを変数に代入したいのですが、うまくいきません。記述は以下のとおりです。 var hen; a_lv=new LoadVars(); a_lv.onLoad=function(a){ hen=this.txt } a_lv.load("b.txt"); trace(hen); 出力パネルに”undefined”と表示されてしまいます。 どうしたらうまくいきますか? 分る方いましたら、是非教えてください。

  • 特定の時間に複数のメッセージからアットランダムに表示する

    1 特定の時間(たとえば、朝の7時から8時まで)に2 複数のメッセージ(たとえば、どこかのページへのリンク)の中からランダムに表示するジャバスクリプトを作りたいと思っています。 1と2は別個のスクリプトがあるのですが、これを統合すればいいのでは、と思ってやっているのですが、わかりません。なにとぞ宜しくお願いいたします。 ================= 1 mes=new Array(24); mes[0]=""; mes[1]=""; //略 mes[23]=""; function timer(){ myDate=new Date(); myTime=myDate.getHours(); document.write(mes[myTime]); } timer(); //--> 2 var quotes=new Array() quotes[0]='メッセージかリンク' var whichquote=Math.floor(Math.random()*(quotes.length)) document.write(quotes[whichquote])

  • Google Apps Scriptについて

    Google Apps Scriptについては全くの初心者です。どなたか知恵をお借りしたいです。 accessを使い業務システムを作っているのですが、これまでgoocalproxyというサービスを使い、新規受注を入力すれば、その内容をgmailに飛ばし、自動でグーグルカレンダーに登録させてました。このgoocalproxyが数日前から機能しなくなり、色々調べた結果Google Apps Scriptを使って登録する方法を見つけたのですが、全くの初心者の為、ネットで参考にしたサンプルのコピペしかできず、下記のようなコードを使用しております。 function setCalLab(){ //var dstr = "本日の予定"; //var label = GmailApp.createLabel(dstr); var thds = GmailApp.getInboxThreads(); var calName = "本日の予定"; var cals = CalendarApp.getCalendarsByName(calName); for(var n in thds){ var thd = thds[n]; var subject = thd.getFirstMessageSubject(); var msgs = thd.getMessages(); if (subject.indexOf("本日の予定",0) != -1){ //label.addToThread(thd); //for(var m in msgs){ var msg = msgs[0]; var body = msg.getPlainBody(); var str = msg.getSubject(); var res = str.match(/\d+/g); var cal = cals[0]; var d1 = new Date(); var yy = d1.getFullYear(); var dd = new Date(yy,res[0]-1,res[1]); cal.createAllDayEvent(str,dd,{description:body}); //} GmailApp.moveThreadToArchive(thd); } } } これですと、カレンダーに自動登録は出来るのですが、終日の予定になってしまいます。 やりたい事は、gmail宛てに予定の件名、日付、開始時間、終了時間を送りそれを自動でグーグルカレンダーに開始時間から終了時間までの予定で反映させたいと思っています。 別のサイトで、 function createEvent(){ var calendar = CalendarApp.getCalendarById('xxxxxxxxxx@group.calendar.google.com'); calendar.createEvent('歯医者', new Date('2012/3/12 18:00:00'), new Date('2012/3/12 20:00:00')); } 時間指定のほかに、予定の概要、場所情報を設定することもできる。 function createEvent2(){ var calendar = CalendarApp.getCalendarById('xxxxxxxxxx@group.calendar.google.com'); calendar.createEvent('歯医者', new Date('2012/3/12 18:00:00'), new Date('2012/3/12 20:00:00'), {description: '概要', location: '◯◯病院'} ); } というような情報も見つけたのですが、幾分全くの初心者の為、これをどうすれば思い通りのコードになるのかわかりません。 どなたかご教授お願い致します。

  • 指定した日付で画像を切り替え

    タイトルどおり…。 日付で画像を切り替えしようと思っています。 それで、ソースは下記のものです。 <!--// // function fncGraphicChangerByDate() { var i; var month; var day; var today; var maxFile = 4; var date = new Date(); var graphics_data = new Array(maxFile); var graphics_path = new Array(maxFile); if ((month = (date.getMonth() + 1)) < 10) { month = "0" + month; } else { month += ""; } if ((day = date.getDate()) < 10) { day = "0" + day; } else { day += ""; } today = month + day; graphics_data[0] = "0301"; graphics_path[0] = "images/7.jpg"; graphics_data[1] = "0601"; graphics_path[1] = "images/8.jpg"; graphics_data[2] = "0901"; graphics_path[2] = "images/9.jpg"; graphics_data[3] = "1201"; graphics_path[3] = ".images/73.jpg"; for (i = 0; i < maxFile; i++) { if (graphics_data[i] > today) { if (i == 0) { i = maxFile; } break; } } i--; document.write("<IMG SRC=\"" + graphics_path[i] + "\">"); } //--> </SCRIPT> 実は、画像のサイズを指定したいのですが…。 どこに何を入れたらいいのか分かりません。 何か、イイ方法はありませんか?

  • scriptリンクの別画面表示

    はじめまして。 ホームページのトップにブログの件名をニュースとして一覧表示したくて Google AJAX Feed API を利用しました。 表示自体はうまくいったのですが、 この記事へのリンクを別ウィンドウで開くようにするにはどうすればいいのでしょうか? 当方、JavaScriptは全く分からずで困っております・・・ おわかりの方、いらっしゃいましたらよろしくお願いいたします。 【html header 部分】 <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("feeds", "1"); function initialize() { var feed = new google.feeds.Feed("http://blog.XXXXX.XXX"); feed.load(function(result) { if (!result.error) { var container = document.getElementById("feed"); for (var i = 0; i < result.feed.entries.length; i++) { var entry = result.feed.entries[i]; var li = document.createElement("li"); var a = document.createElement("a"); a.href = entry.link ;       var date = new Date(entry.publishedDate); var titlelink = entry.title; a.appendChild(document.createTextNode( "・" + date.toDateString() + " " +titlelink)); li.appendChild(a); container.appendChild(li); } } }); } google.setOnLoadCallback(initialize); </script> 【html body 部分】 <div id="feed"></div> 以上、どうぞよろしくお願いいたします。

専門家に質問してみよう