<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                > **作者介紹** > > **Hal Abelson** > > ![{%}](https://box.kancloud.cn/2015-08-31_55e3d2dd2e644.png) > > 關于Abelson教授的故事很難用一段簡短的文字來說明。他是MIT電子工程與計算機科學系的一名教授,獲得過MIT、IEEE以及ACM頒發的多種獎項,如果必須用一個詞來概括他的貢獻,那就是"教育"!正如他在獲獎時所說,“無論有多少獲獎的理由,對我來說只有‘教育’是最有意義的,這也是我在MIT給自己的定位:一名教師。” > > Abelson教授作為MIT計算機教育的領導者,執教已超過30年,至今仍擔當重要角色。他與Gerry Sussman合著的教科書《計算機程序的構造和解釋》改變了人們對計算的認識,并被世界范圍內的高等學校所采用(中譯本由北京大學裘宗燕教授翻譯)。書中淡化了具體編程語言的特殊性,而將抽象的思維方法作為所有編程語言的共同基礎。 > > 在Abelson的教學實踐中,更關注的是學習的本質:在與真實世界的交互中學習。App Inventor就是這種思想的具體體現。作為App Inventor開發團隊的領導者,Abelson力圖讓初學者在創作實踐中體會編程語言的內涵,并掌握編程的方法。用建構主義(Constructionism)論的發展者Papert的話說,“生活在‘數學王國’里的人學習數學,就像法國人學習法語一樣的順理成章。” > > 除此之外,Abelson是開源運動的倡導者,是共創組織及自由軟件基金會的創始領導人之一,也是推動MIT開放課程的主要力量。 本章將開啟你的創建應用之旅。這里介紹了App Inventor的關鍵要素——組件設計器及塊編輯器,并手把手地引導讀者創建第一個應用:HelloPurr。在完成本章的學習之后,就可以開始創建自己的應用了。 ![{%}](https://box.kancloud.cn/2015-08-31_55e3d2ddb4a9e.png) ![{%}](https://box.kancloud.cn/2015-08-31_55e3d2de3a3c8.png) **圖 1-1 HelloPurr應用** 每當搭建了新的開發環境,通常運行的第一個程序就是顯示“Hello World”,來證明系統已經就緒。這個傳統可以追溯到20世紀70年代,從Brian Kernighan 在貝爾實驗室使用C語言開始(Brian現在是谷歌App Inventor團隊的訪問學者!)。使用App Inventor,即便是創建最簡單的應用,也可以實現聲音的播放以及對屏幕觸摸的響應,而不只是顯示文字。想想都令人感到興奮,那么,讓我們馬上開始吧。第一個應用是“HelloPurr”(如圖1-1),當你觸摸這只貓時,它會發出“喵嗚”聲;當你搖晃它時,則將發出嘟嘟的震顫。 ## **學習要點** 本章用到了以下組件和概念: * 選擇組件來創建應用:決定了應用 的外觀; * 為組件設定行為:做什么以及何時做; * 使用組件設計器選擇組件,在Android設備上,有些組件可以顯示,有些則不可見; * 從本地計算機加載媒體文件(聲音或圖像),并添加到應用中; * 用塊編輯器來組裝程序塊,以此來設定組件行為; * 用App Inventor的實時測試功能對應用進行測試。你可以一邊創建應用,一邊在手機上看到它們外觀以及運行情況; * 將應用打包并下載到Android設備上。 ### **App Inventor的開發環境** App Inventor的編程環境包括以下三個重要組成部分,如圖1-2所示: * 如圖1-2A所示,組件設計器運行在瀏覽器中,創建應用過程中,用它來進行組件的選擇,并進行屬性設置; * 如圖1-2B所示,像組件設計器一樣,塊編輯器也在瀏覽器中運行,用于創建組件的行為; * 測試設備:在開發應用過程中,可以用Android設備對應用進行同步的運行與測試;如果你手邊沒有Android設備,你可以使用系統中集成的Android模擬器來測試應用。 ![{%}](https://box.kancloud.cn/2015-08-31_55e3d2dea75c0.png) **圖 1-2A 組件設計器** ![{%}](https://box.kancloud.cn/2015-08-31_55e3d2dff1563.png) **圖 1-2B 塊編輯器** 在瀏覽器中訪問ai2.appinventor.mit.edu即可啟動App Inventor。如果你是第一次使用App Inventor,你會看到彈出的項目(Projects)窗口,它多半是空的,因為你還沒有創建過任何項目。單擊頁面左上角的“Project?Start new project…”創建一個項目,輸入“HelloPurr”作為項目名稱(注意不帶空格),然后單擊OK。 打開的第一個窗口是組件設計器(Designer),你可以單擊窗口右上角的Blocks按鈕來切換到塊編輯器。 在Project右側的Connect下拉菜單中有三個可選項(三類測試設備),如圖1-3所示。 ![{%}](https://box.kancloud.cn/2015-08-31_55e3d2e0832db.png) **圖 1-3 單擊“Connect”并選擇“AI Companion”(應用開發伴侶,或簡稱AI伴侶)** 如果手邊的Android設備可以通過WIFI訪問互聯網,用該設備訪問Google Play,搜索MIT的AICompanion,下載、安裝并啟動它。然后在“Connect”下拉菜單中選擇“AI Companion”,并按照彈出窗口以及AI伴侶中的提示進行操作。除此之外,也可以使用Android模擬器來測試應用,選擇“Connect?Emulator”來加載Android模擬器,大約要等30秒鐘。 如果一切正常,將會看到組件設計器窗口、塊編輯器按鈕,如果你選擇了Emulator選項,你還可以看到模擬器窗口(屏幕上看起來應該像插圖1-2A和1-2B,但窗口中大部分是空的)。如果您還有問題,請重溫網站[http://ai2.appinventor.mit.edu](http://ai2.appinventor.mit.edu/)中的安裝說明。 ## **設計組件** 我們使用的第一個工具就是(也只能是)組件設計器。組件是你用來創建應用的基本元素,就像菜譜中的原料。有些組件非常簡單,如“Label”(標簽)組件,它用于在屏幕上顯示文字;或者如“Button”(按鈕)組件,輕按它則引起一個動作。其它組件則要更復雜:一個繪圖的“Canvas”(畫布)組件可以容納靜止圖像或動畫;“accelerometerSensor”(加速度傳感器)組件是一種運動傳感器,它的工作原理類似于Wii 控制器,它可以檢測到設備的移動或搖晃;還有的組件用于編寫并發送短信、播放音樂和視頻以及從網站獲取信息等等。 當你打開Designer時,其外觀如插圖1-4所示。 ![{%}](https://box.kancloud.cn/2015-08-31_55e3d2e0e4948.png) **圖 1-4 App Inventor的組件設計器** Designer被劃分為如下幾個區域: * 中部的白色區域稱為預覽窗口(Viewer),用于放置應用中所需的組件,你可以按照自己的喜好來安排這些組件。預覽窗口只能粗略地顯示應用的外觀,例如,與測試設備中的應用相比,在預覽窗口中,一行文字可能會在不同的地方換行。如果想看到應用的實際外觀,可以將應用下載到測試設備上(稍后我們會在“打包應用程序并下載”的部分詳細介紹),或者下載App Inventor自帶的模擬器。 * 預覽窗口的左側是組件面板(Palette),其中包含了可供選擇的各類組件。該面板按類別劃分為幾個部分,默認情況下,只有用戶界面(User Interface)組件可見,可以通過點擊其他類別的標題,如Media(媒體)等,來查看其他組件。 * 預覽窗口的右側是組件列表(Components),顯示了項目中的所有組件,拖動到預覽窗口中的任何組件都將顯示在該列表中。目前,該項目中只有一個組件:Screen1,它代表設備的屏幕。 * 組件列表下方是媒體列表(Media),顯示項目中的所有媒體資源(圖像和聲音)。本項目中尚未添加任何媒體資源,不過很快就會添加。 最右邊的部分用于顯示組件的屬性(Properties),在預覽窗口中單擊某個組件,將在Properties下方看到該組件的一系列屬性。屬性描述了組件的詳細信息(如,單擊Label組件可以看到它的顏色、文字內容、字體的屬性。),可以修改屬性值。當前顯示的是屏幕(名為Screen1)的屬性,包括背景顏色、背景圖像及標題等。 HelloPurr應用中需要兩個可視組件(可以理解為應用中確實可見的組件):Label組件顯示文字“寵物小貓”,而Button組件中有一張貓的圖片;還需要一個非可視的Sound(聲音)組件,用來播放聲音,如貓叫聲;還有一個AccelerometerSensor(加速度傳感器)組件,用于檢測設備的移動或搖晃。不必擔心,我們將按一步一步地教你使用這些組件。 ### **創建一個Label(標簽)** 添加的第一個組件是Label: 1\. 轉到組件面板(Palette),單擊Label(列表中的第五個),并將其拖動到預覽窗口(Viewer)中。你會看到一個矩形框出現在預覽窗口中,框里寫著Text for Label1。 2\. 看組件設計器右側的Properties(屬性)框,它顯示了Label的屬性。在中間位置有一個Text屬性,下面是Label中顯示的文字。將文字改為“寵物小貓”并按回車鍵。你會看到在預覽窗口中的文字也改變了。 3\. 單擊BackgroundColor(背景色)下面的方框來改變Label的背景色,目前屬性值為None(無背景色),從顯示的顏色列表中選擇藍色,并將Label的TextColor(文字顏色)屬性改為黃色。最后將FontSize(字號)屬性改為20。 Designer的外觀如圖1-5所示: ![{%}](https://box.kancloud.cn/2015-08-31_55e3d2e207a7a.png) **圖 1-5 應用中有了一個Label(標簽)** 要確保Android測試設備或模擬器處于連接狀態。在設計器中添加的Label會在測試設備上顯示出來。在App Inventor中,在設計器中為應用添加組件,等同于在設備上構建應用。這樣一來,你可以隨時看到應用的外觀,這就是所謂的實時測試,你很快就會看到,這樣的測試也同樣適用于在塊編輯器中為組件添加行為。 ### **添加Button(按鈕)組件** HelloPurr應用中的貓咪用Button組件來實現:創建一個普通Button,然后將Button的圖像更改為貓咪。在組件設計器(Designer)的組件面板(Patatte)中單擊Button(在列表的頂部),將它拖到預覽窗口(Viewer)中,置于Label下方。你會看到一個矩形按鈕出現在預覽窗口中。幾秒鐘后,該按鈕就會出現在Android設備上。試著輕擊設備上的按鈕,有什么反應嗎?不會的,因為應用沒有向Button發布命令。這是理解App Inventor的第一個要點:添加到設計器中的組件,必須在塊編輯器中創建相應的程序,才能使組件產生某種行為(在設計器中添加一個組件之后要做這件事)。 我們希望當點擊這個Button時,它會發出貓叫聲,但我們希望這個button開起來相隔小貓,而不是一個普通的方塊,因此需要為button設置圖片: 1\. 首先,需要下載的小貓的圖片,并保存在你的電腦上。從kitty.png下載名為kitty.png的圖片文件(png是與jpg、gif等類似的標準圖像格式,在App Inventor中,所有這些都是有效的文件類型,與常用的標準聲音文件.mpg或.mp3一樣),同時從meow.mp3下載聲音文件(選擇“網頁另存為”來保存聲音文件)。 2\. 在預覽窗口中點擊該按鈕,屬性框中將顯示其屬性。點擊中部Image屬性(現在顯示的是None)。顯示“Upload File…”按鈕。 3\. 點擊“Upload File…”按鈕,再單擊彈出窗口中的“選擇文件”按鈕,瀏覽并選擇之前下載的文件kitty.png,然后單擊確定。 4\. 幾秒鐘之后,kitty.png被列為Button的Image屬性的選項,單擊“OK”。與此同時,ketty.png也出現在設計器窗口組件列表下面的Media區域中。在測試設備中,也將顯示貓咪的圖片,此時按鈕看起來像一只小貓咪。 5\. 注意到貓咪的圖片上顯示文字“Text for Button1”,我們不希望在應用中看到這些,因此將Button1的Text屬性改為“寵物小貓”一類的文字,或者干脆刪除所有文字。 現在設計器看起來如圖1-6。 ![{%}](https://box.kancloud.cn/2015-08-31_55e3d2e29d5c0.png) **圖 1-6 應用中的一個Label和一個顯示為圖像的Button** ### **添加貓叫聲** 我們希望當點擊按鈕時,應用會發出貓叫聲。為此需要添加貓叫的聲音文件,并通過設定Button的行為來實現這一功能: 1\. 如果meow.mp3文件尚未下載,現在點擊鏈接meow.mp3下載; 2\. 在左側的組件面板中,單擊Media類的標題打開Media組件列表。向預覽窗口中拖放一個Sound組件。無論你把它放在哪里,它都會出現在預覽窗口的底部,并被標記為“Non-visible components(非可視組件)”。非可視組件在應用中發揮特定作用,但不會顯示在用戶界面中; 3\. 點擊Sound1以顯示其屬性。設置其Source屬性為meow.mp3。同貓咪圖片一樣,需要從電腦中加載這個聲音文件。加載完成后,Media列表中將出現kitty.png與meow.mp3兩個文件。表1-1中列出了現有的組件。 **表1-1 HelloPurr中的組件** | 組件類型 | 面板中分組 | 命名 | 作用 | | --- | --- | --- | --- | | Button | User | Interface | Button1點擊發出貓叫聲 | | Label | User Interface| Label1 | 顯示文本“寵物小貓” | | Sound| Medi |undefined | Sound1播放貓叫聲| ## **添加組件行為** 剛剛添加了Button、Label、以及Sound組件來構建我們的第一個應用,現在使用塊編輯器來實現點擊Button產生貓叫聲的功能。單擊設計器右上角的“Blocks”按鈕切換到塊編輯器。 在塊編輯器窗口中,可以為組件設定行為:做什么以及何時做。此處是讓小貓按鈕在用戶點擊它時播放聲音。如果把組件比作菜譜中的原料,那么塊(Blocks)則相當于烹飪過程說明。 ### **發出貓叫聲** 在塊編輯器窗口的左側,“Blocks”標題下面,可以看到許多分屬不同類別的按鈕,其中包括了我們在設計器中創建的所有組件:Screen1、Button1、Label1以及Sound1,點擊它們就像打開抽屜,將看到一組適用于該組件的可選程序塊(Blocks)。點擊Button1打開抽屜,顯示了與Button有關的程序塊,可以用它們來設置Button的行為,最上面的Block就是Button1.Click,如圖1-7所示。 ![{%}](https://box.kancloud.cn/2015-08-31_55e3d2e364171.png) **圖 1-7 點擊Button1時顯示適用于Button組件的程序塊(Blacks)** 單擊標有Button1.Click的塊并將其拖到工作區。注意,Button1.Click這個塊上包含了when。凡是包含when的塊都被稱為事件處理程序,用來定義當組件上發生了某種特定事件時,應用該做什么。在本例中,當用戶點擊貓咪(其實是按鈕)時發生了有趣的事情,如圖1-8所示。下面我們將在程序中添加一些塊,來響應發生的事件。 ![{%}](https://box.kancloud.cn/2015-08-31_55e3d2e4057d9.png) **圖 1-8 定義“Button.Click”塊來響應用戶的點擊事件** 在塊編輯器中點擊Sound1打開抽屜,拖出“call Sound1.Play”塊(之前將Sound1的Source屬性設置為meow.pm3)。注意,塊“call Sound1.Play”的形狀恰好可以嵌入Button1.Click塊中標有“do”的缺口。App Inventor的這種設置,確保只有特定的塊可以組合在一起,這樣確保了連在一起的塊可以協同工作。標有call的塊用來定義組件的行為。在本例中,這兩個塊結合在一起,構成一個單元,如圖1-9,兩個塊連接到一起時,你會聽到“啪”的一聲。 ![](https://box.kancloud.cn/2015-08-31_55e3d2e4b1164.png) **圖 1-9 點擊按鈕將播放貓叫聲** 不同于傳統的程序代碼(通常像混亂的“天書”一般),在App Inventor中,Blocks拼出了行為。在本例中,我們等于說,“嘿,App Inventor,當有人點擊小貓時,播放貓叫聲。” > ![](https://box.kancloud.cn/2015-08-31_55e3d2e528d12.png) 測試:讓我們通過檢查來確保一切正常——每當向應用中添加了新東西,就要進行測試,這非常重要。在測試設備上點擊該按鈕(或在模擬器上單擊它)。你應該聽到貓叫聲。恭喜你,你的第一個應用跑起來了!。 ### **添加震動效果** 當點擊按鈕時,讓貓咪發出“Purr”聲和“meow”聲,這里用手機的振動來模擬“Purr”聲。這聽起來很難,其實非常容易,因為播放“meow”聲音組件也可以使設備產生振動。App Inventor可以幫助你挖掘設備的核心功能,而無需考慮它們如何實現振動。現在只需要向“Button1.click”塊內添加第二個行為: 1\. 進入塊編輯器,單擊Sound1打開抽屜; 2\. 選擇call Sound1.Vibrate塊,將其拖動到when Button1.Click 塊內,置于call Sound1.Play塊下,恰好與原來的塊吻合;如果不吻合,可嘗試拖動它,使call Sound1.Vibrate塊頂部的凹陷恰好與call Sound1.Play塊底部的凸起相對。 ![{%}](https://box.kancloud.cn/2015-08-31_55e3d2e584aac.png) **圖 1-10 Click事件引發了播放聲音及振動** 3\. 注意:在call Sound1.Vibrate塊的右下角寫著millisecs(毫秒)。塊上的開放插槽表示需要插入其他塊,來設定行為的具體方式。本例中,需要設定call Sound1.Vibrate塊的振動時長。以毫秒(千分之一秒)為單位輸入時長,毫秒是多數編程語言中慣用的時長單位。如果想讓設備振動半秒鐘,需要輸入數字塊“500”。打開Math(數學)抽屜,其中的第一個塊是“0”,這就是數字塊,如圖1-11所示。 ![](https://box.kancloud.cn/2015-08-31_55e3d2e5ecf82.png) **圖 1-11 打開Math抽屜** 4\. 點擊“0”塊,藍色的“0”塊留在了工作區,如圖1-12所示。 ![{%}](https://box.kancloud.cn/2015-08-31_55e3d2e67c733.png) **圖 11-12 選擇一個數字塊(0為默認值)** 5\. 點擊數字0,輸入新值“500”,如圖1-13所示。 ![{%}](https://box.kancloud.cn/2015-08-31_55e3d2e6d5a78.png) **圖 11-13 將默認值0改為500** 6\. 將“500”數字塊插入call Sound1.Vibrate塊右側的插槽內,如圖1-14所示。 ![{%}](https://box.kancloud.cn/2015-08-31_55e3d2e7400d0.png) **圖 1-14 將數字塊500插入插槽** > ![](https://box.kancloud.cn/2015-08-31_55e3d2e528d12.png) 測試:試試吧!點擊設備上的按鈕,你會感覺到半秒鐘的嘟嘟聲(震動)。 ### **搖晃手機** 現在來添加最后一項,在Android設備上實現一個很酷的功能:搖晃設備時發出貓叫聲。為此要用到AccelerometerSensor(加速度傳感器)組件,它可以檢測到設備的搖晃或移動。 1\. 在設計器中,展開組件面板中的傳感器(Sensors)分類,拖出一個AccelerometerSensor(加速度傳感器)組件。不必介意把它放到哪里,像任何非可視化組件一樣,無論你把它放在預覽窗口的什么地方,它都會落到預覽窗口底部的“非可視組件”區域。 2\. 搖晃設備的事件需要與單擊按鈕事件分開處理。這意味著需要一個新的事件處理程序。進入塊編輯器,打開AccelerometerSensor1抽屜,拖出AccelerometerSensor1.Shaking塊。 3\. 像點擊按鈕時播放聲音一樣,將Sound1.Play塊插入AccelerometerSensor1.Shaking插槽,搖動設備試試看。圖1-15顯示了完整的HelloPurr應用中所用的塊。 ![{%}](https://box.kancloud.cn/2015-08-31_55e3d2ece2207.png) **圖 1-15 HelloPurr應用中的塊** ## **將應用打包以供下載** App Inventor是一種云計算工具,這意味著你用谷歌的在線服務器存儲你的應用。所以當關閉App Inventor,再重新返回時,你的應用還在;你不必在個人電腦上保存任何東西,像Word文件或音樂文件那樣。此外,如果連接了測試設備,無需向設備下載任何文件,就可以輕松地測試應用(稱為實時測試);但問題是,如果設備與App Inventor斷開連接,那么應用將停止運行。由于從未在設備上安裝過應用,因此無從找到應用的圖標。 可以將應用下載并安裝到Android設備上,以便在不連接計算機時,應用也能運行。首先,確保設備允許從Android Market以外的地方下載應用。具體做法是:在設備上選擇“設置→安全”,并勾選Unknown Source(未知來源)一項。然后回到App Inventor設計器中,單擊Build?App(provide QR code for .apk),此時窗口中出現一個進度條,這個過程大約需要一分鐘。進度消失后,幾秒鐘后,會顯示打包應用的QR碼。用條碼掃描軟件獲取QR碼之后,設備會提示輸入谷歌帳戶的密碼(如果設備之前登陸過google賬戶,此步驟不會出現);密碼輸入后,應用被下載到設備上。如果你的設備中沒有條碼掃描軟件,去Google Play搜索并下載安裝一個。下載完成后,會詢問你是否安裝,請單擊安裝。(如果設備上已經安裝了MIT AI2 Companion,用其中的條碼掃描功能,可以順利實現應用的下載安裝。) 安裝完成后,設備上出現HelloPurr應用的圖標——這就是我們剛剛創建的應用,點擊讓它開始運行。(請確保運行的是新安裝的應用,而不是之前與App Inventor連接的應用。)現在,你可以斷開連接甚至重新啟動設備,并刪除App Inventor中的所有應用,而新應用依然存在。 了解這一點很重要:打包的應用已經與App Inventor中的項目分離。你還可以像之前一樣,繼續在App Inventor中完善你的應用,并在測試設備上使用AI伴侶做實時測試,但這些都不會改變已經安裝在設備上的應用。如果在App Inventor中對應用進行了修改,那么修改結果必須重新打包,并下載安裝新版本來替換設備上的原有版本。 馬上用Android設備下載安裝HelloPurr應用吧,這樣,你就可以與家人和朋友一起分享了! ## **分享應用** 有兩種方式可以分享應用:第一,分享可運行的應用。在App Inventor項目中單擊Build?App(save .apk to my computer),此操作將擴展名為apk的文件保存到電腦。將apk文件上傳到web上,讓其他人可以下載并安裝。需要強調的是,設備的安全設置中“未知來源”一項必須選中,才能安裝來源于Android Market之外的應用。 第二,與其它App Inventor開發者共享應用的代碼塊:點擊Project?My Projects,選中要共享的應用(本例中是HelloPurr),選擇project→Export selected project (.aia) to my computer。此操作將擴展名為aia的文件(HelloPurr.aia)保存到電腦上默認的下載文件夾中。可以用電子郵件把文件發給其他人,他們打開App Inventor,選擇Project→Import project,并選擇.aia文件。這樣,使用者獲得了該應用的完整備份,對此備份的任何修改,都不會影響原有版本。 共享應用的過程非常簡單,更多有趣的作品在網站gallery.appinventor.mit.edu的分享社區中。 ## **改進** 現在,應用已經完成,并可以隨時運行它(或許還能下載與人分享),也許還會感到什么地方有些欠缺。來看看下面的問題,并思考如何解決它們。隨著學習的進展你會發現,通常是先創建一個應用,之后設法改進、完善它,并重新回到程序中來實現你的新想法。不必擔心,這很好,這正是一名優秀開發者的必經之路! * 當搖晃設備時,貓的叫聲聽起來有點兒奇怪,好像有回聲。這是因為在1秒鐘內,加速度傳感器多次觸發搖動事件,所以貓叫聲是重疊的。你會發現Sound組件有一個屬性Minimum interval(最小間隔),它決定了兩次聲音播放之間的時間間隔。當前設置為400毫秒(約半秒鐘),這個間隔小于單次貓叫的持續時間(500毫秒)。通過改變播放的最小間隔,可以改變聲音的重疊。 * 如果你帶著安裝了應用的手機到處走動,每當你突然移動時,設備就會發出貓叫聲,這可能讓你覺得尷尬。通常Android應用會保持在運行狀態,即使你不去管它們,應用程序與加速度傳感器之間的通信也不會間斷,因而貓叫聲也會相繼傳來。要想真正退出程序,需要呼出HelloPurr應用并按下設備上的菜單按鈕,會呼出兩個選項,其中stop this application用來停止并完全關閉應用。 ## **小結** 以下是本章中涵蓋的內容: * 創建應用的過程:在組件設計器中選擇組件,并在塊編輯器中設定它們的行為——做什么及何時做; * 有些組件是可見的,有些則不可見。可見組件會出現在應用的用戶界面中;不可見組件執行像播放聲音這類的事情; * 通過在塊編輯器中組裝“塊”來定義組件的行為。先拖出一個像when Button1.doClick這樣的事件處理程序,然后將call Sound.Play這樣的命令塊嵌入其中。這樣,當用戶點擊該按鈕時,塊Button1.Click中的所有塊(命令)都將被執行; * 有些塊(命令)需要附加特定信息才能起作用。例如震動就必須設定振動的毫秒數。這些值被稱為參數。 * 數字塊用來表示數字。你可以將這些數字塊插入到需要參數的命令塊中。 * App Inventor提供傳感器組件,加速度傳感器(Accelerometer Sensor)可以檢測到設備的移動。 * 你可以將創建完成的應用打包并下載到手機上,它們將獨立于App Inventor而運行。 ## **擴展閱讀** ### **MIT** ![](https://box.kancloud.cn/2015-08-31_55e3d2ed77a8a.png) **麻省理工學院(Massachusetts Institute of Technology)** MIT成立于1861年,校園坐落與美國馬薩諸塞州的劍橋市(Cambridge),是一所私立的研究型大學。1934年入選美國大學學會(AAU:Association of American Universities),是全球最負盛名的學府之一。 **MIT校訓** Mind and Hands(手腦并用) **MIT的使命** 在科學、技術及其他學術領域中,推動知識的進步,培養教育學生,力求在21世紀更好地服務于國家及世界。 MIT致力于知識的形成、傳播以及保護,并利用這些知識,與全人類共同面對未來世界的巨大挑戰。MIT利用各種各樣的校園社團,來激發學生的智慧,并提供相應的支持,將嚴謹的治學態度與積極地探索精神相結合,并將其融入到學生的培養教育之中。力爭發展每位社團成員的能力與熱情,使他們著眼于整個人類的進步,并進行富有遠見、創造性及富有成效地工作。 ### **EECS** ![{%}](https://box.kancloud.cn/2015-08-31_55e3d2edf0c4a.png) **電子工程與計算機科學系(Electrical Engineering and Computer Science Department)** **EECS格言** EECS無處不在(EECS is everywhere)。 我們兼具科學的嚴謹、工程的動力以及發現的震撼。我們的學生改變著世界。 ### **IEEE** ![](https://box.kancloud.cn/2015-08-31_55e3d2f36804a.png) 電氣電子工程師學會(Institute of Electrical and Electronics Engineers),創立于1963年,是世界上最大的國際性專業技術組織之一,擁有來自175個國家的36萬名會員。其定位于科學和教育,工作方式有科學期刊、學術會議、工業標準的開發、課程授權等。常見的IEEE標準如快速以太網標準:IEEE 802.3u。 ### **ACM** ![{%}](https://box.kancloud.cn/2015-08-31_55e3d2f3cb8e1.png) 計算機協會(Association of Computing Machinery),創立于1947年,是世界性的計算機從業員專業組織,面向研究與教育,工作方式為專業期刊、興趣小組及設立獎項。主要期刊為《計算機學會通訊(Communications of the ACM)》,在全球有35個興趣小組,設立了8個獎項,其中的圖靈獎相當于計算機界的諾貝爾獎。 ### **OER** ![](https://box.kancloud.cn/2015-08-31_55e3d2f42ed25.png) 開放教育資源(Open Educational Resources):將文檔、媒體等實用的教學資源向以教學、評估及研究為目的使用者免費開放。這是教育資源開發的基本特征,它源于人們試圖抑制知識商品化的愿望。MIT作為開放運動的先鋒,開放了許多優秀的[視頻課程](http://ocw.mit.edu/courses/audio-video-courses/),英語好的同學真是有福了。 ## **譯者提示** 本章非常重要,一個簡單的例子,貫穿了一個完整的開發過程,從界面設計到代碼編制,從開發環境到測試設備,從普通媒體(圖片)到手機特有的搖晃、震動。對于初學者,這是一個幸福的開端 ## **資源下載** [kitty.png](http://www.17coding.net/download/1/kitty.png) [meow.mp3](http://www.17coding.net/download/1/meow.mp3) [HelloPurr.aia](http://www.17coding.net/download/1/HelloPurr.aia) [AI伴侶](http://www.17coding.net/download/MITAI2Companion.apk)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看