• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FLASHで日数カウントダウンの後、本日開催の画像を出したい。)

FLASHで日数カウントダウン後、本日開催の画像を出す方法

このQ&Aのポイント
  • FLASHを使用して、10月4日のイベントまでの日数カウントダウンを行い、当日になったら「本日開催」の画像を表示したい。
  • カウントダウンスクリプトの一部が正常に動作せず、画像を挿入すると動作しない。
  • 対策としては、2フレーム目にテキストを直接入力する方法があるが、画像を表示させる方法を知りたい。

質問者が選んだベストアンサー

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

#1 です。 > タイムラインの階層は一階層です。 そういうことですか。 書かれていらっしゃるスクリプトには 意味無く(必然性がなく) 「this」 があったり 「_root」 があったり 「ターゲットパスなし」 があったりするので, 「このスクリプトは一体どこに書いたんだ~~???」 と思ってしまいました。 _root の フレーム1 に書いたスクリプトであり,なおかつ, _root のフレーム2 に単なるテキストを置いたときは _root のフレームが フレーム2 に移動するのに, _root のフレーム2 にビットマップ画像などある程度ファイル容量があるものを置いたときにのみ _root のフレームが フレーム2 に移動しない。 ということでしたら, カウント や _currentframe などは一切関係せず, -------------------------------- //カウントダウン// this.stop(); _root.gotoAndStop(2); -------------------------------- ↑これだけでも _root のフレームは フレーム2 に移動しないと思います。 Flash は,メモリに読み込まれていないフレームには進めないのですよ。 メモリに読み込まれていないフレームに強引に進めようとすると, 真っ白の画面で止まる とか 部分的に何かが表示されるけどそのまま動かなくなってしまう という現象が起きます。 そのためによく見る 「NowLoading....」 のようなものが存在するのです。 「NowLoading....」 のような見た目の演出を付けないでも良いとする場合, 次のようにスクリプトを変更すると, おそらく _root の フレーム2 の 画像が表示されると思います。 --------------------------------------- //カウントダウン// this.stop(); // 1フレーム進む時間毎に毎回実行 this.onEnterFrame = function() { // もし _root の読み込みバイト数が全バイト数に達したとき if (this.getBytesLoaded>=this.getBytesTotal) { // --- 以下書かれていらっしゃるそのまま ------- dtObj = new Date(); mm = dtObj.getMonth()+1; dd = dtObj.getDate(); month7 = 31; month8 = 31; month9 = 30; eventDay = 4; if (mm == 7) { totalDay = eventDay+month7+month8+month9; } else if (mm == 8) { totalDay = eventDay+month8+month9; } else if (mm == 9) { totalDay = eventDay+month9; } else { totalDay = eventDay; } _root.dayCount = totalDay-dd; trace(_currentframe+1); //カウントが0になったら// if (_root.dayCount == 0) { _root.gotoAndStop(_root._currentframe+1); } // --- 以上書かれていらっしゃるそのまま ------- // ↓これは場合によっては不要 delete this.onEnterFrame; } }; --------------------------------------- つまり, ロード待ちをして,SWFがロード完了次第,フレーム2 に進めるということです。

aloe344
質問者

お礼

ご丁寧に教えていただきありがとうございます!! おかげ様で解決できました。 とっても勉強になりました。動作確認もできました。 フラッシュはとても奥深いのですね。これを機会にもっともっと勉強していかねばと思いました。 本当にありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

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

