解決済

降る星を一定時間でとめたい

初めまして、ブログのカスタマイズに興味を持ちいじり始めた超初心者です。

コピペして使ってOKのサイトから星が降る動く画像を持ってきて bodyの中に入れ、星は降るようになったのですが、ずっと降りっぱなしなので「下まで降ったら終わり」とか「何十秒だけ降る」のように設定を変えることはできますでしょうか?
 
貼り付けたものは以下です

<SCRIPT type="text/javascript" src=" ;

↑コレだけみてもなんのこっちゃ・専門用語もまだよくわからない初心者ですので、出来るだけわかりやすく教えていただけると幸いです。
よろしくお願いいたします<(_ _)>

2006-10-22 18:25の質問
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。
Ads By Google

回答(1)

2.

2006-10-23 00:34:52ベスト
カスタマイズを始めたばかりの人には非常に厄介ですよ、これ orz

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秒経てば止まります。

頑張って下さい~。

海がめ様
有難うございます<(_ _)>
またわからなくなった時はよろしくお願いいたします

Ads By Google

コメント(4)

#2.  海がめ
2006-10-23 00:53:03

書き忘れ、というか文字数オーバ;;

スクリプト十数行目を見てみると、snowflakeで、キラキラ光る雪の画像ファイルのURLがあります。
外部サーバが指定してあるので少々心配です。
その人がホームページを削除したら使えなくなります。
いつ削除されるかわかりません。
早めにコピーして自分の領域にアップした方が良いと思います。
ただ、著作権とかの問題も。
どこかの無料素材かもしれませんが、一応了承を得るべきかと思います。

#3.  (delete)
2006-10-23 19:31:54

サンプルのあるサイトを再読したところ、見当違いの回答をしてしまいました。申し訳ありませんでした。

2006-10-23 21:55:04

tateha.様
いえいえ、見当違いだなんて(>_<) 私にはとんでもない代物です。
こちらこそ、コメ頂き有難うございました<(_ _)>

海がめ様
すっすごい、こんなんでも解読できるのですね~。
いっぱい勉強したら解読まで出来るようになるかな~。
わかりやすく書いてくださり本当に有難うございます。ちょっと難しすぎますけど、やってみようかな。
でも、星の数100倍って…どんなだかみてみたい♪^^;
このたびは本当に有難うございました<(_ _)>

#5.  海がめ
2006-10-23 22:19:37

すいません、言葉足らずでした。
100倍っていうのはスクリプトの行数のことです。
決して星の数ではありません^^;

星の数は、確か最初の何行目かで
no = 15; //snow number
と宣言されていたと思います。
この値を変えれば数が変わります。

ところで「javascript "snow number"」で
検索してみたら、暗号化前のスクリプトが腐るほど引っかかりました。

わざわざこんな面倒なことしなくても、元のスクリプトは手に入るようですorz

ありがとうございました。

トラックバック

トラックバックURL: