日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

【新提醒】[教程]【新手入門(mén)】新人簡(jiǎn)化腳本必備知識(shí)~關(guān)于子程序的講解。(對(duì)于用goto的重復(fù)代...

 淳爺們 2013-08-28
話(huà)說(shuō),很多新人不懂得使用子程序,或者不是很理解子程序的概念,以至于在面對(duì)重復(fù)代碼的時(shí)候使用很多Goto語(yǔ)句,導(dǎo)致程序上的邏輯混亂,調(diào)試?yán)щy,其實(shí)。有很大一部的goto語(yǔ)句,我們可以用子程序來(lái)替代。使用子程序可以讓我們的腳本邏輯變得更加清晰,并且易于調(diào)試。讓我們先看看按鍵寶典上對(duì)于子程序的解釋

子程序,我們可以把它理解為在一個(gè)腳本中,如果其中有些腳本內(nèi)容優(yōu)化完全相同或是相似,為了簡(jiǎn)化腳本,可以把這些重復(fù)的程序段單獨(dú)列出,并按一定的格式編寫(xiě)成子程序。主程序在執(zhí)行過(guò)程中如果需要某一子程序,通過(guò)調(diào)用命令來(lái)調(diào)用該子程序,完成后返回主腳本,繼續(xù)執(zhí)行后面的腳本。

嗯,好吧,或許看起來(lái)有些拗口。
其實(shí)。我們可以把我們的整個(gè)程序看做成一個(gè)人,比如腳本的名字就是人的名字,那么子程序,就是人一個(gè)個(gè)的動(dòng)作。讓我們來(lái)舉個(gè)實(shí)例,比如說(shuō)拿這個(gè)動(dòng)作。我們每天都要拿很多東西。如果放到代碼里,我們要。。。

  1. 1.杯子
  2. MoveTo 杯子的x坐標(biāo), 杯子的y坐標(biāo)
  3. 執(zhí)行拿起動(dòng)作

  4. 2.筷子
  5. MoveTo 筷子的x坐標(biāo), 筷子的y坐標(biāo)
  6. 執(zhí)行拿起動(dòng)作


  7. 3.汽車(chē)
  8. MoveTo 汽車(chē)的x坐標(biāo), 汽車(chē)的y坐標(biāo)
  9. 執(zhí)行拿起動(dòng)作(超人呦~~)

  10. 。。。。。還有很多
復(fù)制代碼
我們不難發(fā)現(xiàn)。其實(shí)我們每次的動(dòng)作都是相同的,全部都是moveto 某坐標(biāo),然后執(zhí)行拿起動(dòng)作。這時(shí)候。我們就該考慮用子程序了。
下面讓我們看看子程序的寫(xiě)法

  1. Call 拿起(杯子的x坐標(biāo), 杯子的y坐標(biāo))
  2. Call 拿起(筷子的x坐標(biāo), 筷子的y坐標(biāo))
  3. Call 拿起(汽車(chē)的x坐標(biāo), 汽車(chē)的y坐標(biāo))
  4. 。。。后面想加多少加多少
  5. Sub 拿起(x,y)
  6.     MoveTo x, y
  7.     執(zhí)行拿起動(dòng)作
  8. End Sub
復(fù)制代碼
看。是不是代碼要簡(jiǎn)化很多呢?如果每一個(gè)動(dòng)作的代碼都要十條甚至幾十條,我們能簡(jiǎn)化多少行的代碼呢。想想吧親~好。讓我們來(lái)解釋一下這個(gè)子程序的意思。
首先,子程序的聲明定義。是這樣的

  1. Sub 子程序名(參數(shù)a,參數(shù)b...)       
  2. 你的重復(fù)代碼
  3. End Sub
復(fù)制代碼


說(shuō)明參數(shù)可以是多個(gè),也可以一個(gè)都沒(méi)有,我們可以把參數(shù)理解成一個(gè)個(gè)未賦值的變量,而調(diào)用子程序時(shí)填寫(xiě)的參數(shù)則是給這個(gè)變量賦值,如果我們只想單純的重復(fù)執(zhí)行一段代碼。那么只需寫(xiě)成

  1. Sub 子程序名
  2. 你的重復(fù)代碼
  3. End Sub
復(fù)制代碼
接下來(lái)是調(diào)用,當(dāng)我們寫(xiě)好子程序后。我們只要執(zhí)行調(diào)用的命令,子程序就會(huì)執(zhí)行啦。當(dāng)然。如果不調(diào)用,子程序是不會(huì)自動(dòng)執(zhí)行的,以下是調(diào)用代碼

  1. Call 子程序名(參數(shù)a,參數(shù)b...)
復(fù)制代碼
調(diào)用子程序時(shí)填寫(xiě)的參數(shù)我們可以看做是給這個(gè)變量賦值,當(dāng)然。如果你的子程序不帶參數(shù),這樣寫(xiě)也是可以的。

  1. Call 子程序名
