Smart貓小萌
2023-04-01 18:14:05
下面是代碼------------------------------------------------------------------------------------------function createWavePlane($ID,$MAX,$WIDTH,$HEIGHT,$DELAY,$PICTUREARRAY){//存放ID,個(gè)數(shù),寬度,高度,圖片數(shù)組var $JUDGE=1;var $INDEX=1;var $TIME;for(i=0;i<$MAX;i++){var $MODLE=document.createElement("div");$MODLE.id="$IDCHUNK"+i;$MODLE.style.position="absolute";$MODLE.style.top="0px";$MODLE.style.left=$WIDTH*i;$MODLE.style.width=$WIDTH;$MODLE.style.height=$HEIGHT;$MODLE.style.backgroundRepeat="no-repeat";$MODLE.style.backgroundImage=$PICTUREARRAY[0];$MODLE.style.backgroundSize=$WIDTH*$MAX+"px "+$HEIGHT+"px";$MODLE.style.backgroundPosition=-($WIDTH*i)+"px 0px";document.getElementById($ID).appendChild($MODLE);}//創(chuàng)建界面function $BODY(){alert("body");document.getElementById("$IDCHUNK"+$JUDGE).style.backgroundImage=$PICTUREARRAY[$INDEX];if($JUDGE==$MAX){if($INDEX==$PICTUREARRAY.length){$INDEX=0;}else{$INDEX++;}$JUDGE=1;clearInterval($TIME);setTimeout("$START()",$DELAY);}else{$JUDGE++;}}//function $START(){$TIME=setInterval("$BODY",2000/$MAX);}//$START();}------------------------------------------------------------------------------------------
1 回答

慕婉清6462132
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊
仔細(xì)看了代碼, 函數(shù)$Body是寫在了函數(shù)createWavePlane中了, 這樣一來(lái)$BODY最多只能算一個(gè)"局部函數(shù)"(借用局部變量的概念), 而setInterval函數(shù)的一個(gè)參數(shù)是一個(gè)JavaScript執(zhí)行腳本, 從調(diào)用來(lái)看$BODY必須是一個(gè)"全局函數(shù)", 故會(huì)有$BODY未定義的錯(cuò)誤.
另外, setInterval中應(yīng)寫成函數(shù)調(diào)用形式$BODY(), 這樣函數(shù)才會(huì)得到執(zhí)行(沒(méi)有括號(hào)函數(shù)是不會(huì)被執(zhí)行的).
看了此代碼好像是要實(shí)現(xiàn)一個(gè)類似"類"的功能, 一般JavaScript中的"類"這樣寫:
function ClassA() { this .className = "ClassA" ; // 用this.xxx做為類成員的訪問(wèn)定義 this .method1(); // 調(diào)用類的"實(shí)例方法" } // 用類名.prototype = {}來(lái)定義類的各種"實(shí)例方法" ClassA.prototype = { method1: function () { window.alert( "You call method1" ); }, // 各方法間用逗號(hào)分隔 method2: function () { window.alert( "You call method2" ); } } // 用類名.靜態(tài)方法 = function()定義靜態(tài)方法 ClassA.staticMethod = function () { window.alert( "call static method" ); } // 這樣來(lái)調(diào)用靜態(tài)方法: ClassA.staticMethod(); // 這樣定義"類的實(shí)例", 并調(diào)用類實(shí)例方法 var ins = new ClassA(); ins.method2(); |
添加回答
舉報(bào)
0/150
提交
取消