• ベストアンサー

難解!Flashの曜日別の画像変更指定

こんにちは。 ID for WEBLIFEというソフトを使用して WEBサイトのトップページのFLASHを7パターン制作しました。 当初、制作したFLASHをFLASHで読み込みソフト上で曜日指定のスクリプトを付けようかと思っておりましたが、IDで制作したFLASHはプロテクトされているようで読み込む事が出来ません。 javascriptをhtmlに書き込みたいのですが、記述方法が分かりません。 分かる方お願い致します。 現在は毎日深夜0時に手動で更新している状況ですが 来週、ネット環境の無い所に出張するので 更新作業が出来そうにありません。 そうぞよろしくお願い致します。 憂慮している点としては IDで制作したFLASHは一定のフォルダに入れられてしまうので index.htmlと同じ階層の指定は出来そうにありません。 HTMLの記述部分 <!-- idflash("_src/sc765/Site0003/index.swf?_startPage=1","825","320","#ffffff"); //--> 階層 index.html _srcフォルダ ├sc765フォルダ  ├Site0003フォルダ   ├index.html   ├index.xml   ├index.swf   ├p001PlQs.swf(←月曜日のFLASH)   ├p001PlQs.xml   ├p001PlQsフォルダ(←月曜日のFLASH)    ├_t06_2.jpg(←月曜日のFLASHに読み込む画像)    ├motion.swf =================== 分かりにくいとは思いますが何卒よろしくお願いします。  

  • Flash
  • 回答数4
  • ありがとう数7

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

#1です。 う~ん。やはり、乱暴だったかも・・・ ANo1は<div>~</div>の中身を書き換えてしまうという方法だったのですが、少し実験してみました。 内容はちゃんと置き換えられてているみたいです。 しかし、普通のタグはそのままのタグで置き換えられるのですが、「<!--」、「//-->」のタグに限って「&lt;!--」、「//--&gt;」に変換されてしまうようです。 (通常はコメントアウトを置き換えたりはしないので、このタグだけ変わってしまうことを知りませんでした。すみません。) 見かけ上のタグのようなものが、ブラウザに表示されてしまったことと思います。 どうやらこのあたりが、うまく動作しない原因みたいですね。 一般のflashで実験してみようと調べたところ、idflashとはHTMLでの記述方法がまったく違うようなので、検証になりそうもないのでやめました。 ・・・乗りかかった船ということもあるので、スマートさに欠ける方法ではありますが、できそうな方法を考えてみました。 フラッシュの部分だけiframeにして、一度htmlをかませるというバカバカしいものですが・・・ (1)iframeに表示するHTML(単純にフラッシュ部分のみを表示するHTMLファイル)を各曜日ごとに用意する。 (2)本文のidflashを表示する部分をiframeにしておいて、そこに表示するHTMLを曜日ごとに変更する。 という方法です。HTMLファイルの入れ替えについては、動作を確認していますので、iframeだとidflashが表示できないというようなことさえなければ問題なく動作するはずです。 具体的には・・・ (1)ちょっと面倒ですが短いHTMLファイルを曜日ごとに用意 <例えば>mon.html   <html><head></head>   <body>   <!--   idflash("_src/sc765/Site0003/index.swf?_startPage=1","825","320","#ffffff");   //-->   </body></html> といった具合です。 (2)-1 これまでのフラッシュ表示部をiframeに変更 -----------------------  <!--   idflash(~~~~);  //--> --------↑の部分を-----  <iframe src="mon.html" width=825 height=320 frameborder=0 id="flash">  </iframe> --------↑に変更------ 注)W、Hのサイズを想像で書きましたが、825、320はフラッシュを表示するピクセルサイズということで良いのでしょうか?(パラメータの意味がわからないのですみません)   もし、違っていたら修正してください。このタグの中のmon.htmlは後でスクリプトで置換えてしまいますが、フラウザ側でスクリプトをOFFにしていた時の為のダミーです。 (2)-2 HTMLの最後に以下を記載。(</body>の前に)  <Script type="text/javascript">  <!--  f = new Array('./sun','./mon','./thu','./wed','./thu','./fri','./sat');    //↑各曜日のファイル名です。(.htmlは↓で付加えています)    // パスですので違うフォルダにHTMLファイルを置く場合は注意。  document.getElementById('flash').src = f[ new Date().getDay()] + '.html';  //-->  </Script>

mokorobo
質問者

補足

