自從Scratch 2.0中引入克隆技術(shù),程序中許多任務(wù)可以通過(guò)克隆技術(shù)更為高效地執(zhí)行,而不再需要?jiǎng)?chuàng)建大量的精靈??寺◇w實(shí)質(zhì)上就是精靈的實(shí)例,這意味著它們繼承了精靈的屬性,但另一方面也是獨(dú)立的對(duì)象??寺◇w通??赡芤獔?zhí)行與母體精靈稍有不同的任務(wù),但一個(gè)關(guān)鍵的問(wèn)題是:克隆體和母體精靈都對(duì)幾乎所有事件塊(觸發(fā)器)能夠做出響應(yīng)。這樣一來(lái),專門為母體精靈設(shè)計(jì)的觸發(fā)器在發(fā)出信號(hào)時(shí)也能夠由克隆體運(yùn)行。
創(chuàng)新互聯(lián)公司專注于企業(yè)營(yíng)銷型網(wǎng)站、網(wǎng)站重做改版、廣西網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開(kāi)發(fā)、商城網(wǎng)站定制開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為廣西等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。實(shí)際開(kāi)發(fā)中,當(dāng)需要許多相似的精靈完成相似的任務(wù)時(shí),就應(yīng)該主動(dòng)考慮到使用克隆技術(shù)。因?yàn)榭寺∈怯沙绦蚨皇怯脩魧?shí)現(xiàn)的,所以克隆的運(yùn)用可以讓用戶不需要對(duì)許多精靈中的每個(gè)精靈進(jìn)行相同的更改。因此,克隆技術(shù)可典型地應(yīng)用于開(kāi)發(fā):
【高級(jí)應(yīng)用提示】Scratch中的克隆可以使用積木命令【當(dāng)作為克隆體啟動(dòng)時(shí)】遞歸地克隆自身,有興趣的朋友可作這方面更深入的探討。
先來(lái)看以下簡(jiǎn)單的代碼:
【結(jié)論一】如果單擊包含上述腳本(第二段)的母體的克隆體,則克隆體本身就會(huì)執(zhí)行第二段代碼。
如果只要求母體而不是它的克隆響應(yīng)上面的代碼,那么我們可以通過(guò)使用私有變量的辦法來(lái)規(guī)定哪個(gè)對(duì)象(可以是母體,也可以是子克?。┻\(yùn)行哪個(gè)觸發(fā)器。【結(jié)論二】如果不使用私有變量,則所有克隆體都將共享使用同一變量。
三、使用私有變量
私有變量可以用于存儲(chǔ)單個(gè)母體精靈和各個(gè)克隆體的值,盡管它們具有相同的名稱。例如,三個(gè)克隆體可以有一個(gè)名為“X方向速度”的變量,但是每個(gè)克隆都可以有自己的變量值。
類似地,母體精靈可以將其私有變量設(shè)置為特定字符串,而每個(gè)克隆體都可將其設(shè)置為不同的值。類之間不同變量值的概念允許選擇母體精靈或子克隆體運(yùn)行哪些代碼。
【提示】熟悉面向?qū)ο缶幊痰呐笥褢?yīng)該對(duì)“繼承”概念不陌生吧,父類可以派生出多種子類,而子類可以擁有與父類相似但又不同的各自特征。至此,大家應(yīng)該對(duì)Scratch面向?qū)ο缶幊碳夹g(shù)有更為深刻的理解了吧。
例如,我們想實(shí)現(xiàn)單擊綠色標(biāo)志時(shí),立即刪除所有克隆體,但母體精靈仍存在。下面,還是讓我們通過(guò)具體的小例子來(lái)說(shuō)明問(wèn)題。
要實(shí)現(xiàn)這樣的目的,首先請(qǐng)考慮在母體中編寫(xiě)下面的代碼:
易知,保存在變量“instance”中的這一小段數(shù)據(jù)只顯示該母體精靈是一個(gè)“精靈”。注意,要實(shí)現(xiàn)上述目的,“instance”必須是私有變量;否則將無(wú)法工作。接下來(lái),必須指定一個(gè)腳本,為所有克隆體分配一個(gè)顯示它們是“克隆體”的變量值。以下腳本可以完成此操作:
顯然,只有克隆體才能執(zhí)行這段代碼!
上面的腳本不會(huì)更改母體精靈的變量“instance”的值。相反,每個(gè)克隆體都有自己的變量“instance”。
完成上面的兩段編程后,變量“instance”和if語(yǔ)句相結(jié)合,就可以正確地將觸發(fā)器指定為僅為母體精靈或其克隆體運(yùn)行。
再來(lái)看下面的代碼:
上面的腳本只適用于克隆,這是顯而易見(jiàn)的,因?yàn)槟阁w精靈的變量沒(méi)有設(shè)置為“clone”,母體精靈不會(huì)執(zhí)行此if塊中的語(yǔ)句。請(qǐng)注意:上面這種使用“變量”的方法也是Scratch項(xiàng)目開(kāi)發(fā)中調(diào)試克隆引起問(wèn)題的非常有效的方法。
下面的示例演示如何在單個(gè)母體精靈的腳本中管理多個(gè)克隆體類型。請(qǐng)注意,在生成每個(gè)克隆體(或一組類似克隆體)之前,會(huì)為專用變量“type”分配一個(gè)值。如果母體精靈要忽略廣播,則應(yīng)在生成克隆體后但在接收到廣播消息之前設(shè)置其自身的唯一值“type”。
注:代碼中type是私有變量。
私有變量“type”的值由每個(gè)克隆體從母體精靈繼承,而母體精靈卻會(huì)忽略接收廣播的消息,因?yàn)樗约旱摹皌ype”值不同。這種技術(shù)允許許多不同的克隆體類型以各自獨(dú)特的方式工作。
本文并沒(méi)有給出復(fù)雜的完全例子,但是僅通過(guò)簡(jiǎn)短的小例,足以說(shuō)明了僅憑借變量的全局性與局部性的巧妙運(yùn)用即可實(shí)現(xiàn)Scratch復(fù)雜開(kāi)發(fā)中母體與克隆體間差異行為的有效管理。在后面的博文中,我會(huì)進(jìn)一步給出Scratch復(fù)雜開(kāi)發(fā)中克隆技術(shù)的其他應(yīng)用注意事項(xiàng),并給出更系統(tǒng)完整的案例,敬請(qǐng)期待。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)站題目:Scratch高級(jí)編程之妙用變量管理母體與克隆體-創(chuàng)新互聯(lián)
本文地址:http://jinyejixie.com/article6/ccecog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、商城網(wǎng)站、企業(yè)網(wǎng)站制作、虛擬主機(jī)、微信小程序、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容