> これなのですが、 「これなのです」では普通は通じませんよ。 いったい "どこ" に書いたスクリプトなのでしょうか? > 2フレーム目にテキストなどを いったい "どこ" の2フレーム なのでしょうか? > テキストなどを直接入力すると上手く動作するのですが、 > 画像を挿入すると動作しません。 コレに関しては何を書かれているのか全く意味がわかりません。 テキストを直接入力する? 画像を挿入する? 何のことかわかりません。 上記引用文の3つ目の意味は,わからないままでもとりあえず良いです。 1つ目と2つ目の "どこ" が非常に重要です。 おそらくこの "どこ" を重要視されていないので, ご質問でも一切書かれていない上, スクリプトが正常動作しないのではないかと思います。 > _root.gotoAndStop(_currentframe+1); このスクリプトで gotoAndStop を動作させるのは メインのタイムラインである 「_root」 です。 一般的に書くと,   _root.gotoAndStop(○○);   →「_root」のフレームを○○に進めて停止 です。 ○○ の部分に _currentframe+1 が入っていますが, この 「_currentframe」 は 「スクリプトを書いた階層のタイムラインの現在表示フレーム」 です。 「_root」 のフレームをどこかに進めるために, 「スクリプトを書いた階層のタイムラインの現在表示フレーム」 が何か関係するのでしょうか? 関係するかしないかは作成者でないとわかりません。 もし関係なく, 「_root」 を 「_rootの現在表示フレーム + 1」に進めたいのでしたら, _root.gotoAndStop(_root._currentframe+1); のようにすべきだと思います。 だから "どこ" であるのかが非常に重要で無視できない項目になります。 「ターゲットパス」 http://homepage3.nifty.com/ginga-b/MX/targetpath.html ↑ActionScript(1.0 と 2.0 )を書く上での最々重要事項です。

aloe344
質問者

補足