ありがとうございます。出来ました!!!! しかし、新たな問題が出てきました。 iframeで表示しているFLASHにはリンクボタンがついております。 ターゲット指定はしているのですが iframe内ではターゲット指定が出来ない為(しても無効になるようです) このフレーム内で指定のページが開いてしまします。 曜日指定は解決しておりますので図々しいお願いかとは思いますが また助言頂ければ大変助かります。

その他の回答 (3)

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

その,当初制作したFLASHを 読み込もうとされた FLASH読み込みソフト で, index.swf または,p001PlQs.swf(月曜日のFLASH)などを, 曜日に応じてロードする SWF を作成すれば簡単ではないでしょうか。 たとえば, その FLASH読み込みソフト で 「dummy.swf」 を作成します。 作成するステージの大きさ(ムービーのサイズ)は, 825×320に設定しておきます。  index.html  _srcフォルダ   ├sc765フォルダ     ├Site0003フォルダ       ├ dummy.swf ←ココに配置       ├index.html       ├index.xml       ├index.swf       ├p001PlQs.swf(←月曜日のFLASH) てっぺんの 「index.html」 のHTMLの記述部分 <!-- idflash("_src/sc765/Site0003/dummy.swf","825","320","#ffffff"); //--> 「index.swf」をURLクエリパラメータ付きでロードする例 dummy.swf の最初のフレームにActionScriptを記述 ----------------------------------------- // Dateオブジェクト today を作成 var today = new Date(); // 曜日から番号を取得(この場合 日=1,月=2,…,土=7) var num = today.getDay()+1; // _root(メインのタイムライン) に SWF をロード _root.loadMovie("_src/sc765/Site0003/index.swf?_startPage="+num); ----------------------------------------- コメント行を除くとたった3行です(実は1行にもなります。) その FLASH読み込みソフト で, 上記のようなActionScriptが使えなければ, フリーのFlash作成ソフト,「ParaFla!」 や 「Suzuka」 を使えば良いと思います。 Flash を操作するには Flash が一番向いていると思います。 Flash を作成するのに Flash から逃げようとするのでややこしいだけのような気もしますよ。

mokorobo
質問者

お礼

ありがとうございます。 FLASHは不慣れなのですがちょっとやってみました。 dummy.swfの1フレーム目にActionScriptを記述しましたが _root.loadMovie("_src/sc765/Site0003/index.swf?_startPage="+num); ↑この箇所にコンバイルエラーが出て上手くいきません。 お手数ですが再度確認頂ければ大変助かります。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

#1です。こんにちは。 なにはともあれ、できたとのことですのでよかったです。 もうちっとマシな解決方法がありそうな気がするのですが、こちらはflashもidflashもサッパリなもので、直接そこにからまない方法でないと考えられませんので・・・(←いいわけ) さて、iframe内でリンクのターゲットが効かないとのことですが、idflashではターゲットの指定ができないということでしょうか? <方法1> 通常のHTMLであれば、iframe内からのリンクでフレームを解除したい場合は、以下のようなターゲット指定(_top)をすることで可能です。(すでにご承知と思いますが、念のため。) <a href="test.html" target="_top">test</a>  <参考> http://www.tohoho-web.com/how2/frame.htm#target このような指定ができない場合は・・・ <方法2> idflashからのリンクの設定方法がわからないのですが、aタグに近いとすればhref="javascript:jump('test.html');"のように指定して、JavaScriptに制御を移せないでしょうか? (普通なら、onclickで指定するところでしょうが、idflashで指定できるかわかりませんし、ターゲットも効かないとするなら効いているらしいのはリンクのみなので・・・) もし、これで制御が移るならばjavascript側で、ターゲットを指定してやればいいので、 function jump(add){  window.top.location.href = add; } としておけば、トップが新しいURLでロードされることになります。 でも、idflashからうまく制御を引き継げないかもしれません。 <方法3> 確実にイベントを捉える方法としては<body>タグで、 <body onunload="jump0();"> などとすることで、(iframe内で)新しいリンク先をロードしようとするタイミングを捉えることが可能です。 ただし、このときのリンク先URLをHTMLから取得するのはどうも無理みたいなので、idflashからリンク先を引いてこなければなりませんが、残念ながら、idfalshがまったくわかりませんので・・・・・行き止まりました。 もしも、idflashからのリンクが1箇所に限定されていれば、調べる必要がなくなるので、方法2のやり方で、決め打ちでリンクすることが可能になり解決です。(ぉぃぉぃ、2箇所以上はどうるするんだ?) なので・・・複数のリンクがある場合は、スクリプトでリンク発生時の座標を取ることは可能なようですので、その位置からフラッシュのリンクボタンの位置との関係で、URLを割り出すことは可能と思われます。 この方法だと、フラッシュ毎にスクリプト内に座標の定義を記入しなければならないので面倒ですね。 (どんどん、どつぼにはまって泥臭くなってきました。) 中途半端ですみませんが、このくらいしか思いつきません。 (関係ありませんが、明日から休みなので、当分、このサイトを見ることができません。) 上のどれかで、うまくいくことをお祈りいたします。 Good Luck!!