復(fù)制代碼
接下來(lái),讓我們做個(gè)小小的實(shí)驗(yàn)吧。請(qǐng)?jiān)诎存I精靈的源文件(代碼模式)輸入以下命令

  1. Call PrintMsg

  2. Sub PrintMsg
  3.     MEssageBox "我執(zhí)行啦"
  4. End Sub
復(fù)制代碼
然后調(diào)試執(zhí)行以上代碼,我們會(huì)發(fā)現(xiàn)。跳出了一次彈出框,內(nèi)容是“我執(zhí)行啦”同理。如果多調(diào)用Call PrintMsg幾次,彈出框也就多跳出幾次。我們同樣也可以試試以下代碼

  1. Sub PrintMsg
  2.     MEssageBox "我執(zhí)行啦"
  3. End Sub
復(fù)制代碼
如果不調(diào)用的話(huà)。這段代碼根本不會(huì)執(zhí)行,接下來(lái)讓我們看看帶參數(shù)的子程序(下面代碼)

  1. Call PrintMsg("超人","蜘蛛俠")

  2. Sub PrintMsg(Nam1,Nam2)
  3.     MEssageBox Nam1&"大戰(zhàn)"&Nam2
  4. End Sub
復(fù)制代碼
調(diào)試執(zhí)行上面的代碼,我們會(huì)發(fā)現(xiàn)。彈出框的內(nèi)容變成了超人大戰(zhàn)蜘蛛俠。這是,我們子程序中的參數(shù)Nam1和Nam2可以看做是變量。而調(diào)用子程序的參數(shù)"超人","蜘蛛俠"則是在給兩個(gè)參數(shù)賦值


最后。讓我們看一下子程序在腳本中的實(shí)際應(yīng)用吧!讓我們來(lái)看一個(gè)找色的例子(下面代碼)

  1. FindColor 376, 401, 891, 703, "1DB6B6", intX, intY
  2. If intX > 0 And intY > 0 Then 
  3.      MoveTo intX, intY
  4.      LeftClick 
  5. End If
  6. FindColor 376, 401, 891, 703, "A92929", intX, intY
  7. If intX > 0 And intY > 0 Then 
  8.      MoveTo intX, intY
  9.      LeftClick
  10. End If
  11. FindColor 376, 401, 891, 703, "7A1EB7", intX, intY
  12. If intX > 0 And intY > 0 Then 
  13.      MoveTo intX, intY
  14.      LeftClick
  15. End If
  16. FindColor 376, 401, 891, 703, "2590D8", intX, intY
  17. If intX > 0 And intY > 0 Then 
  18.      MoveTo intX, intY
  19.      LeftClick
  20. End If
  21. FindColor 376, 401, 891, 703, "BCBC60", intX, intY
  22. If intX > 0 And intY > 0 Then 
  23.      MoveTo intX, intY
  24.      LeftClick
  25. End If
  26. FindColor 376, 401, 891, 703, "1616AF", intX, intY
  27. If intX > 0 And intY > 0 Then 
  28.      MoveTo intX, intY
  29.      LeftClick
  30. End If
  31. FindColor 376, 401, 891, 703, "FFFFFF", intX, intY
  32. If intX > 0 And intY > 0 Then 
  33.      MoveTo intX, intY
  34.      LeftClick
  35. End If
復(fù)制代碼
好長(zhǎng)一段代碼吧~哈哈。通過(guò)觀(guān)察。我們不難發(fā)現(xiàn),其實(shí)上面代碼中每一次找色我們執(zhí)行的代碼都是相同的,只不過(guò)每次找的顏色不一樣,所以,我們決定用變量替代顏色,用帶參數(shù)的子程序來(lái)修改這段代碼。接下來(lái)讓我們看看以下代碼

  1. Call 找色("1DB6B6")
  2. Call 找色("A92929")
  3. Call 找色("7A1EB7")
  4. Call 找色("2590D8")
  5. Call 找色("BCBC60")
  6. Call 找色("1616AF")
  7. Call 找色("FFFFFF")

  8. Sub 找色(FColer)
  9.             FindColor 376, 401, 891, 703, FColer, intX, intY
  10.         If intX > 0 And intY > 0 Then 
  11.         MoveTo intX, intY
  12.         LeftClick 1
  13.         End If
  14. End Sub
復(fù)制代碼
是不是簡(jiǎn)化多了呢以上的代碼,還有更簡(jiǎn)化的思路~就是。用數(shù)組!對(duì)數(shù)組的概念不理解的盆友~我們下次開(kāi)講吧!



如果你感覺(jué)我的帖子對(duì)您的腳本有點(diǎn)幫助~請(qǐng)給點(diǎn)擊右下角評(píng)分~給朵花吧!如果以上有什么寫(xiě)的不對(duì)的地方~歡迎指出,共同探討!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多