解決済
降る星を一定時間でとめたい
初めまして、ブログのカスタマイズに興味を持ちいじり始めた超初心者です。コピペして使ってOKのサイトから星が降る動く画像を持ってきて bodyの中に入れ、星は降るようになったのですが、ずっと降りっぱなしなので「下まで降ったら終わり」とか「何十秒だけ降る」のように設定を変えることはできますでしょうか?
貼り付けたものは以下です
<SCRIPT type="text/javascript" src=" ;
↑コレだけみてもなんのこっちゃ・専門用語もまだよくわからない初心者ですので、出来るだけわかりやすく教えていただけると幸いです。
よろしくお願いいたします<(_ _)>
回答(1)
2.

stardrop.jsは、簡単には読めないよう細工されているので、このままでは改造出来ません。
暗号化みたいなものです。
ちょっとした解析作業が必要です。(解析なんて大げさなものではありませんが。
stardrop.jsをメモ帳などのエディタで開き、文末の「document.write(t);」を削除します。
それから、行を変えて次のように4行追加して下さい。
t=t+String.fromCharCode(a);} //←ココが最終行
/* ここから */
fso = new ActiveXObject("Scripting.FileSystemObject");
test = fso.OpenTextFile("log.txt", 8);
test.Write(t);
test.Close();
/* ここまでを追加 */
上の4行は、ブラウザで動作させるスクリプトを、log.txtに書き出すためのものです。
次に同じディレクトリに、log.txtという空のテキストファイルを作って下さい。
上に書いたとおり、解析結果の出力用のファイルです。
終わったら、stardrop.jsをダブルクリックして直接起動して下さい。
もしノートンやウイルスバスター等の警告が出たら認証します。
log.txtを開くと、87行書き込まれていると思います。
これが最初のプログラムの本来の姿です。
下から8行目
setTimeout("snowIE()", speed);
を削除して
loop("snowIE()");
に書き換えて下さい。
全体の下から26行目
setTimeout("snowNS()", speed);
を削除して
loop("snowNS()");
に書き換えて下さい。
1行目と2行目の間に次の9行を追加します。
/* ここから */
var duration = 5000;
var timer;
var start = new Date();
function loop(str){
if(parseInt(((new Date()).getTime() - start.getTime())) >= duration)
clearTimeout(timer);
else
timer = setTimeout(str, speed);
}
/* ここまでを追加 */
以上、完成です。
全行をコピーして、表示したいHTMLの<BODY>の真下あたりに突っ込んで下さい。
最初と比べ、量が100倍近くになりましたが仕方ありません・・・。
2行目のdurationは、ページを読み込んでから止めるまでの時間です。
単位はミリ秒、つまり5000の場合は、5秒経てば止まります。
頑張って下さい~。
海がめ様
有難うございます<(_ _)>
またわからなくなった時はよろしくお願いいたします
コメント(4)
書き忘れ、というか文字数オーバ;;
スクリプト十数行目を見てみると、snowflakeで、キラキラ光る雪の画像ファイルのURLがあります。
外部サーバが指定してあるので少々心配です。
その人がホームページを削除したら使えなくなります。
いつ削除されるかわかりません。
早めにコピーして自分の領域にアップした方が良いと思います。
ただ、著作権とかの問題も。
どこかの無料素材かもしれませんが、一応了承を得るべきかと思います。
サンプルのあるサイトを再読したところ、見当違いの回答をしてしまいました。申し訳ありませんでした。
tateha.様
いえいえ、見当違いだなんて(>_<) 私にはとんでもない代物です。
こちらこそ、コメ頂き有難うございました<(_ _)>
海がめ様
すっすごい、こんなんでも解読できるのですね~。
いっぱい勉強したら解読まで出来るようになるかな~。
わかりやすく書いてくださり本当に有難うございます。ちょっと難しすぎますけど、やってみようかな。
でも、星の数100倍って…どんなだかみてみたい♪^^;
このたびは本当に有難うございました<(_ _)>
すいません、言葉足らずでした。
100倍っていうのはスクリプトの行数のことです。
決して星の数ではありません^^;
星の数は、確か最初の何行目かで
no = 15; //snow number
と宣言されていたと思います。
この値を変えれば数が変わります。
ところで「javascript "snow number"」で
検索してみたら、暗号化前のスクリプトが腐るほど引っかかりました。
わざわざこんな面倒なことしなくても、元のスクリプトは手に入るようですorz
ありがとうございました。