mokorobo
質問者

お礼

うまくいきました!!! ありがとうございます。 IDFlashでもリンク先にターゲット指定は出来ていたのですが 昨日は全く上手く動作しませんでしたが どうやら、同期がうまくいかずにキャッシュが残っていたようです。 早とちりしてすみません。。。 時間がなかったので本当に助かりましたm(_ _)m ありがとうございます。 Javascript素晴らしいです!

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

すこし乱暴かも知れませんが・・・ HTML部分をタグで囲っておいて、JavaScriptで曜日を判定してinnerHTMLなどでフラッシュの呼び出し文を入れ替えてしまえばいけるのでは? 過去の質問で似たようなものがいろいろあります。(曜日で変更や日付で変更等、対象は必ずしもフラッシュではありませんが・・・) 1)時刻によって読み込まれるファイルを変更(フラッシュ)   http://oshiete1.goo.ne.jp/qa3042864.html 2)日時によって変化する背景   http://oshiete1.goo.ne.jp/qa645231.html 3)毎週月曜日にテキストリンクのリンク先を変更   http://oshiete1.goo.ne.jp/qa551922.html 4)時間ごとにリンク先を変更   http://oshiete1.goo.ne.jp/qa2506103.html イメージとしてこんな感じでしょうか? (flashはわかりませんので実験してませんが・・・) ----HTML部分---- <div id="flash"> <!-- idflash("_src/sc765/Site0003/index.swf?_startPage=1","825","320","#ffffff"); //--> </div> ----JavaScript部分---- <script type='text/javascript'> <!-- f = new Array(6); f[0] = 'idflash("_src/sc765/Site0003/index.swf?_startPage=1","825","320","#ffffff");'; f{1] = ' '; //・・・・・・以下7種類を定義・・・・・・・ i_HTML ="<--\n" + f[ new Date().getDay() ] + "\n //-->\n"; document.getElementById('flash').innerHTML = i_HTML; //--> </script> HTML内で直接出力させてしまえば、<div>タグを増やしたりidをつけたりしなくても済みますね。 いきなり document.write(i_HTML); でも良さそうです。

mokorobo
質問者

補足

難しい質問に答えて頂きありがとうございます。 やってみたのですが上手くいきませんでした。 <div id="flash"> <!-- idflash("_src/sc765/Site0003/index.swf?_startPage=1","825","320","#ffffff"); //--> </div> ↑ この部分(startPage=1)で0~6のFlashの識別をしているようですので ここに何かしらのスクリプトを書いた方がいいのでしょうか?? 知識不足ですみませんが再度助言頂ければ嬉しいです。

