次のような、たった数行のスクリプトで、度派手なことが出来るんですね〜。
まぁ、えらい迷惑なスクリプトなんですけど。(笑(^^ ;;
/*-------------------------------------------------------------------
あ…全部壊れるよ…(笑(^^ ;;
*************************************
*** 全部壊れるスクリプト Ver.1.10 ***
*************************************
<address>
いろきゅう
http://ir9.jp/
</address>
** コメントはけさないでちょ! **
** ユーザー設定エリアのパラメータは、
各自で自由に変更してかまいません。 **
// ---- Ver.01.10.0001 : 2001/09/17 ----------
// * スクリプト配布用に組みなおし
// * ベンチマークアルゴリズム 変更
---------------------------------------------------------------------*/
/* ■■■■■ ユーザー設定エリア ■■■■■ */
// メッセージのフラグ
var BeforeMsgFlg = true;
var AfterMsgFlg = true;
var BenchFlg = true;
// 表示されるメッセージを記述
var BeforeMessage = "あっ!";
var AfterMessage = "■ 警告 ■\n\nこれ以上の破壊活動は不可能です! (だって、何も無いもん:笑)\n速やかに破壊活動を停止してください!\n\n…というか、これ以上、破壊ネタないんですケド。(笑(汗\nいやいや、その前に一言!\n\n\nえぇかげん、破壊活動するなぁぁぁぁ〜〜〜っ!(笑\n ";
var AfterStatus = "シーラ家はあなたの手によって破壊されました。";
/* ■■■■■ ユーザー設定エリア おわり ■■■■■ */
//// ブラウザ判定
var bl_user = navigator.userAgent;
var bl_ver = navigator.appVersion;
var bl_name = navigator.appName;
var bl_id = 0;
if(bl_name.indexOf('Internet Explorer') >= 0)
{
if(bl_ver.charAt(0) >= 4)
{
bl_id = 1;
}
}
//////////////////////////
var i = 0; // 落ちるのと共有してます。
var paramX = 5;
var paramY = 10;
var g_StartElement;
var g_hStopFall;
var g_nAllCount; // すべてのオブジェクトの数
var g_ProcCount = 0;
var g_nBench = 0;
// ベンチマーク用
var g_BeforeTime;
var g_NowTime;
var g_TmpTime;
var g_ComTmp;
var g_MaxFps = 0;
var g_MinFps = 99;
/***** 落ちる処理 *****/
function allbreak(){
if(bl_id != 1) return 0; // IE 以外さようなら〜
while(document.body != document.all[i] && i < 9999)
i++;
if(i == 1000){ alert("なんかおかしいで。"); return 0;}
g_StartElement = ++i;
g_nAllCount = document.all.length;
if(BeforeMsgFlg) alert(BeforeMessage);
for(i = g_StartElement; i < g_nAllCount; i++)
{
document.all[i].x = Math.ceil((paramX * 2) * Math.random()) - 5; // マイナスにもプラスにもなるように
document.all[i].y = Math.ceil(paramY * Math.random()) + 10; // 最小値は 10です。(正確には11)
document.all[i].nowX = 0;
document.all[i].nowY = 0;
document.all[i].tmpY = 0;
document.all[i].style.position = "relative";
}
g_BeforeTime = (new Date).getTime; // ベンチ
g_hStopFall = setInterval("AllFallProc()",50);
}
function AllFallProc(){
// 落ちましょう♪
for(i = g_StartElement; i < g_nAllCount; i++)
{
document.all[i].nowX += document.all[i].x * 2; // X 軸については。直でOK!
document.all[i].tmpY += document.all[i].y; // Y軸については、直じゃ駄目です。
document.all[i].nowY += document.all[i].tmpY; //
document.all[i].style.left = document.all[i].nowX + "px";
document.all[i].style.top = document.all[i].nowY + "px";
}
////////////////////
g_NowTime = (new Date()).getTime();
g_TmpTime = g_NowTime - g_BeforeTime; // 今の時刻をから、前回の時刻を引いて差を算出
g_ComTmp = Math.round(1000 / g_TmpTime);
(g_MaxFps < g_ComTmp) && (g_MaxFps = g_ComTmp); // Max値更新
(g_MinFps > g_ComTmp) && (g_MinFps = g_ComTmp); // 同じくMin更新に
if(BenchFlg) window.status = "ベンチマーク " + g_ComTmp + "/20 fps くらい || Max/MIN = " + g_MaxFps + "/" + g_MinFps + "fps";
//////////////////////
if(g_ProcCount > 20)
{
for(i = g_StartElement; i < g_nAllCount; i++)
{ // 隠しましょう♪
document.all[i].style.display = "none";
}
clearInterval(g_hStopFall);
if(AfterMsgFlg) alert(AfterMessage);
window.status = AfterStatus;
}
else
{
g_BeforeTime = g_NowTime; // べんち
g_ProcCount++;
g_nBench++;
}
}