ご回答ありがとうございます。 質問の仕方が悪くて申し訳ありません。 タイムラインの階層は一階層です。 <1フレーム目> 「あと__日」となるように、 ダイナミックテキストを配置し変数に「dayCount」を指定しています。 その上のレイヤーに先に書いたスクリプトを記述しています。 <2フレーム目> 開催日の画像を配置しています。 この書き方で伝わりますでしょうか・・・。 説明するのに最適な用語が分からず伝わらなかったら申し訳ありません。 >テキストを直接入力する? >画像を挿入する? この2フレーム目にテキストツールで「本日開催」と書き込み、書き出しすると、「あと0日=開催日」にテキストで「本日開催」と出ます。 しかし、本日開催をデザインした画像を配置した場合に画像が表示されないのです。 どうしても画像を配置しないといけないため、そういったテキストを配置する場合と、画像を配置する場合の違いがあるのかと思い質問させていただきました。 宜しくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 構文ifの使い方

    アクションスクリプト初心者です。 午前0時~5時までと午後6時以降をタイムラインの6へ 午前5時から午後6時までは、月によって 4月~10月まではタイムラインの7に 1,2,3,11,12月はタイムラインの5にそれぞれ自動的に行くように したいのですが、どうしてもできません。 色々調べてみたのですが、頭がこんがらがってダメです! どなたか、教えていただけないですか? date=new Date(); HH=date.getHours(); MM=date.getMonth(); if ((HH<=5)&&(18<=HH)) { _root.gotoAndStop(6); } else if ((MM<3)&&(9<MM)) { _root.gotoAndStop(5); } else { _root.gotoAndStop(7); }

    • ベストアンサー
    • Flash
  • FLASHでのカウンターの残り日数を正確に表示できません

    FLASH初心者です。わかりにくい説明かもしれませんが、よろしくお願いいたします。 http://oshiete1.goo.ne.jp/qa1192628.html こちらのページを参考にさせていただき、FLASHでカウンターを作成しました。 2010年1月16日をイベント日として、残り日数を表示させたいのですが、自分が作成したカウンターに表示される日数が正確なものではないようです。 自分でいろいろ試してみたのですが、2009年4月30日までは、正確に表示されるのですが、5月1日以降になると残日数がいきなり増えてしまいます。 下記に自分が作りました、カウンターのスクリプトを記しますので、間違いがありましたらご教示いただけますようお願いいたします。 //現在の日付および時刻を取得 yy = date_obj.getFullYear(); mm = date_obj.getMonth(); dd = date_obj.getDate(); hour = date_obj.getHours(); min = date_obj.getMinutes(); sec = date_obj.getSeconds(); //1970年1月1日からイベントまでの時間をミリ秒で取得 eventUTC = Date.UTC( 2009 , 1 - 1 , 16 , 17 , 30 , 0 ); //1970年1月1日から今日までの時間をミリ秒で取得 todayUTC = Date.UTC( yy , mm , dd , hour , min , sec ); //画像で数字を表示できるようにする with( _root.display_clip ) { /*日数を2桁で表示*/ //100の位の算出と表示 temp = Math.floor( _root.display_clip.event_date / 100 ); ddd.gotoAndStop( temp + 1 ); //10の位の算出と表示 temp = Math.floor( _root.display_clip.event_date / 10 ); dd.gotoAndStop( temp + 1 ); //1の位の算出と表示 d.gotoAndStop( ( _root.display_clip.event_date % 10 ) + 1 ); 必要部分かと思う箇所だけ掲載しました。自分で修正した部分は、イベント日や日数を3桁表示にするという部分などです。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • ODBC SQLサーバーでSQLを実行したい・・・

    ODBC SQLサーバーでSQLを実行したい・・・ 昨日から入り浸っている初心者PGです。 昨日は、実行日から直近の金曜日の日付を抽出するというSQLを質問させて頂きました。 今回は前月の月初第一金曜日に当たる日付を出力するSQLについての質問となります。 下記のSQLは先輩が作成したSQLになります。 もっと簡単に書けないか悩んでいます。 補足として日付は8桁で出力をしたいです。(例:20100507) 宜しければご教授賜りたいです。(原文そのままコピーしてますw) /* いけてるsql */ SELECT case (6 - (datepart(Dw,cast(datename(year,dateadd(mm, -1, getdate())) + '-' + datename(month,dateadd(mm, -1, getdate())) + '-' + '01' as datetime)))) when '-1' then datename(year,cast(datename(year,dateadd(mm, -1, getdate())) + '-' + datename(month,dateadd(mm, -1, getdate())) + '-' + '01' as datetime) + 6) + datename(month,cast(datename(year,dateadd(mm, -1, getdate())) + '-' + datename(month,dateadd(mm, -1, getdate())) + '-' + '01' as datetime) + 6) + RIGHT('00'+CONVERT(varchar,datename(day,cast(datename(year,dateadd(mm, -1, getdate())) + '-' + datename(month,dateadd(mm, -1, getdate())) + '-' + '01' as datetime) + 6) ),2) else datename(year,cast(datename(year,dateadd(mm, -1, getdate())) + '-' + datename(month,dateadd(mm, -1, getdate())) + '-' + '01' as datetime) + (6 - (datepart(Dw,cast(datename(year,dateadd(mm, -1, getdate())) + '-' + datename(month,dateadd(mm, -1, getdate())) + '-' + '01' as datetime))))) + datename(month,cast(datename(year,dateadd(mm, -1, getdate())) + '-' + datename(month,dateadd(mm, -1, getdate())) + '-' + '01' as datetime) + (6 - (datepart(Dw,cast(datename(year,dateadd(mm, -1, getdate())) + '-' + datename(month,dateadd(mm, -1, getdate())) + '-' + '01' as datetime))))) + RIGHT('00'+CONVERT(varchar,datename(day,cast(datename(year,dateadd(mm, -1, getdate())) + '-' + datename(month,dateadd(mm, -1, getdate())) + '-' + '01' as datetime) + (6 - (datepart(Dw,cast(datename(year,dateadd(mm, -1, getdate())) + '-' + datename(month,dateadd(mm, -1, getdate())) + '-' + '01' as datetime))))) ),2) end

  • Flashでボタンをクリックすると表示・非表示するには?

    お世話になります。 ボタン「buttonC」に以下のスクリプトを記入し、クリックするとターゲット「C」が表示されるようにしています。「C」はタイムライン1では非表示で、タイムライン2以降で表示されるようにしてあり、「buttonC」をクリックすると「C」のタイムラインが2に移動するという仕組みです。 on (release) {  with (C) {   if (_currentframe == 1) {    gotoAndStop(2);   } else {    stop();   }  } } on (release) {  buttonC._alpha = (50); } 更に「buttonC」はクリックするとアルファ=50%になるようにしています。 この状態で、もう一度クリックすると、「C」を非表示(タイムライン1に戻す)にし、「buttonC」のアルファを100%にするように設定したいのです。Flagを使ってみたのですがどうも上手くいきません。 以下は試したスクリプトです。 on (release) {  if (playmode=1) {   with (C) {    if (_currentframe == 1) {     gotoAndStop(2);    } else {     stop();    }   }  } } on (release) {  if (playmode=1) {   buttonC._alpha = (50);   playmode = 2;  } } on (release) {  if (playmode=2) {   buttonC._alpha = (100);   C.gotoAndStop(1);   _root.playmode = 0;  } } 他の方法でも構わないので、良い方法がありましたら教えてください。 よろしくお願いいたします。

  • 「~○ヶ月○日」という表示方法 2

    以前こちらで同じ質問をさせていただきました。 教えていただいた方にもう1度聞こうと思ったんですが ここではそれはできないようなので、どなたか教えてください! 「HPを開設してから○ヶ月と○日が経ちました」 というような表示をしたいのです。 以前教えていただいた方法でうまく表示されていたのですが、 最近ちょっとくるってるんです。 本当は4ヶ月と22日(5/4現在)なんですが 5ヶ月と8日と表示されてしまいます。 なぜでしょうか? いろいろ検索してまわったのですが、 どれも何日という表示方法で、○ヶ月というのは見つかりませんでした。 以前教えていただいたのは↓です。 <SCRIPT> var StrMsg = ""; var dtToday = new Date;//現在の日付を取得する。 var StDay = new Date(2001,12,12);//Date(年,月,日)開設した年月日を入れておく。 //現在の日付から開設日付を引き何日経過したのかを取得する if(StDay.getMonth()>=dtToday.getMonth()+1){ var strMonth = StDay.getMonth()-(dtToday.getMonth()+1); }else{ var strMonth = (dtToday.getMonth()+1)-StDay.getMonth(); } if(dtToday.getDate()>=StDay.getDate()){ var strDate = dtToday.getDate()-StDay.getDate(); }else{ var strDate = StDay.getDate()-dtToday.getDate(); } //HTMLへと出力する if(strMonth != 0){ StrMsg = StrMsg + strMonth+"ヶ月と"; } if(Date != 0){ StrMsg = StrMsg + strDate+"日"; } if(StrMsg.length != 0){ document.write("HPを開設してから"+ StrMsg +"が経ちました"); }</SCRIPT> お願いします!!

  • 画像カウントダウン当時以降を0日に表示したい

    javascriptにて画像でカウントダウン表示しようとしています。 下記の質問を参考にしましたが、その当日を過ぎると、カウントアップしてしまいます。 03・02・01・00・01・02・・・        ↑       当日 指定日まで画像カウントダウン表示一桁の残り日数を「01」のようにしたい http://okwave.jp/qa/q5901649.html 下記の記述で誤っているところあれば教えて頂きたいのですがわかりますでしょうか? <SCRIPT LANGUAGE="JavaScript"> <!-- dir = "number_sss2012/"; date1 = new Date(); date2 = new Date(2012, 8, 19); // YYYY, MM - 1, DD d = (date2.getTime() - date1.getTime()) / (24 * 60 * 60 * 1000); d = Math.abs(Math.ceil(d)); s = d.toString(); for (i = 0; i < s.length; i++) { if ( d < 0 ) { s = "00"; } else { s = d.toString(); if ( d < 10 ) s = "0"+s; } document.write("<IMG SRC=\"" + dir + s.charAt(i) + ".png\">"); } // --> </SCRIPT>

  • マウスホイールで地球儀を回転させたい

    質問です。 下記のスクリプトは地球儀をマウスで回転させるという物なのですが、 これをマウスホイールで回転させるためにframeにxmouseの値ではなくonWheelMouseの値を与えたいのですが、記述の仕方がわかりません。 知恵を貸してください。 on (press) { function run(mc) { cur = Math.floor((_xmouse - w1) / 10); pre = !pre ? (cur) : (pre); frame = cur - pre; frame = frame > 4 ? (4) : (frame); frame = frame < -4 ? (-4) : (frame); if (mc._currentframe + frame >= mc._totalframes) { mc.gotoAndStop(1); } // end if if (mc._currentframe + frame <= 1) { mc.gotoAndStop(mc._totalframes); } // end if mc._parent.b.gotoAndStop(mc._currentframe + frame); mc.gotoAndStop(mc._currentframe + frame); pre = cur; } // End of the function mm["t" + mm.OnName].WCD_Move({_alpha: 0}, {speed: 0.500000}); var w1 = this._width / 2; _parent._parent.rotate = false; intervalID = setInterval(run, 10, this); } on (release, releaseOutside){ pre = cur = false; clearInterval(intervalID); }

  • シーンに関してふたつ質問があります。

    はじめまして。 現在ActionScriptを勉強中なのですが、ここの掲示板を見てもわからない部分があった為質問させてください。 1、シーンの結合 一連の流れをわかりやすくするため、いくつかのシーンをわけて作業していました。 これらのシーンをひとつのフレームに繋げる事はできるのでしょうか? 例)「シーン1」の最終フレームの続きに「シーン2」、「シーン2」の最終フレームの続きに「シーン3」を繋げる。 いくつか試してみたのですが、多数のフレームを一度にコピペは出来ない上に、ひとつのフレームだけコピペしても1フレーム目から配置されてしまい最終フレームの後に持っていくのですべてやろうとすると手間がかかりすぎでした。 2、ActionScriptでのシーンの指定方法 ボタンで飛ばす方法の質問はあったので、それを見つつ試したのですができませんでした。 私がやろうとしている事は、ボタンが押されたら飛ばすのではなく、ActionScriptでイベント開催日からの残り日数を計算し、その残り日数に応じて指定したシーンに飛ばす。というものです。 同じタイムライン上の指定したフレームに飛ばす事はできたのですが、別のシーンに飛ばそうとすると止まってしまいます。 ボタンでないとシーンを指定して飛ばす事は出来ないのでしょうか? シーン1の最終フレームに以下のActionScriptを記述してあります。 ※main2などは、それぞれのシーンの1フレーム目にフレームラベルとして同一の物を書いてあります。 this.stop(); dtObj=new Date(); dd=dtObj.getDate(); eventDay=31; dayCount=eventDay-dd; if(dayCount>3){ gotoAndPlay( "シーン2".main2); } if(dayCount=3){ gotoAndPlay( "シーン3".main3); } if(dayCount=2){ gotoAndPlay( "シーン4".main4); } if(dayCount=1){ gotoAndPlay( "シーン5".main5); } よろしくお願いします。

    • ベストアンサー
    • Flash
  • 月の表示

    HPで今月を表示したいです。 数字がローマ字ですが、漢字で表示したいです。 例えば10月が十月で表示する事が可能ですか? <SCRIPT language="javascript"> dd = new Date(); yy = dd.getYear(); mm = dd.getMonth() + 1; dd = dd.getDate(); if (yy < 2000) { yy += 1900; } if (mm < 10) { mm = "0" + mm; } if (dd < 10) { dd = "0" + dd; } document.write("<FONT size='-1'>"); document.write(mm + "月" ); document.write("</FONT>"); </SCRIPT> 教えてください! お願いします。

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

    今、毎月決まった日になったら表示させるというのをやりたくて がんばってみたのですがいまいちわかりません。 スクリプトは onClipEvent(load){  stop();  function update(){   var nowDate = new Date();   var Day = nowDate.getDate();   if (Day == 1){    this.gotoAndStop("today");   }else if(Day == 16){    this.gotoAndStop("today");   }else    this.gotoAndStop("a");   } } onClipEvent(enterFrame){ update(); } こんな感じです。(まったく自身がありません。) いまいち変数のところがわかりません。オブジェクトの生成とか・・・ PCの日付の方は変えてありますが、表示がされません。 今後は「次回の何回目は後何日」って感じに出来たらと思っています。 これについてもよかったら何かアドバイスお願いします。