関連するQ&A

  • 曜日別でFLASHの切り替え

    こんにちは。 特殊なソフトで作った為、 FLASHで読み込み出来ず アクションスクリプトの設定ができない状態です。 (FLASHでの作業が不可能っぽいです) HTMLに直接javascriptを書いているのですが 全く上手くいきません。 ----JavaScript部分---- <script type='text/javascript'> <!-- f = new Array(6); f[0] = 'idflash("_src/sc765/Site0003/index.swf","825","320","#ffffff");'; f{1] = 'idflash("_src/sc765/Site0003/p001PlQs.swf","825","320","#ffffff");'; f{2] = 'idflash("_src/sc765/Site0003/p002U5q8.swf","825","320","#ffffff");'; f{3] = 'idflash("_src/sc765/Site0003/p003skpX.swf","825","320","#ffffff");'; f{4] = 'idflash("_src/sc765/Site0003/p004MupS.swf","825","320","#ffffff");'; f{5] = 'idflash("_src/sc765/Site0003/p005rDDt.swf","825","320","#ffffff");'; f{6] = 'idflash("_src/sc765/Site0003/p006OdQX.swf","825","320","#ffffff");'; i_HTML ="<--¥n" + f[ new Date().getDay() ] + "¥n //-->¥n"; document.getElementById('flash').innerHTML = i_HTML; //--> </script> ----HTML部分---- <div id="flash"> <!-- idflash("_src/sc765/Site0003/index.swf?_startPage=1","825","320","#ffffff"); //--> </div> FLASHも表示されす、ブラウザに全く認識されません。 何か間違えているのでしょうか。 図々しいお願いで申し訳ありませんが、分かる方よろしくお願い致します。

  • swfファイルをdreamweaverでHTMLに配置するには。。

    Flash CS4 Actionscript2.0 使用の超初心者です。 Flashで制作したswfをhtmlに配置したいのですが、 <EMBED src="../swf/orderworks.swf" WIDTH="580" HEIGHT="490"></EMBED> 上記の記述では、フォルムは表示されるのですが動きませんでした。 画像ファイルも出てきていません。 配置したいのは、 「orderworks.swf」で、 「swf」フォルダに入っています。 xmlファイルと画像フォルダも同じフォルダに入っています。 Flash上のプレビューでは問題なく動いています。 どなたかご教授ください。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • FLASHの代替え画像を表示させるには・・・?

    FLASHで見ることが出来るPCサイトをiPadやiPhoneでみると、空白で表示されるので、代替えのjpg画像を表示させたいのですが、方法が分かりません。 こちらのサイトにある方法も試しましたが、どの方法(<noebed></noebed>)でも表示されませんでした。 コードは自分で書いていないので、詳しい内容が不明ですが、具体的に追加・変更するコードを教えていただけないでしょうか。 FLASHデータは"p_change.swf"、代替え画像名は020.jpgになります。 必要な情報があればお答えしますので、よろしくお願い致します。 実際のコードになります。 <div id="topImageBox"> <div id="topFlash"> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="940" height="335" id="topflash1" align="middle"> <param name="allowScriptAccess" value="sameDomain" /> <param name="movie" value="p_change.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /> <embed src="p_change.swf" quality="high" bgcolor="#ffffff" width="940" height="335" name="p_change" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> </object> </div> 以下も試しましたがだめでした。私の記述の仕方が悪いのかもしれません。 <object data="Flashデータ名" type="application/x-shockwave-flash" style="width:サイズ; height:サイズ;"> <param name="movie" value="Flashデータ名"> <img src="kanban.jpg" width="サイズ" height="サイズ"> </object>

    • ベストアンサー
    • HTML
  • フラッシュ画像の大きさの比率を変えるには

    本来、width="240" height="180"である.swf画像を"600" height="100"に変更したいのですが、 比率が一緒であれば画像の大きさは変えられるものの、比率が異なると大きさが変わりません。 比率が異なるとhtmlで実現することは不可能なのでしょうか? もしくは以下のhtmlの記述が間違っているのでしょうか? <OBJECT data="./img/test.swf" type="application/x-shockwave-flash" width="600" height="100"> <param name="movie" value="./img/test.swf" /> <EMBED SRC="./img/test.swf" WIDTH=600 HEIGHT=100 bgcolor=#FFFFFF LOOP=false QUALITY=high PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" TYPE="application/x-shockwave-flash" </EMBED> </OBJECT> ご教示頂けると幸いです。 よろしくお願い致します。

    • ベストアンサー
    • HTML
  • フラッシュ画像が表示できません。

    こんばんわ。最近HP作成はじめました。フラッシュ画像を表示したいと思いいろいろ試みたのですが、どうしても表示できないのでご存知の方いましたら、よろしくお願いいたします。私がしたことは <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/ flash/swflash.cab#version=5,0,0,0" width="横幅" height="高さ"> <param name=movie value="○○.swf"> <param name=quality value=high> <embed src="○○.swf" quality=high pluginspage="http://www.macromedia.com/jp/ shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="横幅" height="高さ"> </embed> </object> です。この部分には今まで画像のgifファイルがあり、ちゃんと表示されていました。これを上記のタグに貼りかえたのですが・・(○○部分は自分のswfファイル名)。サブディリクトリへのアップロードもできています。 何が考えられるでしょうか? どうかよろしくお願いいたします。

  • Flashのループが止まりません。。

    はじめまして。初めて投稿させていただきます。 よろしくおねがいしますm(_)m フラッシュ初心者なのですが、ループが止まらなくて困っています。。 通常のswfファイルですと、最後のフレームにアクションスクリプトで this.stop();でリピートがなくなると思います。 今回は、そのthis.stop();でリピートさせなくした、ppp.swfファイルを、おおもとのaaa.swfファイルから xmlファイルを読み込んで、外部から引っ張っています。 階層1 aaa.swf test.xml(←ここからimageフォルダにあるファイルを読み込むように記述しています。) imageフォルダ   Lppp.swf    おそらく、this.stop();ということがaaa.swfと競合??してしまって使えないのかと思っています。 読み込みは正常に行えており、動作するのですが、どうしてもリピートしてしまいます。 正しい書き方が調べてもわからず、行き詰まってしまいました。 期限が迫っており、焦っているのですが、どなたかお助けいただけませんでしょうか。。 ご教授よろしくお願い致します。

    • ベストアンサー
    • Flash
  • 【FLASH】同一のswfファイルに別の動作をさせる方法

    FLASH8(Win-XP)使用者です。 同一のswfファイルを同じページ上に並べて別の動作をさせられないものかと考えています。 FLASHは画像サイズや背景色はHTML上で記述を変えるだけで変えられます。これと同じ要領で、何か値を与えて別の動作をさせられたら便利かなと思います。 そんな方法はありませんでしょうか? お詳しい方、よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • Javascriptの配列についてFLASH画像を反映させるには

    javascriptの回転バナーを表示させているのですが、静止画像であれば 上手に反映されるのですが、FLASHのswfを指定すると表示されません。ちなみにswfではなく、<object></object>を埋め込んでも表示されませんでした. javascriptの配列でFLASHを表示させるにはどうのようにしたら良いのでしょうか? var txt = new Array(); #静止画像 txt[0]="<A href='http://www.xxxxxxx.com' target='_blank'><IMG src='banner/○○○.gif' border='0'></A>"; #FLASH画像(swfバージョン) txt[1]="<A href='http://www.YYYYYYY.com/' target='_blank'><IMG src='banner/▲▲.swf' border='0'></A>"; #FLASH画像(objectバージョン) txt[2]="<A href='http://www.○○○.com'<object> classid='clsid:xxxxxxxxxxxxxxxxxxxxxxxxxxx' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0' width='500' height='70'> <param name='movie' value='http://www.ssss.com/banner/●●.swf'> <param name='quality' value='high'></object> </A>"; mmax = 3; //メッセージ行数 txtno = Math.floor(Math.random() * mmax); document.write(txt[txtno]); 1.静止画像だけで配列するとバナーが表示されます。 2.FLASH、拡張子swfにすると×マークで表示されます。 3.<object></object>にすると全て表示されなくなります。 javascriptの配列でFLASH画像を表示させるにはどうしたら良いのでしょうか? 宜しくお願い致します。

  • ApacheでFLASHが再生されない

    WindowsXP pro SP2にApache2.2.3をインストールしてホームサーバーを作りました。 httpd.confでDocument RootをD:/wwwに設定し、そこにindex.htmlとflash.swfを配置しました。 ​http://127.0.0.1/​で確認するとFLASHだけが表示されません。 どのようなことが考えられますか? 一応自分なりに試行錯誤してみました。 まず、index.htmlを直接ブラウザで見るとFLASHは表示されます。 またmime.typesにはapplication/x-shockwave-Flash swfの記述があることは確認しました。 また、​http://127.0.0.1/flash.swf​としてアクセスするとFLASHのみ表示されます。 これ以上は初心者には無理です(涙) みなさんのご協力をお願いします。

  • Flash素材の設置方法についてお尋ねします。

    Flash素材の設置方法についてお尋ねします。 FlashコンテンツをWebで発信するための方法を調べると、HTMLファイルからObjectタグを使って.swfファイルを呼び出すという方法があるようです。 試してみると確かにブラウザでFlash画像を見れるのですが、このHTMLファイルをswfファイルやその他関係ファイル一式(「data」というフォルダと「lib」というフォルダ)が含まれるフォルダの外に置いて試すと、XML Loading errorと表示されてFlashファイルが読み込めません。HTMLファイルの移動に伴い、swfファイルへのパスの修正も正しく行っているはずなのですが。 例えば、Aフォルダ内に、AAA.swfとindex.htmlがある場合は、正常に動く。 しかし、index.htmlをAフォルダの外に移す(index.htmlで指定しているパスAAA.swfをA/AAA.swfに修正)と、エラーとなる。 <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" > <param name=movie value="AAA.swf"> <param name=menu value=false> <param name=quality value=high> <embed src="AAA.swf" menu=false quality=high align=""type="application/x-shockwave-flash"pluginpage="http://www.macromedia.com/go/getflashplayer"></embed></object> ↓修正後 <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" > <param name=movie value="A/AAA.swf"> <param name=menu value=false> <param name=quality value=high> <embed src="A/AAA.swf" menu=false quality=high align=""type="application/x-shockwave-flash"pluginpage="http://www.macromedia.com/go/getflashplayer"></embed></object> とすると、エラーになります。 flashの知識が皆無のため、エラーの原因がわかりません。 ご教示よろしくお願いします。

    • ベストアンサー
    • Flash

専門家に質問してみよう