APPENDIX { :Mylocks} -1 asic 基 本 元 件 428-2 Media Component 多 媒 體 元 件 454-3 Animation 動 畫 元 件 462-4 Social Components 通 訊 元 件 471-5 Sensor 感 應 器 元 件 489-6 Screen Arrangement 螢 幕 排 列 元 件 495-7 LEGO MINDSTORMS 樂 高 機 器 人 控 制 元 件 499-8 Other Components 其 他 元 件 520 427
-1 asic 基 本 元 件 utton Canvas Checkox Clock Image Label ListPicker PasswordTextox Screen Textox TinyD 圖 形 功 能 按 鈕 元 件 可 在 程 式 中 設 定 特 定 的 觸 碰 動 作 按 鈕 可 知 道 使 用 者 是 否 正 在 按 它 您 可 自 由 調 整 按 鈕 的 各 種 外 觀 屬 性, 或 使 用 Enabled 屬 性 決 定 按 鈕 是 否 可 以 被 點 擊 屬 性 utton 按 鈕 ackgroundcolor 文 字 背 景 顏 色 Enabled 如 果 本 項 屬 性 設 定 為 真, 則 按 鈕 可 被 點 選, 反 之 則 無 法 點 選 Fontold 文 字 為 粗 體 FontItalic 文 字 為 斜 體 428
FontSize 文 字 字 體 大 小 FontTypeFace 按 鈕 文 字 的 字 體 種 類 Height 按 鈕 高 度 utton 按 鈕 Width 按 鈕 寬 度 Image 圖 片 顯 示 在 按 鈕 上 Text 設 定 文 字 顯 示 Alignment 設 定 對 齊 方 式 ( 左 中 右 ) TextColor 設 定 文 字 顏 色 Click() 使 用 者 點 擊 和 放 開 按 鈕 時 呼 叫 本 事 件 事 件 429
GotFocus() 當 指 頭 移 到 按 鈕 之 上, 代 表 現 在 可 以 點 選 本 按 鈕 時 呼 叫 本 事 件 utton 按 鈕 LostFocus() 當 指 頭 移 出 按 鈕, 代 表 不 能 點 選 本 按 鈕 時 呼 叫 本 事 件 圖 形 Canvas 畫 布 功 能 畫 布 為 一 矩 形 區 域, 可 在 其 中 執 行 繪 畫 等 觸 碰 動 作 或 設 定 動 畫 在 Designer 或 locks Editor 中 皆 可 設 定 畫 布 背 景 顏 色 塗 料 顏 色 背 景 圖 片 圖 片 寬 和 高 等 屬 性, 注 意 寬 和 高 的 單 位 為 像 素 必 須 為 正 值 畫 布 上 的 任 何 位 置 皆 有 一 特 定 座 標 (X,Y) 值, 其 中 : X 為 座 標 點 距 離 畫 布 左 緣 之 距 離, 單 位 為 像 素 Y 為 座 標 點 距 離 畫 布 上 緣 之 距 離, 單 位 為 像 素 您 可 用 畫 布 提 供 的 事 件 來 判 斷 畫 布 是 否 被 觸 摸 或 是 動 畫 物 件 是 否 正 在 被 拖 動 另 外 也 提 供 了 畫 點 線 和 圓 的 方 法 屬 性 ackgroundcolor 設 定 畫 布 背 景 顏 色 ackgroundimage 設 定 背 景 圖 片 430
Height 畫 布 高 度 LineWidth 畫 線 時 的 寬 度 PaintColor 畫 線 時 的 顏 色 Canvas 畫 布 Visible 本 項 需 設 為 真, 才 能 在 螢 幕 上 看 到 本 元 件 Width 畫 布 寬 度 事 件 Dragged(number startx, number starty, number prevx, number prevy, number currentx, number currenty, boolean draggedsprite) 當 使 用 者 用 手 指 頭 拖 拉 時, 觸 控 點 會 由 (prevx, prevy) 移 到 (currentx, currenty), 當 下 的 座 標 點 皆 是 (currentx, currenty) (startx, starty) 這 組 座 標 代 表 使 用 者 第 一 次 觸 碰 螢 幕 時 的 那 一 點 "draggedsprite" 代 表 指 定 動 畫 元 件 正 被 使 用 者 拖 拉 中 431
Touched(number x, number y, boolean touchedsprite) 當 使 用 者 點 擊 畫 布 時, 回 傳 (x,y) 座 標 代 表 使 用 者 所 點 擊 的 位 置 如 果 TouchedSprite 值 為 真 代 表 某 個 動 畫 元 件 也 正 好 在 此 位 置 方 法 Clear 清 除 畫 布 上 的 各 種 塗 鴉 如 果 畫 布 有 背 景 圖 片 的 話, 本 方 法 不 會 清 除 背 景 圖 片 Canvas 畫 布 DrawCircle(number x, number y, number r) 在 畫 布 上 指 定 座 標 處 (x, y) 繪 製 一 實 心 圓 形, 需 指 定 其 半 徑 r DrawLine(number x1, number y1, number x2, number y2) 在 畫 布 上 畫 出 一 條 直 線, 起 始 點 (x1, y1), 終 點 (x2, y2) DrawPoint(number x, number y) 在 畫 布 上 指 定 座 標 處 (x, y) 畫 出 一 個 點 Save 將 畫 布 當 下 狀 態 存 成 一 張 圖 檔, 並 儲 存 於 Android 裝 置 的 外 部 儲 存 空 間 (SD 記 憶 卡 ), 接 著 回 傳 該 檔 案 的 完 整 路 徑 如 果 發 生 錯 誤 時, 會 由 Screen 元 件 的 ErrorOccurred 事 件 來 處 理 432
SaveAs 將 畫 布 當 下 狀 態 存 成 一 張 圖 檔, 並 儲 存 於 Android 裝 置 的 外 部 儲 存 空 間 本 方 法 需 指 定 存 檔 檔 名, 並 必 須 加 上 副 檔 名 為.JPEG.JPG 或.PNG 其 中 之 一 本 方 法 一 樣 會 回 傳 儲 存 檔 案 的 完 整 路 徑 DrawText 在 指 定 座 標 處 (x, y) 顯 示 文 字 text 內 容 Canvas 畫 布 DrawTextAtAngle 在 指 定 座 標 處 (x, y) 顯 示 文 字 text 內 容, 並 指 定 旋 轉 角 度 angle angle 為 數 字 型 態, 代 表 逆 時 針 旋 轉 的 角 度, 從 0 開 始 為 水 平 GetPixelColor 擷 取 指 定 座 標 處 (x, y) 的 顏 色, 回 傳 值 為 數 字, 代 表 該 處 顏 色 的 色 碼 GetackGroundPixelColor 擷 取 指 定 座 標 處 (x, y) 的 顏 色, 回 傳 值 為 數 字, 代 表 該 處 顏 色 的 色 碼 本 指 可 擷 取 包 含 了 Canvas 畫 布 上 大 部 份 元 件 的 顏 色, 包 含 點 線 與 圓 圈, 但 不 包 含 動 畫 元 件 SetackGroundPixelColor 設 定 指 定 座 標 處 (x, y) 的 顏 色, 本 指 與 DrawPoint 指 不 同 之 處 在 於 本 指 可 以 指 定 顏 色,DrawPoint 指 則 無 法 指 定 顏 色 433
圖 形 功 能 Checkbox 元 件 可 以 檢 查 使 用 者 是 否 點 選 了 它 並 以 一 個 布 林 狀 態 來 代 表 自 己 是 否 被 點 選 當 使 用 者 點 選 Checkbox 元 件 會 呼 叫 一 事 件 來 處 理 後 續 動 作 我 們 可 以 在 Designer 或 locks Editor 中 設 定, 有 許 多 屬 性 可 以 改 變 Checkbox 元 件 的 外 觀 屬 性 ackgroundcolor 設 定 背 景 顏 色 Check box 檢 查 方 塊 Checked 本 項 如 果 為 真, 代 表 使 用 者 已 點 選 本 Checkbox 元 件 Enabled 如 果 設 定 為 真, 則 可 使 用 本 元 件 Height 元 件 高 度 (y 軸 像 素 ) Width 元 件 寬 度 (x 軸 像 素 ) Text 設 定 顯 示 文 字 434
TextColor 設 定 文 字 顏 色 Visible 本 項 需 設 為 真, 才 能 在 螢 幕 上 看 到 本 元 件 事 件 Check box 檢 查 方 塊 Changed Checkox 點 擊 狀 態 改 變 時 ( 使 用 者 點 擊 或 取 消 點 擊 ) 呼 叫 本 事 件 GotFocus 當 指 頭 移 到 Checkox 之 上, 代 表 現 在 可 以 點 選 本 元 件 時 呼 叫 本 事 件 LostFocus 當 指 頭 移 出 Checkox, 代 表 不 能 點 選 本 元 件 時 呼 叫 本 事 件 圖 形 Clock 時 鐘 功 能 Clock 元 件 可 產 生 一 個 計 時 器, 定 期 發 起 某 個 事 件 它 也 可 進 行 各 種 時 間 單 位 的 運 算 與 換 算 Clock 元 件 的 主 要 用 途 之 一 就 是 計 時 器 (timer) 設 定 時 間 區 件 之 後, 計 時 器 就 會 定 期 觸 發, 因 而 呼 叫 timer 事 件 Clock 元 件 的 第 二 個 用 途 是 進 行 時 間 的 各 種 運 算, 並 以 不 同 單 位 來 表 達 時 間 Clock 元 件 所 使 用 的 內 部 時 間 格 式 稱 為 instant Clock 元 件 的 Now 方 法 可 以 將 現 在 的 時 間 以 instant 來 回 傳 Clock 元 件 提 供 了 許 多 方 法 來 操 作 instant, 例 如 回 傳 一 個 短 短 數 秒 鐘 或 長 達 數 月 數 年 的 instant 此 外 它 還 提 供 了 多 種 時 間 顯 示 方 法, 以 指 定 instant 的 方 式 來 顯 示 秒 分 鐘 小 時 天 435
屬 性 TimerInterval 時 間 區 間, 單 位 為 毫 秒 TimerEnabled 本 項 需 設 定 為 真, 才 可 觸 發 計 時 器 TimerAlwaysFires 本 項 如 果 為 真, 即 便 App Inventor 程 式 沒 在 螢 幕 前 端, 計 時 器 依 然 會 繼 續 觸 發 Clock 時 鐘 Timer() 計 時 器 觸 發 時 呼 叫 本 事 件 事 件 方 法 SystemTime() Android 裝 置 的 內 部 系 統 時 間, 單 位 為 毫 秒 Now() 從 Android 裝 置 的 clock 所 讀 取 的 當 下 現 在 時 間 MakeInstant(Text from) 以 MM/DD/YYYY hh:mm:ss MM/DD/YYYY 或 hh:mm 等 時 間 格 式 來 產 生 一 個 instant 436
MakeInstantFromMillis(Number millis) 以 指 定 毫 秒 數 來 產 生 一 個 instant GetMillis(instant) 從 1970 年 1 月 1 日 0:00 開 始 累 計 的 時 間, 單 位 為 毫 秒 AddSeconds(instant, Number seconds) 在 指 定 instant 後 加 上 指 定 的 秒 數 Clock 時 鐘 AddMinutes(instant, Number minutes) 在 指 定 instant 後 加 上 指 定 的 分 鐘 數 AddHours(instant, Number hours) 在 指 定 instant 後 加 上 指 定 的 小 時 數 AddDays(instant, Number days) 在 指 定 instant 後 加 上 指 定 的 天 數 AddWeeks(instant, Number weeks) 在 指 定 instant 後 加 上 指 定 的 周 數 437
AddMonths(instant, Number months) 在 指 定 instant 後 加 上 指 定 的 月 數 AddYears(instant, Number years) 在 指 定 instant 後 加 上 指 定 的 年 數 Clock 時 鐘 Duration(Calendar start, Calendar end) 兩 個 instant 之 間 的 時 間 差, 單 位 為 毫 秒 Second(Calendar instant) 一 分 鐘 之 內 的 秒 數 Minute(Calendar instant) 一 小 時 之 內 的 分 鐘 數 Hour(Calendar instant) 一 天 中 的 小 時 數 DayOfMonth(Calendar instant) 一 個 月 中 的 某 一 天, 由 1 ~ 31 之 間 的 數 字 所 代 表 ( 整 數 ) 438
Weekday(Calendar instant) 一 周 中 的 某 一 天, 由 1 ~ 7 之 間 的 數 來 字 代 表 星 期 一 ~ 星 期 日 ( 整 數 ) WeekdayName(Calendar instant) 回 傳 今 天 是 星 期 幾 ( 文 字 ) Clock 時 鐘 Month(Calendar instant) 月 一 個 月 中 的 某 個 月, 由 1 ~ 12 之 間 的 數 來 字 代 表 1 ~ 12 月 ( 整 數 ) MonthName(Calendar instant) 回 傳 現 在 是 幾 月 ( 文 字 ) Year(Calendar instant) 回 傳 現 在 是 西 元 第 幾 年 ( 整 數 ) FormatDateTime(Calendar instant) 回 傳 一 字 串 代 表 某 instant 的 時 間 日 期 格 式 FormatDate(Calendar instant) 回 傳 一 字 串 代 表 某 instant 的 日 期 格 式 FormatTime(Calendar instant) 回 傳 一 字 串 代 表 某 instant 的 時 間 格 式 439
圖 形 功 能 Image 元 件 可 用 來 顯 示 各 種 影 像 圖 片, 並 可 讓 使 用 者 點 選 或 操 作 Image 元 件 是 用 來 顯 示 圖 片 的 元 件, 您 可 以 在 Designer 或 locks Editor 中 指 定 該 圖 片 的 各 種 屬 性 屬 性 Image 圖 片 Picture 要 在 本 Image 元 件 中 顯 示 的 圖 片 Visible 本 項 需 設 為 真, 才 能 在 螢 幕 上 看 到 本 元 件 Height 元 件 高 度 (y 軸 像 素 ) Width 元 件 寬 度 (x 軸 像 素 ) 圖 形 Label 標 籤 功 能 Label 元 件 可 用 來 顯 示 文 字 Label 元 件 可 顯 示 在 其 Text 屬 性 中 所 指 定 的 文 字 或 者 我 們 可 以 在 Designer 或 locks Editor 來 調 整 文 字 的 各 種 設 定 440
屬 性 ackgroundcolor 設 定 背 景 顏 色 Fontold 設 定 文 字 粗 體 Label 標 籤 FontItalic 設 定 文 字 斜 體 FontSize 設 定 文 字 大 小 FontTypeface 設 定 文 字 字 形 Height 元 件 高 度 (y 軸 像 素 ) Width 元 件 寬 度 (x 軸 像 素 ) Text 設 定 顯 示 文 字 TextAlignment 設 定 對 齊 方 式 ( 左 中 右 ) TextColor 設 定 文 字 的 顏 色 441
Label 標 籤 Visible 本 項 需 設 為 真, 才 能 在 螢 幕 上 看 到 本 元 件 圖 形 功 能 ListPicker 選 取 清 單 使 用 者 可 點 選 ListPicker 元 件 來 選 擇 其 中 的 某 個 項 目, 資 料 型 態 為 字 串 陣 列 當 使 用 者 點 選 ListPicker 元 件 時, 它 會 顯 示 一 串 項 目 讓 使 用 者 來 選 取 ListPicker 元 件 的 項 目 可 在 Designer 或 lock Editor 中 設 定 ElementsFromString 屬 性, 並 以 逗 號 分 隔 並 排 ( 例 如 :choice 1, choice 2, choice) 或 在 locks Editor 中 將 ListPicker 元 件 的 屬 性 指 定 為 某 個 清 單 內 容 其 他 屬 性, 包 括 文 字 對 齊 和 背 景 顏 色 皆 會 影 響 ListPicker 元 件 的 外 觀, 我 們 也 可 設 定 其 是 否 可 以 被 點 選 (Enabled) 屬 性 Selection 所 選 擇 的 清 單 項 目 Items 將 顯 示 ListPicker 元 件 中 的 指 定 清 單 項 目, 項 目 彼 此 以 逗 號 分 隔 ElementsFromString 將 清 單 內 容 指 定 為 ListPicker 元 件 的 項 目 Enabled 本 項 需 設 定 為 真, 才 可 使 用 本 元 件 442
ackgroundcolor 設 定 背 景 顏 色 Fontold 設 定 文 字 粗 體 Fontold 設 定 文 字 斜 體 ListPicker 選 取 清 單 FontSize 設 定 文 字 大 小 FontTypeface 設 定 文 字 字 形 Height 元 件 高 度 (y 軸 像 素 ) Width 元 件 寬 度 (x 軸 像 素 ) Text 設 定 顯 示 文 字 TextAlignment 文 字 對 齊 方 式 ( 左 中 右 ) 443
TextColor 設 定 TextColor Visible 本 項 需 設 為 真, 才 能 在 螢 幕 上 看 到 本 元 件 事 件 AfterPicking() 使 用 者 點 選 ListPicker 中 某 項 目 完 成 後 呼 叫 本 事 件 ListPicker 選 取 清 單 eforepicking() 使 用 者 點 選 ListPicker, 但 還 沒 點 選 某 項 目 時 呼 叫 本 事 件 GotFocus() 當 指 頭 移 到 ListPicker 之 上, 代 表 現 在 可 以 點 選 本 元 件 時 呼 叫 本 事 件 444
LostFocus() 當 指 頭 移 出 ListPicker, 代 表 不 能 點 選 本 元 件 時 呼 叫 本 事 件 圖 形 Screen 螢 幕 功 能 Screen 元 件 不 會 顯 示 在 palette 區 中, 您 需 要 在 Designer 頁 面 中 點 選 Add Screen 來 新 增 Screen 元 件 在 早 期 的 App Inventor 版 本 中, 每 個 程 式 都 只 能 有 一 個 Screen 元 件, 且 都 叫 做 Screen1 現 在 您 可 以 根 據 自 身 的 需 要 來 新 增 Screen 元 件, 不 用 都 塞 在 一 起 了, 是 不 是 很 方 便 呢? ackgroundcolor 設 定 背 景 顏 色 屬 性 Image 設 定 背 景 圖 片 445
ScreenOrientation Unspecified: 螢 幕 會 隨 著 握 持 方 向 而 改 變 Landscape: 螢 幕 會 鎖 定 在 直 向 握 持 方 向 Portrait: 螢 幕 會 鎖 定 在 橫 向 握 持 方 向 icon 當 我 們 要 把 App Invenor 程 式 下 載 到 Android 裝 置 上 時, 可 由 本 屬 性 來 設 定 本 應 用 程 式 的 圖 示, 建 議 使 用 PNG 或 JPG 檔 案, 並 請 先 調 整 圖 檔 解 析 度 為 48 48 注 意 : 使 用 其 它 非 PNG 或 JPG 的 圖 檔 例 如.ico 檔, 可 能 會 使 App Inventor 無 法 順 利 下 載 程 式 Scrollable 本 屬 性 是 在 Designer 中 的 一 個 checkbox, 如 果 點 選, 螢 幕 上 將 會 有 一 個 垂 直 捲 軸, 代 表 可 上 下 捲 動, 應 用 程 式 的 高 度 可 以 超 過 螢 幕 的 實 際 Y 軸 解 析 度 ; 反 之 未 點 選 時, 代 表 應 用 程 式 高 度 被 限 制 設 備 的 螢 幕 Y 軸 解 析 度 Screen 螢 幕 Title 設 定 螢 幕 的 標 題, 就 是 程 式 運 行 時 螢 幕 左 上 角 的 那 一 串 文 字, 一 般 來 說 都 是 Screen1 比 較 常 見 的 做 法 是 將 Title 設 為 本 應 用 程 式 的 檔 名, 當 然 您 也 可 以 好 好 運 用 它, 例 如 讓 它 顯 示 某 些 訊 息 或 是 運 算 結 果 Height 元 件 高 度 (y 軸 像 素 ) Width 元 件 寬 度 (x 軸 像 素 ) 446
事 件 Initialize 應 用 程 式 一 啟 動 時 就 同 步 呼 叫 本 事 件, 本 事 件 可 用 來 初 始 化 某 些 變 數 以 及 執 行 一 些 前 置 性 的 操 作 Screen 螢 幕 ErrorOccurred(component component, text functionname, number errornumber, test message) 應 用 程 式 發 生 錯 誤 時 呼 叫 本 事 件 ErrorOccurred 事 件 可 處 理 的 錯 誤 ( 不 太 多 ) 包 括 : LEGO MINDSTORMS Nxt* 等 元 件 發 生 錯 誤 luetooth 元 件 發 生 錯 誤 Twitter 元 件 發 生 錯 誤 SoundRecorder 元 件 發 生 錯 誤 ActivityStarter 元 件 : 當 StartActivity 被 呼 叫, 但 無 正 確 對 應 之 Activity LocationSensor 元 件 : 當 LatitudeFromAddress 或 LongitudeFromAddress 失 敗 時 Player 元 件 :when 設 置 聲 音 屬 性 失 敗 Sound 元 件 : 當 設 置 聲 音 元 件 屬 性 失 敗 或 當 播 放 功 能 失 敗 時 VideoPlayer 元 件 : 當 設 置 聲 音 屬 性 失 敗 時 發 生 以 上 錯 誤 時, 系 統 將 以 選 單 來 顯 示 錯 誤 碼 與 錯 誤 訊 息 您 可 以 使 用 此 事 件 處 理 器 來 預 先 處 理 各 種 異 於 上 述 的 錯 誤, 這 可 藉 由 檢 查 錯 誤 碼 (errornumber) 並 採 取 適 當 的 行 動 447
圖 形 功 能 當 使 用 者 在 PasswordTextox 元 件 中 輸 入 密 碼 時, 所 有 的 輸 入 都 會 隱 藏 起 來 PasswordTextox 元 件 可 說 與 Textox 元 件 完 全 一 樣, 只 是 會 自 動 隱 藏 使 用 者 的 輸 入 內 容 我 們 可 以 藉 由 PasswordTextox 元 件 的 Text 屬 性 來 存 取 其 內 容 如 果 Text 屬 性 為 空 白, 您 可 以 使 用 Hint 屬 性 來 建 議 使 用 者 應 該 輸 入 的 內 容 Hint 屬 性 會 以 顏 色 較 淡 的 文 字 顯 示 在 PasswordTextox 元 件 中 PasswordTextox 元 件 通 常 和 按 鈕 元 件 搭 配 使 用, 使 用 者 輸 入 密 碼 之 後 按 下 按 鈕 以 執 行 後 續 動 作 屬 性 Password- Textox ackgroundcolor 設 定 背 景 顏 色 Enabled 本 項 需 設 定 為 真, 才 可 使 用 本 元 件 Fontold 設 定 文 字 粗 體 FontItalic 設 定 文 字 斜 體 FontSize 設 定 文 字 大 小 FontTypeface 設 定 文 字 字 形 448
Height 高 (y-size) Width 寬 (x-size) TextAlignment 設 定 文 字 對 齊 方 式 ( 左 中 右 ) TextColor 設 定 文 字 顏 色 Password- Textox Hint 密 碼 提 示 Visible 本 項 需 設 為 真, 才 能 在 螢 幕 上 看 到 本 元 件 GotFocus() 事 件 當 指 頭 移 到 PasswordTextox 之 上, 代 表 現 在 可 以 點 選 本 元 件 時 呼 叫 本 事 件 449
LostFocus() 當 指 頭 移 出 PasswordTextox, 代 表 不 能 點 選 本 元 件 時 呼 叫 本 事 件 圖 形 Textox 功 能 使 用 者 可 在 Textox 元 件 中 輸 入 文 字 Textox 元 件 的 初 始 值 或 是 由 使 用 者 輸 入 的 文 字 是 由 Text 屬 性 所 代 表 如 果 Text 屬 性 為 空 白, 您 可 以 使 用 Hint 屬 性 來 建 議 使 用 者 應 該 輸 入 的 內 容 Hint 屬 性 會 以 顏 色 較 淡 的 文 字 顯 示 在 Textox 元 件 中 Textox 元 件 的 其 它 屬 性 可 用 來 調 整 其 外 觀 ( 例 如 TextAlignment 與 ackgroundcolor) 以 及 是 否 可 使 用 (Enabled) Textox 元 件 通 常 和 按 鈕 元 件 搭 配 使 用, 使 用 者 輸 入 內 容 之 後 按 下 按 鈕 以 執 行 後 續 動 作 如 果 您 需 要 隱 藏 所 輸 入 的 內 容, 請 使 用 PasswordTextox 元 件 屬 性 ackgroundcolor 設 定 背 景 顏 色 Enabled 本 項 需 設 定 為 真, 才 可 使 用 本 元 件, 意 即 是 否 可 輸 入 文 字 Fontold 設 定 文 字 粗 體 FontItalic 設 定 文 字 斜 體 450
FontSize 設 定 文 字 大 小 FontTypeface 設 定 文 字 字 形 NumbersOnly 本 項 如 果 設 定 為 真, 代 表 只 能 輸 入 數 字 Textox Multiline 本 項 如 果 設 定 為 真, 代 表 可 輸 入 多 行 內 容, 使 用 Enter 或 Return 鍵 換 行 Text 設 定 顯 示 文 字 Height 元 件 高 度 (y 軸 像 素 ) Width 元 件 寬 度 (x 軸 像 素 ) TextAlignment 設 定 為 字 對 齊 方 式 ( 左 中 右 ) TextColor 設 定 文 字 顏 色 451
HideKeyboard 隱 藏 螢 幕 鍵 盤 Hint 內 容 提 示 Visible 本 項 需 設 為 真, 才 能 在 螢 幕 上 看 到 本 元 件 Textox 事 件 GotFocus() 當 指 頭 移 到 Textox 之 上, 代 表 現 在 可 以 點 選 本 元 件 時 呼 叫 本 事 件 LostFocus() 當 指 頭 移 出 Textox, 代 表 不 能 點 選 本 元 件 時 呼 叫 本 事 件 452
圖 形 TinyD 微 型 資 料 庫 功 能 TinyD 元 件 可 用 來 儲 存 資 料, 之 後 每 次 運 行 應 用 程 式 時 都 可 使 用 TinyD 元 件 的 資 料 TinyD 元 件 為 一 非 可 視 元 件 由 App Inventor 所 編 寫 的 應 用 程 式 每 次 執 行 時 都 會 重 新 被 初 始 化 如 果 程 式 對 某 個 變 數 進 行 調 整 之 後 退 出 程 式, 則 下 一 次 執 行 程 式 時 該 變 數 的 值 將 恢 復 原 狀 TinyD 對 於 應 用 程 式 來 說 是 一 個 永 久 的 資 料 儲 存 器, 意 即 每 次 程 式 啟 動 時 都 可 以 使 用 它 所 包 含 的 資 料 例 如 您 可 以 保 存 遊 戲 的 最 高 分 排 行 榜, 每 次 玩 遊 戲 時 都 可 顯 示 這 一 筆 資 料 不 同 的 資 料 項 目 是 根 據 標 籤 (tag) 來 儲 存 每 當 儲 存 一 筆 資 料 時, 您 需 要 指 定 這 筆 資 料 的 標 籤 因 此 您 可 依 據 這 個 標 籤 來 取 用 這 筆 資 料 如 果 某 個 標 籤 下 沒 有 任 何 資 料, 則 回 傳 值 為 一 個 空 的 字 串 反 之, 您 可 藉 由 回 傳 值 是 否 為 空 字 串 來 判 斷 某 個 標 籤 下 是 否 有 資 料, 例 如 沒 有 輸 入 任 何 東 西 的 Textox 每 個 應 用 程 式 只 能 有 一 個 資 料 存 儲 區 如 果 您 有 多 個 TinyD 元 件, 它 們 將 使 用 相 同 的 資 料 存 儲 區 如 果 要 使 用 多 個 資 料 存 儲 區, 您 需 要 使 用 不 同 的 金 鑰 (key) 再 者, 每 個 應 用 程 式 都 有 它 專 屬 的 資 料 存 儲 區, 因 此 無 法 使 用 TinyD 元 件 讓 Android 裝 置 上 的 兩 個 不 同 應 用 程 式 彼 此 傳 遞 資 料 屬 性 : 無 事 件 : 無 方 法 StoreValue(Text tag, valuetostore) 在 指 定 標 籤 下 的 儲 存 一 筆 資 料,tag 參 數 必 須 是 為 文 字 字 串 ;valuetostore 可 以 為 字 串 或 清 單 GetValue(Text tag) 取 得 指 定 標 籤 下 的 資 料 如 果 其 下 沒 有 任 何 資 料, 則 傳 回 空 的 字 串 453
-2 Media Component 多 媒 體 元 件 Camera ImagePicker Player Sound VideoPlayer 圖 形 功 能 Camera 元 件 可 呼 叫 Android 裝 置 上 的 相 機 進 行 拍 照 Camera 元 件 為 一 非 可 視 元 件, 它 可 呼 叫 Android 裝 置 上 的 相 機 進 行 拍 照 拍 完 照 之 後, 您 可 從 AfterPicture 事 件 中 的 參 數 找 到 剛 剛 所 拍 照 片 的 檔 案 位 置 您 可 將 這 個 檔 案 位 置 用 於 Image 元 件 的 Picture 屬 性, 將 這 個 Image 的 圖 片 指 定 為 剛 剛 所 拍 的 照 片 TakePicture() 啟 動 Android 裝 置 上 的 相 機 並 進 行 拍 照 屬 性 : 無 Camera 照 相 機 事 件 AfterPicture(text image) 拍 照 完 成 後 呼 叫 本 事 件,image 這 個 字 串 參 數 代 表 剛 剛 所 拍 照 片 儲 存 於 Android 裝 置 中 的 位 置, 可 用 來 呼 叫 這 張 照 片 454
圖 形 Imagepicker 圖 片 選 取 器 功 能 ImagePicker 元 件 可 從 您 的 圖 片 庫 中 選 取 圖 片 ImagePicker 是 一 種 特 殊 的 ListPicker, 專 門 用 來 選 取 圖 片, 其 內 容 會 自 動 指 定 為 模 擬 器 或 Android 裝 置 上 的 圖 片 庫 當 您 點 選 它 之 後, 會 跳 到 Android 裝 置 上 的 圖 片 庫, 請 接 著 選 擇 您 所 需 要 的 圖 片 當 您 選 擇 好 圖 片 之 後,ImagePath 這 個 屬 性 是 用 一 個 字 串 來 代 表 該 圖 片 的 路 徑 您 可 使 用 該 參 數 來 設 定 按 鈕 的 背 景 圖 片 屬 性 ImagePath 使 用 者 所 選 擇 的 圖 片, 以 字 串 回 傳 該 圖 片 的 位 置 ackgroundcolor 設 定 背 景 顏 色 Enabled 本 項 需 設 定 為 真, 才 可 使 用 本 元 件 Fontold 設 定 文 字 粗 體 FontItalic 設 定 文 字 斜 體 FontSize 設 定 文 字 大 小 455
FontTypeface 設 定 文 字 字 形 Image 設 定 背 景 圖 片 Text 設 定 顯 示 文 字 Imagepicker 圖 片 選 取 器 TextAlignment 設 定 文 字 對 齊 方 式 ( 左 中 右 ) TextColor 設 定 文 字 顏 色 Visible 本 項 需 設 為 真, 才 能 在 螢 幕 上 看 到 本 元 件 Height 元 件 高 度 (y 軸 像 素 ) Width 元 件 寬 度 (x 軸 像 素 ) 456
事 件 AfterPicking 使 用 者 點 選 ImagePicker 中 某 項 目 完 成 後 呼 叫 本 事 件 Imagepicker 圖 片 選 取 器 eforepicking 使 用 者 點 選 ImagePicker, 但 還 沒 點 選 某 項 目 時 呼 叫 本 事 件 GotFocus 當 指 頭 移 到 ImagePicker 之 上, 代 表 現 在 可 以 點 選 本 元 件 時 呼 叫 本 事 件 LostFocus 當 指 頭 移 出 ImagePicker, 代 表 不 能 點 選 本 元 件 時 呼 叫 本 事 件 457
Imagepicker 圖 片 選 取 器 Open 方 法 開 啟 Imagepicker, 效 果 同 使 用 者 親 自 點 選 一 樣 圖 形 功 能 Player 元 件 可 播 放 聲 音 或 影 像 檔, 或 使 裝 置 震 動 Player 元 件 為 一 非 可 視 元 件, 可 播 放 聲 音 或 影 像 檔 和 控 制 震 動 手 機 要 播 放 的 檔 案 名 稱 是 從 Source 屬 性 中 設 定, 這 可 以 在 Deisgner 或 lock Editor 中 設 定 震 動 的 時 間 長 度 則 是 在 lock Editor 中 設 定, 單 位 為 毫 秒 請 參 考 http://developer.android.com/guide/appendix/media-formats.html 來 參 考 有 關 檔 案 類 型 的 詳 細 資 訊 Player 元 件 主 要 用 在 播 放 較 長 的 聲 音 / 影 像 檔, 或 使 裝 置 震 動, 如 果 播 放 較 短 的 聲 音 檔 時 請 使 用 Sound 元 件 Player 播 放 器 Source 指 定 要 播 放 的 聲 音 檔 屬 性 Pause 暫 停 播 放 聲 音 或 影 片 方 法 Start 開 始 播 放 聲 音 或 影 片 458
Player 播 放 器 Stop 停 止 播 放 聲 音 或 影 片 Vibrate(number milliseconds) 使 手 機 震 動, 需 指 定 震 動 時 間, 單 位 為 毫 秒 圖 形 Sound 聲 音 功 能 Sound 元 件 可 用 來 播 放 較 短 的 音 效 檔, 或 使 裝 置 震 動 Sound 為 一 非 可 視 元 件, 它 可 用 來 播 放 音 效 檔 和 讓 手 機 震 動 ( 單 位 為 毫 秒 ) 要 播 放 的 音 效 檔 檔 名 可 在 Deisgner 或 lock Editor 中 設 定 請 參 考 http://developer.android.com/guide/appendix/media-formats.html 來 參 考 有 關 檔 案 類 型 的 詳 細 資 訊 Sound 元 件 適 用 於 播 放 較 短 的 聲 音 檔, 如 果 要 播 放 較 長 的 聲 音 檔 例 如 一 首 歌, 這 時 請 使 用 Player 元 件 Source 指 定 要 播 放 的 音 效 檔 屬 性 MinimumInterval 播 放 時 間 長 度, 單 位 為 毫 秒 459
方 法 Pause 暫 停 播 放 音 效 檔 暫 停 播 放 音 效 檔 Play 開 始 播 放 音 效 檔 Sound 聲 音 Resume 回 復 先 前 狀 態 重 新 播 放 已 暫 停 之 音 效 檔 Stop 停 止 播 放 音 效 檔 Vibrate(number millisecs) 使 手 機 震 動, 需 指 定 震 動 時 間, 單 位 為 毫 秒 460
圖 形 功 能 VideoPlayer 元 件 可 用 來 播 放 影 像 檔 VideoPlayer 元 件 是 一 個 可 播 放 影 片 的 多 媒 體 元 件, 它 會 在 裝 置 螢 幕 上 顯 示 為 一 個 矩 形 使 用 者 點 擊 矩 形 時 會 出 現 影 像 控 制 工 具 列 : 播 放 / 暫 停 (play/pause) 跳 回 上 一 個 檔 案 (skip ahead) 與 跳 到 下 一 個 檔 案 (skip backward) 我 們 可 以 在 應 用 程 式 中 藉 由 開 始 (Start) 暫 停 (Pause) 和 跳 到 影 片 檔 中 的 指 定 時 間 (SeekTo) 等 方 法 來 控 制 重 播 相 關 動 作 可 播 放 的 影 像 檔 格 式 可 為 wmv 3gp 或 mp4 等 格 式 有 關 格 式 的 更 多 詳 細 資 訊, 請 參 考 http://developer.android.com/guide/appendix/media-formats.html App Inventor 接 受 的 影 像 檔 最 大 為 1M, 單 一 應 用 程 式 中 所 有 的 影 像 檔 大 小 總 和 不 得 超 過 5M 如 果 您 的 檔 案 太 大, 安 裝 時 可 能 會 發 生 錯 誤, 這 時 請 減 少 影 像 檔 數 量 或 它 們 的 大 小 您 可 以 利 用 Windows Movie Maker 或 蘋 果 的 imovie 等 影 像 編 輯 軟 體 來 剪 接 或 轉 成 其 他 檔 案 格 式 屬 性 Source 指 定 要 播 放 的 影 像 檔 VideoPlayer 影 像 播 放 器 Visible 本 項 需 設 為 真, 才 能 在 螢 幕 上 看 到 本 元 件 方 法 Pause 暫 停 播 放 影 像 檔 Start 開 始 播 放 影 像 檔 461
SeekTo(number millisecs) 跳 到 影 片 檔 中 的 指 定 時 間, 單 位 為 毫 秒 VideoPlayer 影 像 播 放 器 GetDuration 回 傳 影 片 檔 之 時 間 長 度, 單 位 為 毫 秒 Completed 當 影 片 檔 播 放 完 畢 後 呼 叫 本 事 件 事 件 -3 Animation 動 畫 元 件 all ImageSprite 圖 形 功 能 all 球 all 元 件 為 一 球 型 的 特 殊 動 畫 元 件 all 元 件 為 一 可 置 放 於 畫 布 中 的 圓 形 動 畫 元 件, 當 它 被 觸 碰 拖 拉 與 其 他 動 畫 元 件 (ImageSprite 或 all) 互 動 時 或 與 畫 布 邊 緣 接 觸 時, 它 可 根 據 不 同 事 件 執 行 對 應 動 作 all 元 件 也 可 依 照 其 屬 性 自 行 移 動, 例 如 要 讓 一 個 all 元 件 每 500 毫 秒 往 畫 布 上 緣 移 動 4 個 像 素, 您 可 以 設 置 Speed 屬 性 設 為 4,Interval 屬 性 為 500,Heading 屬 性 為 90( 度 ) 和 Enabled 屬 性 為 真, 您 可 以 調 整 這 些 屬 性 來 改 變 球 的 行 為 all 元 件 和 Imagesprite 之 間 的 不 同 就 是 Imagesprite 可 以 透 過 上 傳 圖 檔 來 改 變 其 外 觀, 但 all 元 件 只 能 調 顏 色 (PaintColor) 和 大 小 (Radius) 462
屬 性 Radius 半 徑 球 的 半 徑 PaintColor 畫 筆 顏 色 球 的 顏 色 Enabled 啟 用 本 項 需 設 定 為 真, 球 才 可 移 動 all 球 Interval 時 間 區 間 球 的 移 動 頻 率, 單 位 為 毫 秒 Visible 可 見 的 本 項 需 設 定 為 真, 球 才 能 顯 示 在 螢 幕 上 Heading 方 向 球 的 移 動 方 向 X 球 的 X 座 標 463
Y 球 的 Y 座 標 Speed 速 度 球 每 單 位 時 間 之 移 動 距 離, 單 位 為 像 素 事 件 CollidedWith(component other) 當 兩 個 動 畫 元 件 ( 動 畫 或 球 ) 相 撞 時 呼 叫 本 事 件, 參 數 other 代 表 在 本 次 碰 撞 中 的 另 一 個 元 件 Dragged(number startx, number starty, number prevx, number prevy, number currentx, number currenty) 球 被 拖 移 時 呼 叫 本 事 件, 參 數 說 明 請 參 閱 Canvas 元 件 all 球 464
EdgeReached(number edge) all 球 當 球 與 螢 幕 邊 緣 接 觸 時 呼 叫 本 事 件, 參 數 edge 代 表 球 接 觸 的 位 置, 如 下 所 示 : north = 1, 螢 幕 上 ( 北 ) 緣 northeast = 2, 螢 幕 右 上 ( 東 北 ) 角 east = 3, 螢 幕 右 ( 東 ) 緣 southeast = 4, 螢 幕 右 下 ( 東 南 ) 角 south = -1, 螢 幕 下 ( 南 ) 緣 southwest = -2, 螢 幕 左 下 ( 西 南 ) 角 west = -3, 螢 幕 左 ( 西 ) 緣 northwest = -4, 螢 幕 左 上 ( 西 北 ) 角 請 注 意 相 反 的 方 向 是 彼 此 互 為 相 反 數, 如 右 圖 NoLongerCollidingWith(component other) 當 兩 個 動 畫 元 件 不 再 碰 撞 時 呼 叫 本 事 件 Touched(number x, number y) 當 球 被 點 擊 時 呼 叫 本 事 件 465
方 法 ounce(number edge) 使 球 彈 跳, 就 好 像 真 的 撞 到 牆 或 角 落 一 樣 參 數 和 EdgeReached 事 件 的 參 數 相 同, 因 此 我 們 可 以 利 用 EdgeReached 事 件 讓 球 每 次 碰 到 畫 布 邊 緣 都 會 彈 跳, 讓 球 栩 栩 如 真 地 自 由 彈 跳 boolean CollidingWith(component other) 代 表 球 是 否 和 指 定 元 件 發 生 碰 撞 all 球 MoveIntoounds 如 果 球 跑 出 界 了, 可 利 用 本 方 法 將 它 抓 回 界 內 MoveTo(number x,number y) 讓 球 移 動 到 指 定 點 座 標 PointTowards(component target) 讓 球 轉 向 對 準 指 定 的 目 標 新 的 heading 即 為 兩 個 元 件 中 心 所 構 成 直 線 之 指 向 圖 形 ImageSprite 動 畫 功 能 ImageSprite 元 件 為 一 個 動 畫 物 件, 它 可 和 畫 布 上, 的 球 和 其 他 ImageSprite 進 行 互 動 ImageSprite 元 件 為 一 可 置 放 於 畫 布 中 的 動 畫 物 件, 可 以 回 應 觸 碰 和 拖 拉 事 件, 與 其 他 動 畫 物 件 ( 球 或 其 他 ImageSprite) 和 畫 布 邊 緣 互 動, 或 者 它 可 根 據 屬 性 設 定 來 移 動 例 如 要 讓 一 個 ImageSprite 元 件 每 秒 鐘 往 左 邊 移 動 10 個 像 素, 您 可 以 將 Speed 屬 性 設 為 4,Interval 屬 性 為 1000( 毫 秒 ),Heading 屬 性 為 180( 度 ) 和 Enabled 屬 性 為 真, 您 可 以 自 由 調 整 這 些 屬 性 來 改 變 ImageSprite 的 行 為 466
屬 性 Picture 圖 片 設 定 Imagesprite 元 件 的 圖 片 Enabled 啟 用 本 項 需 設 為 真,Imagesprite 元 件 才 可 移 動 Interval 時 間 區 間 Imagesprite 元 件 的 動 作 頻 率, 單 位 為 毫 秒 ImageSprite 動 畫 Rotates 旋 轉 本 項 如 果 是 真,Imagesprite 元 件 的 圖 片 的 image 會 旋 轉 直 到 對 齊 sprite 的 heading 屬 性 為 止 反 之, 即 便 sprite 的 heading 改 變,image 也 不 會 跟 著 旋 轉 Visible 可 見 本 項 需 設 為 真, 才 能 在 螢 幕 上 看 到 ImageSprite 元 件 Heading 指 向 ImageSprite 的 旋 轉 方 向, 單 位 為 度 0 度 代 表 水 平 指 向 右 ( 東 ) 方 ;90 度 是 朝 上 ( 北 ) 方,180 度 是 左 ( 西 ) 方,270 度 是 下 ( 南 ) 方 X ImageSprite 的 X 座 標,0 為 畫 布 左 緣 467
Y ImageSprite 的 y 座 標,0 為 畫 布 上 緣 Speed 速 度 ImageSprite 每 單 位 時 間 移 動 的 像 素 ImageSprite 動 畫 Width 寬 ImageSprite 的 寬 Height 高 ImageSprite 的 高 事 件 CollidedWith(component other) 當 兩 個 動 畫 元 件 ( 動 畫 或 球 ) 相 撞 時 呼 叫 本 事 件, 參 數 other 代 表 與 它 碰 撞 的 另 一 個 元 件 468
Dragged(number startx, number starty, number prevx, number prevy, number currentx, number currenty) Sprite 被 拖 移 時 呼 叫 本 事 件, 參 數 說 明 請 參 閱 Canvas 元 件 ImageSprite 動 畫 EdgeReached(number edge) 當 ImageSprite 與 螢 幕 邊 緣 接 觸 時 呼 叫 本 事 件, 參 數 edge 代 表 球 接 觸 的 位 置, 如 下 所 示 : north = 1, 螢 幕 上 ( 北 ) 緣 northeast = 2, 螢 幕 右 上 ( 東 北 ) 角 east = 3, 螢 幕 右 ( 東 ) 緣 southeast = 4, 螢 幕 右 下 ( 東 南 ) 角 south = -1, 螢 幕 下 ( 南 ) 緣 southwest = -2, 螢 幕 左 下 ( 西 南 ) 角 west = -3, 螢 幕 左 ( 西 ) 緣 northwest = -4, 螢 幕 左 上 ( 西 北 ) 角 請 注 意 相 反 的 方 向 是 彼 此 互 為 相 反 數 469
NoLongerCollidingWith(component other) 當 兩 個 動 畫 元 件 不 再 碰 撞 時 呼 叫 本 事 件 Touched(number x, number y) 當 ImageSprite 球 被 點 擊 時 呼 叫 本 事 件 ImageSprite 動 畫 方 法 ounce(number edge) 使 ImageSprite 彈 跳, 就 好 像 真 的 撞 到 牆 或 角 落 一 樣 參 數 和 EdgeReached 事 件 的 參 數 相 同, 因 此 我 們 可 以 利 用 EdgeReached 事 件 讓 球 每 次 碰 到 畫 布 邊 緣 都 會 彈 跳, 讓 ImageSprite 栩 栩 如 真 地 自 由 彈 跳 boolean CollidingWith(component other) 代 表 ImageSprite 是 否 和 指 定 元 件 發 生 碰 撞 MoveIntoounds() 如 果 ImageSprite 跑 出 界 了, 可 利 用 本 方 法 將 它 抓 回 界 內 470
MoveTo(number x,number y) 讓 ImageSprite 移 動 到 指 定 點 座 標 ImageSprite 動 畫 PointTowards(component target) 讓 ImageSprite 轉 向 對 準 指 定 的 目 標 新 的 heading 即 為 兩 個 元 件 中 心 所 構 成 直 線 之 指 向 -4 Social Components 通 訊 元 件 ContactPicker EmailPicker PhoneCall PhoneNumberPicker Texting Twitter 圖 形 功 能 ContactPicker 聯 絡 人 選 擇 器 ContactPicker 元 件 可 讓 使 用 者 選 擇 Android 通 訊 錄 的 一 筆 資 料 ContactPicker 元 件 是 一 個 用 來 顯 示 裝 置 上 通 訊 錄 的 按 鈕, 並 可 讓 使 用 者 選 擇 特 定 內 容 當 使 用 者 點 選 之 後, 請 參 考 下 列 屬 性 : ContactName : 聯 絡 人 姓 名 EmailAddress: 聯 絡 人 的 主 要 電 子 郵 件 Picture: 聯 絡 人 大 頭 照, 照 片 property value for the Image or Image Sprite component. 尚 有 其 他 屬 性 可 用 來 設 定 ContactPicker 元 件 之 外 觀, 包 括 文 字 對 齊 背 景 圖 片 以 及 事 件 ( 是 否 可 點 選 ) 471
屬 性 Enabled 設 定 是 否 可 以 使 用 Image 設 定 圖 片 ContactPicker 聯 絡 人 選 擇 器 ackgroundcolor 設 定 背 景 顏 色 ContactName 聯 絡 人 名 稱 EmailAddress 聯 絡 人 的 電 子 郵 件 地 址 Picture 聯 絡 人 的 圖 片 Fontold 設 定 文 字 粗 體 472
FontItalic 設 定 文 字 斜 體 FontSize 設 定 文 字 大 小 FontTypeface 設 定 文 字 字 形 Text 設 定 文 字 顯 示 TextAlignment 設 定 對 其 方 式 ( 左 中 右 ) ContactPicker 聯 絡 人 選 擇 器 TextColor 設 定 文 字 的 顏 色 Visible 本 項 需 設 為 真, 才 能 在 螢 幕 上 看 到 本 元 件 Width 元 件 寬 度 (x 軸 像 素 ) Height 元 件 高 度 (y 軸 像 素 ) 473
事 件 AfterPicking 使 用 者 點 選 ContactPicker 中 某 項 目 完 成 後 呼 叫 本 事 件 代 表 使 用 者 選 取 了 某 位 聯 絡 人 eforepicking 使 用 者 點 選 ContactPicker, 但 還 沒 點 選 某 項 目 時 呼 叫 本 事 件 ContactPicker 聯 絡 人 選 擇 器 GotFocus 當 指 頭 移 到 ContactPicker 之 上, 代 表 現 在 可 以 點 選 本 元 件 時 呼 叫 本 事 件 LostFocus 當 指 頭 移 出 ContactPicker, 代 表 不 能 點 選 本 元 件 時 呼 叫 本 事 件 Open 方 法 開 啟 ContactPicker, 效 果 同 使 用 者 親 自 點 選 一 樣 474
圖 形 功 能 EmailPicker 元 件 可 讓 使 用 者 從 Android 裝 置 上 的 通 訊 錄 輸 入 一 個 電 子 郵 件 信 箱 EmailPicker 元 件 就 是 一 個 textbox, 使 用 者 可 輸 入 研 究 信 一 個 電 子 郵 件 信 箱, 且 支 援 自 動 完 成 功 能 (auto-completion) EmailPicker 元 件 的 初 始 值 與 輸 入 後 的 值 都 可 以 在 Text 屬 性 中 設 定 如 果 Text 屬 性 一 開 始 為 空, 則 會 Hint 屬 性 會 以 顏 色 較 淡 的 文 字 顯 示 在 EmailPicker 元 件 中 其 他 屬 性, 包 括 文 字 對 齊 和 背 景 顏 色 皆 會 影 響 ListPicker 元 件 的 外 觀, 我 們 也 可 設 定 其 是 否 可 以 被 點 選 (Enabled) EmailPicker 元 件 通 常 是 當 作 按 鈕 來 使 用, 使 用 者 輸 入 完 畢 之 後 須 點 選 它 才 能 執 行 後 續 動 作 EmailPicker 電 子 郵 件 選 擇 器 Enabled 本 項 需 設 定 為 真, 才 可 使 用 本 元 件 屬 性 ackgroundcolor 設 定 背 景 顏 色 Fontold 設 定 文 字 粗 體 FontItalic 設 定 文 字 斜 體 FontSize 設 定 文 字 大 小 FontTypeface 設 定 文 字 字 形 475
Text 設 定 顯 示 文 字 TextAlignment 設 定 文 字 對 齊 ( 左 中 右 ) EmailPicker 電 子 郵 件 選 擇 器 TextColor 設 定 文 字 顏 色 Hint 內 容 提 示 Visible 本 項 需 設 為 真, 才 能 在 螢 幕 上 看 到 本 元 件 Height 元 件 高 度 (y 軸 像 素 ) Width 元 件 寬 度 (x 軸 像 素 ) 476
事 件 GotFocus 當 指 頭 移 到 EmailPicker 之 上, 代 表 現 在 可 以 點 選 本 元 件 時 呼 叫 本 事 件 EmailPicker 電 子 郵 件 選 擇 器 LostFocus 當 指 頭 移 出 EmailPicker, 代 表 不 能 點 選 本 元 件 時 呼 叫 本 事 件 圖 形 功 能 PhoneCall 打 電 話 PhoneCall 元 件 可 用 來 撥 打 電 話 PhoneCall 元 件 為 一 非 可 視 元 件, 它 可 向 PhoneNumber 屬 性 中 所 設 定 的 電 話 號 碼 實 際 地 打 一 通 電 話, 這 可 以 在 Designer 或 lock Editor 中 設 定 您 可 以 使 用 MakePhoneCall 方 法 來 從 應 用 程 式 中 撥 打 一 通 電 話 PhoneCall 元 件 通 常 會 和 ContactPicker 元 件 搭 配 使 用, 使 用 者 從 裝 置 上 的 通 訊 錄 選 擇 完 之 後 即 可 將 選 擇 內 容 指 定 為 PhoneCall 元 件 的 PhoneNumber 屬 性 內 容 如 果 您 需 要 直 接 指 定 電 話 號 碼, 請 在 PhoneNumber 屬 性 中 輸 入 正 確 的 號 碼 格 式 ( 例 如 022xxxxxxx 或 09xxxxxxxx) 電 話 號 碼 中 可 包 含 - _ 或 句 號, 這 些 會 自 動 被 忽 略, 但 請 注 意 不 可 包 含 空 格 09XX-XXX-XXX 合 法 格 式 09XX XXX XXX 無 法 辨 識 屬 性 PhoneNumber 要 撥 打 的 電 話 號 碼 477
PhoneCall 打 電 話 MakePhoneCall 方 法 對 PhoneNumber 屬 性 中 指 定 的 電 話 號 碼 撥 打 一 通 電 話 圖 形 PhoneNumber- Picker 電 話 號 碼 選 取 器 功 能 PhoneNumberPicker 元 件 可 讓 使 用 者 從 Android 裝 置 通 訊 錄 中 選 擇 某 個 聯 絡 人 的 電 話 號 碼 當 使 用 者 點 選 PhoneNumberPicker 元 件 時, 螢 幕 會 跳 到 Android 裝 置 通 訊 錄 點 選 完 畢 之 後, 下 列 屬 性 就 會 根 據 所 選 擇 的 聯 絡 人 自 動 完 成 : ContactName: 聯 絡 人 姓 名 PhoneNumber: 所 選 聯 絡 人 的 電 話 號 碼 EmailAddress: 所 選 聯 絡 人 的 主 要 電 子 郵 件 信 箱 Picture: 聯 絡 人 大 頭 照, 這 可 以 當 作 Image 或 ImageSprte 元 件 的 Picture 屬 性 其 他 屬 性, 包 括 文 字 對 齊 和 背 景 顏 色 皆 會 影 響 PhoneNumberPicker 元 件 的 外 觀, 我 們 也 可 設 定 其 是 否 可 以 被 點 選 (Enabled) Enabled 本 項 需 設 定 為 真, 才 可 使 用 本 元 件 屬 性 Image 設 定 顯 示 圖 片 rackgroundcolor 設 定 背 景 顏 色 478
ContactName 選 擇 聯 絡 人 姓 名 EmailAddress 選 擇 聯 絡 人 電 子 郵 件 地 址 PhoneNumber- Picker 電 話 號 碼 選 取 器 PhoneNumber 選 擇 聯 絡 人 的 手 機 號 碼 Picture 選 擇 聯 絡 人 的 照 片 Fontold 設 定 文 字 粗 體 FontItalic 設 定 文 字 斜 體 FontSize 設 定 文 字 大 小 FontTypeface 設 定 文 字 字 形 Text 設 定 顯 示 文 字 479
TextAlignment 設 定 文 字 對 齊 方 式 ( 左 中 右 ) TextColor 設 定 文 字 顏 色 PhoneNumber- Picker 電 話 號 碼 選 取 器 Visible 本 項 需 設 為 真, 才 能 在 螢 幕 上 看 到 本 元 件 Height 元 件 高 度 (y 軸 像 素 ) Width 元 件 寬 度 (x 軸 像 素 ) Open 方 法 開 啟 PhoneNumberPicker, 效 果 同 使 用 者 親 自 點 選 一 樣 AfterPicking 事 件 使 用 者 點 選 PhoneNumberPicker 中 某 項 目 完 成 後 呼 叫 本 事 件 480
eforepicking 使 用 者 點 選 PhoneNumberPicker, 但 還 沒 點 選 某 項 目 時 呼 叫 本 事 件 PhoneNumber- Picker 電 話 號 碼 選 取 器 GotFocus 當 指 頭 移 到 PhoneNumberPicker 之 上, 代 表 現 在 可 以 點 選 本 元 件 時 呼 叫 本 事 件 LostFocus 當 指 頭 移 出 PhoneNumberPicker, 代 表 不 能 點 選 本 元 件 時 呼 叫 本 事 件 圖 形 Texting 簡 訊 功 能 Texting 元 件 可 讓 使 用 者 收 發 簡 訊 當 呼 叫 SendMessage 方 法 時,Texting 元 件 會 對 PhoneNumber 屬 性 中 所 指 定 的 電 話 號 碼 送 出 一 封 簡 訊 ( 簡 訊 內 容 是 在 Message 屬 性 中 設 定 ) 除 非 我 們 將 ReceivingEnabled 屬 性 設 為 false, 不 然 Texting 元 件 可 以 持 續 接 收 文 字 簡 訊 當 收 到 簡 訊 時, 會 自 動 呼 叫 MessageReceived 事 件 並 回 傳 寄 件 人 號 碼 與 訊 息 內 容 Texting 元 件 通 常 會 和 ContactPicker 元 件 搭 配 使 用, 使 用 者 從 裝 置 上 的 通 訊 錄 選 擇 完 之 後 即 可 將 選 擇 內 容 指 定 為 Texting 元 件 的 PhoneNumber 屬 性 內 容 如 果 您 需 要 直 接 指 定 電 話 號 碼, 請 在 PhoneNumber 屬 性 中 輸 入 正 確 的 號 碼 格 式 ( 例 如 022XXXXXXX 或 09XXXXXXXX) 電 話 號 碼 中 可 包 含 - _ 或 句 號, 這 些 會 自 動 被 忽 略, 但 請 注 意 不 可 包 含 空 格 481
屬 性 PhoneNumber 欲 發 送 簡 訊 的 電 話 號 碼 Message 欲 發 送 的 簡 訊 內 容 Texting 簡 訊 ReceivingEnabled 本 項 需 設 為 true,texting 元 件 才 可 以 接 收 簡 訊 事 件 MessageReceived(Text number, Text message Text) 收 到 簡 訊 時 呼 叫 本 事 件, 參 數 number 代 表 寄 件 人 電 話 號 碼,messageText 代 表 簡 訊 內 容 方 法 SendMessage 向 PhoneNumber 屬 性 中 所 指 定 的 電 話 號 碼 發 送 一 封 簡 訊, 簡 訊 內 容 是 在 Message 屬 性 中 設 定 482
圖 形 Twitter 元 件 可 進 行 Twitter 相 關 動 作 功 能 Twitter 元 件 為 一 非 可 視 元 件, 它 可 讓 使 用 者 與 Twitter 進 行 通 訊 主 要 方 法 有 搜 尋 Twitter (SearchTwitter) 與 登 入 (Authorize) 一 旦 使 用 者 登 入 成 功 且 IsAuthorized 事 件 也 確 認 登 入 成 功, 您 就 可 以 使 用 以 下 方 法 : SetStatus: 設 定 使 用 者 本 身 狀 態 DirectMessage: 對 指 定 使 用 者 發 送 訊 息 RequestDirectMessages: 接 收 最 新 的 訊 息 Follower: 追 蹤 指 定 使 用 者 Twitter StopFollowing: 停 止 追 蹤 指 定 使 用 者 RequestFollowers: 取 得 誰 正 在 追 蹤 我 這 份 清 單 RequestFriendTimeline: 取 得 追 蹤 使 用 者 的 最 新 消 息 RequestMentions: 取 得 有 提 到 使 用 者 的 最 新 消 息 一 般 來 說 使 用 上 述 方 法 時, 您 都 可 以 從 對 應 的 事 件 來 取 得 結 果 例 如 使 用 RequestFollowers 方 法 時, 當 追 蹤 者 清 單 實 際 存 在 時 就 會 呼 叫 FollowersReceived 事 件 這 個 動 作 要 用 掉 一 點 時 間, 因 為 資 料 發 送 接 收 都 要 透 過 網 路 另 外 當 您 的 裝 置 沒 有 連 上 網 際 網 路 或 是 Tiwtter 網 站 掛 掉 時, 這 時 可 能 無 法 收 到 任 何 結 果 登 入 Twitter 是 透 過 Twitter API (dev.twitter.com/pages/auth) 所 規 定 的 OAuth 協 定 來 完 成 如 果 您 的 App Inventor 程 式 需 要 以 合 法 使 用 者 的 身 分 進 行 Twitter 相 關 操 作, 則 第 一 件 是 要 先 使 用 Authorize 方 法 這 個 方 法 會 顯 示 Twitter 登 入 頁 面, 使 用 者 只 要 輸 入 正 確 的 帳 號 密 碼 就 可 以 了, 接 著 會 程 式 中 的 Twitter 元 件 就 會 收 到 一 個 認 證 (credential) 一 旦 Twitter 元 件 收 到 這 個 認 證 之 後 就 會 呼 叫 IsAuthorized 事 件, 這 時 應 用 程 式 就 可 以 執 行 Twitter 相 關 的 操 作 了 為 一 個 不 需 要 認 證 就 能 執 行 的 Twitter 元 件 下 的 方 法 就 是 SearchTwitter 一 般 來 說, 應 用 程 式 都 會 保 留 使 用 者 的 登 入 認 證, 所 以 使 用 者 不 需 要 每 次 都 執 行 登 入 動 作 ( 除 非 使 用 者 自 行 登 出 了 Twitter) 重 新 安 裝 這 個 應 用 程 式 將 會 使 用 DeAuthorize 方 法 來 清 除 認 證 使 用 者 之 後 可 以 從 Twitter 網 站 上 的 Setting 頁 面 來 取 消 對 於 應 用 程 式 的 Twitter 授 權 若 要 檢 查 您 的 應 用 程 式 是 否 已 取 得 認 證, 請 使 用 CheckAuthorized 方 法 483
請 注 意 請 注 意 :OAuth 協 定 絕 大 部 分 的 動 作 都 已 經 被 隱 藏 在 Twitter 元 件 中, 您 不 需 要 瞭 解 它 們 也 能 夠 順 利 使 用 Twitter 元 件 但 是, 對 於 任 何 想 要 在 應 用 程 式 中 使 用 Twitter 元 件 的 開 發 者, 都 必 須 提 供 Consumer key 與 Consumer secret 這 兩 項 必 要 資 訊 您 需 要 在 twitter. com/oauth_clients/new 頁 面 中 註 冊 您 的 應 用 程 式, 註 冊 完 成 後 就 可 以 得 到 這 兩 筆 資 料 ( 格 式 為 字 串 ), 如 此 才 能 讓 Twitter 成 功 辨 認 您 的 應 用 程 式 是 否 有 權 限 可 以 進 行 相 關 操 作 在 註 冊 頁 中, 您 需 要 提 供 以 下 資 訊 : Twitter Application name 您 應 用 程 式 的 名 稱, 名 稱 應 為 唯 一 (unique), 當 應 用 程 式 名 稱 並 非 唯 一 時 系 統 會 發 出 警 告 當 應 用 程 式 使 用 者 要 求 要 登 入 Twitter 時, 系 統 會 將 這 個 名 稱 作 為 呼 叫 Authorize 方 法 的 結 果 來 回 傳 Description 您 的 應 用 程 式 的 說 明 Application website 使 用 者 可 找 到 更 多 有 關 這 個 應 用 程 式 資 訊 或 是 下 載 本 應 用 程 式 的 網 站 ( 如 果 您 有 建 置 這 樣 一 個 網 站 的 話 ) 或 者 您 可 以 填 入 其 他 有 用 的 網 站 請 注 意 本 屬 性 為 必 填 Application type 本 屬 性 必 須 設 定 為 rowser( 瀏 覽 器 ) Callback URL 本 屬 性 必 須 為 一 個 有 效 的 URL,Twitter 元 件 會 將 其 自 動 調 整 為 適 當 的 內 容 Default access type 請 將 本 屬 性 設 定 為 read/write( 讀 / 寫 ), 代 表 應 用 程 式 可 在 Tiwtter 中 讀 取 或 寫 入 資 料 如 果 覺 得 累 的 話, 其 他 欄 位 就 可 以 不 用 填 了 當 您 的 應 用 程 式 時 註 冊 成 功 時, 您 會 在 頁 面 上 看 到 Consumer key and Consumer secret 這 兩 個 專 屬 於 本 應 用 程 式 的 字 串 您 可 以 將 它 們 複 製 到 應 用 程 式 中 對 應 的 Twitter 元 件 屬 性 裡 如 果 您 日 後 想 更 改 這 些 設 定, 只 要 透 過 瀏 覽 器 登 入 Twitter 後, 找 到 twitter.com/apps 頁 面 來 找 到 您 所 註 冊 的 應 用 程 式, 就 可 以 進 行 修 改 了 484
屬 性 ConsumerKey 從 twitter.com/oauth_clients/new 所 取 得 的 ConsumerKey 字 串, 用 以 確 認 應 用 程 式 的 身 分 ConsumerSecret 從 twitter.com/oauth_clients/new 所 取 得 的 ConsumerSecret 字 串, 用 以 確 認 應 用 程 式 的 身 分 DirectMessages 使 用 者 在 Twitter 上 所 接 收 到 的 訊 息 Twitter Followers 追 蹤 者 清 單 FriendTimeline 使 用 者 的 Twitter 消 息 時 間 軸 Mentions 有 提 到 使 用 者 的 最 新 消 息, 以 清 單 格 式 回 傳 SearchResults 執 行 一 次 Twitter 搜 索 後 的 結 果 485
Username 已 授 權 的 使 用 者 名 稱, 如 果 回 傳 值 為 空 代 表 沒 有 這 一 位 使 用 者 事 件 DirectMessagesReceived(list messages) 當 所 有 藉 由 RequestDirectMessages 方 法 所 查 詢 的 訊 息 都 收 到 時, 呼 叫 本 事 件 Twitter FollowersReceived(list followers) 當 所 有 藉 由 RequestFollowers 方 法 所 查 詢 的 追 蹤 者 名 單 都 收 到 時, 呼 叫 本 事 件 FriendTimelineReceived(list user-messages-list) 當 所 有 藉 由 RequestFriendTimeline 方 法 所 查 詢 的 時 間 軸 資 訊 都 收 到 時, 呼 叫 本 事 件 回 傳 清 單 的 每 一 個 元 素 都 是 一 個 包 含 兩 個 元 素 的 清 單, 其 中 第 一 個 元 素 為 追 蹤 者 名 稱 (username), 第 二 個 則 是 該 使 用 者 的 狀 態 (status) 486
IsAuthorized 當 應 用 程 式 使 用 Authorize 方 法 且 成 功 登 入 時 呼 叫 本 事 件 或 者 在 登 入 之 後 使 用 CheckAuthorized 方 法 也 會 呼 叫 本 事 件 本 事 件 成 功 呼 叫 後 即 可 使 用 Twitter 元 件 中 的 所 有 方 法 MentionsReceived(list mentions) 當 所 有 藉 由 RequestMentions 方 法 所 查 詢 之 提 到 使 用 者 最 新 消 息 (mention) 時, 呼 叫 本 事 件 Twitter SearchSuccessful(list searchresults) 當 SearchTwitter 方 法 成 功 完 成 一 次 搜 尋 時, 呼 叫 本 事 件 方 法 Authorize 本 方 法 會 顯 示 Twitter 的 登 入 頁 面, 使 用 者 可 由 此 登 入 當 使 用 者 成 功 登 入 之 後 會 呼 叫 IsAuthorize 事 件 CheckAuthorized 回 傳 使 用 者 是 否 已 登 入 如 果 已 登 入, 也 會 呼 叫 IsAuthorize 事 件 487
DeAuthorize 讓 使 用 者 從 應 用 程 式 中 登 出 使 用 者 需 要 再 次 登 入 才 能 使 用 Twitter 元 件 的 方 法, 例 如 SearchTwitter 方 法 DirectMessage(Text user, Text message) 對 指 定 使 用 者 user 發 送 訊 息 message Twitter Follow(Text user) 追 蹤 指 定 使 用 者 user RequestDirectMessages 取 得 最 新 的 訊 息 RequestFollower 取 得 指 定 使 用 者 的 追 隨 者 清 單 RequestFriendTimeline 取 得 您 在 時 間 軸 上 最 新 的 20 則 消 息 回 傳 清 單 的 每 一 個 元 素 都 是 一 個 包 含 兩 個 元 素 的 清 單, 其 中 第 一 個 元 素 為 發 佈 者 名 稱 (username), 第 二 個 則 是 消 息 內 容 (status message) RequestMentions 取 得 有 提 到 使 用 者 的 消 息 488
SearchTwitter(Text query) 將 指 定 文 字 query 在 Twitter 中 進 行 一 次 搜 索 Twitter SetStatus(Text s) 將 指 定 文 字 status 發 佈 為 個 人 最 新 消 息 StopFollowing(Text user) 停 止 追 蹤 指 定 使 用 者 user -5 Sensor 感 應 器 元 件 AccelerometerSensor LocationSensor OrientationSensor 圖 形 屬 性 Accelerometer- Sensor 加 速 度 感 應 器 功 能 AccelerometerSensor 元 件 可 回 傳 Android 裝 置 上 的 加 速 度 感 應 器 狀 態, 並 可 偵 測 裝 置 三 個 軸 向 的 晃 動 狀 況, 偵 測 單 位 為 m/s 2 如 果 裝 置 面 朝 上 水 平 靜 置 時, Z 軸 加 速 度 值 約 為 9.8 ( 受 地 心 引 力 影 響 ) X 軸 : 正 面 時, 向 右 傾 斜, 左 側 值 增 大, 右 側 值 減 小, 反 之 為 負 Y 軸 : 正 面 時, 向 下 傾 斜, 上 方 值 增 大, 下 方 值 減 小, 反 之 為 負 Z 軸 : 當 顯 示 朝 上 為 正, 反 之 為 負 489
Available 說 明 當 下 的 Android 裝 置 是 否 具 備 加 速 度 感 應 器 硬 體 Enabled 啟 動 加 速 度 感 應 器 Accelerometer- Sensor 加 速 度 感 應 器 XAccel 加 速 度 感 應 器 之 X 軸 變 化 量 YAccel 加 速 度 感 應 器 之 Y 軸 變 化 量 ZAccel 加 速 度 感 應 器 之 Z 軸 變 化 量 事 件 AccelerationChanged(number xaccel, number yaccel, number zaccel) 當 加 速 度 感 應 器 值 改 變 時 呼 叫 本 事 件 490
Accelerometer- Sensor 加 速 度 感 應 器 Shaking() 當 Android 裝 置 時 正 被 搖 動 時 會 持 續 呼 叫 本 事 件 圖 形 Location- Sensor 位 置 感 應 器 功 能 Location Sensor 元 件 可 提 供 Android 裝 置 現 在 的 位 置, 第 一 優 先 是 使 用 Android 裝 置 上 的 GPS, 接 著 是 其 他 定 位 方 法 例 如 行 動 基 地 臺 或 是 無 線 網 路 來 定 位 LocationSensor 為 一 非 可 視 元 件, 可 提 供 有 關 位 置 的 資 訊, 包 括 經 度 緯 度 海 拔 高 度 ( 某 些 裝 置 可 能 不 支 援 ) 和 地 址 它 還 支 援 地 理 編 碼, 將 指 定 地 址 ( 不 一 定 要 是 裝 置 當 下 的 位 置 ) 轉 換 為 經 度 和 緯 度, 分 別 使 用 LatitudeFromAddress() 與 LongitudeFromAddress() 等 指 正 常 使 用 LocationSensor 之 前, 必 須 將 其 Enabled 屬 性 設 為 真, 另 外 裝 置 本 身 必 須 能 夠 通 過 GPS 衛 星 或 上 述 其 他 方 法 進 行 位 置 感 測 屬 性 Accuracy 回 傳 Android 裝 置 的 精 度 等 級, 單 位 為 公 尺 Altitude 回 傳 Android 裝 置 海 拔 的 高 度, 視 硬 體 支 援 程 度 而 定 AvailableProviders 回 傳 可 用 的 服 務 提 供 者 清 單, 例 如 像 是 GPS 或 網 路 491
CurrentAddress 回 傳 Android 裝 置 所 在 地 的 地 址 Enabled 本 項 需 設 為 真, 才 可 取 得 位 置 資 訊 HasAccuracy 本 項 如 果 為 真, 代 表 本 Android 裝 置 可 以 回 傳 精 度 Location- Sensor 位 置 感 應 器 HasAltitude 本 項 如 果 為 真, 代 表 本 Android 裝 置 可 以 回 傳 海 拔 高 度 HasLongitudeLatitude 本 項 如 果 為 真, 代 表 本 Android 裝 置 可 以 回 傳 經 度 和 緯 度 Latitude Android 裝 置 所 在 位 置 的 緯 度 Longitude Android 裝 置 所 在 位 置 的 經 度 492
ProviderLocked Android 裝 置 將 鎖 定 現 在 的 服 務 提 供 者 ProviderName 目 前 服 務 提 供 者 名 稱 事 件 LocationChanged(number latitude, number longitude, number altitude) Android 裝 置 位 置 改 變 時 呼 叫 本 事 件 Location- Sensor 位 置 感 應 器 StatusChanged(text provider, text status) Android 裝 置 的 服 務 提 供 者 改 變 時 呼 叫 本 事 件 LatitudeFromAddress(text locationname) 回 傳 指 定 地 址 的 緯 度 方 法 493
Location- Sensor 位 置 感 應 器 LongitudeFromAddress(text locationname) 回 傳 指 定 地 址 的 經 度 圖 形 功 能 OrientationSensor 元 件 可 用 來 偵 測 Android 裝 置 在 空 間 的 定 位 / 姿 態 OrientationSensor 元 件 為 一 非 可 視 元 件, 可 回 傳 以 下 三 種 資 料, 皆 以 度 為 單 位 : Roll 滾 翻 : 裝 置 水 平 放 置 時 為 0 度 ; 裝 置 向 右 側 傾 斜 ( 左 側 較 高 ) 時 會 漸 增 到 90 度, 反 之 則 漸 減 到 90 度 Pitch 俯 仰 : 裝 置 水 平 放 置 時 為 0 度 ; 裝 置 向 前 端 傾 斜 ( 尾 巴 較 高 ) 時 會 漸 增 到 90 度, 整 個 翻 面 則 為 180 度 反 之 則 漸 減 到 90 度, 反 向 翻 面 則 為 -180 度 Azimuth 方 位 : 當 裝 置 朝 向 北 方 時 為 0 度, 東 方 為 90 度, 南 方 為 180 度, 西 方 為 270 度 以 上 數 值 皆 假 定 裝 置 本 身 並 不 移 動 Available 可 用 回 傳 本 台 Android 裝 置 上 是 否 有 姿 態 感 應 器 可 用 Orientation- Sensor 姿 態 感 應 器 Enable 啟 動 本 項 需 設 為 真, 才 可 使 用 姿 態 感 應 器 Azimuth 方 位 回 傳 裝 置 的 方 位 角 Pitch 俯 仰 回 傳 裝 置 的 俯 仰 角 494
Roll 滾 翻 回 傳 裝 置 的 滾 翻 角 Magnitude 傾 斜 程 度 回 傳 一 個 介 於 0 到 1 之 間 的 小 數 來 代 表 目 前 裝 置 的 傾 斜 程 度, 您 可 以 想 像 一 個 小 球 在 裝 置 上 的 滾 動 速 度 來 表 示 這 個 數 值 的 變 化 情 況 Orientation- Sensor 姿 態 感 應 器 Angle 角 度 回 傳 一 個 角 度 值 代 表 目 前 裝 置 的 傾 斜 角, 也 就 是 說 如 果 我 們 在 裝 置 上 放 一 個 小 球, Angle 可 以 告 訴 我 們 球 該 往 那 邊 滾 動 事 件 OrientationChanged(number azimuth, number pitch, number roll) 姿 態 改 變 時 呼 叫 本 事 件 -6 Screen Arrangement 螢 幕 排 列 元 件 HorizontalArrangement TableArrangement VerticalArrangement 495
圖 形 Horizontal- Arrangement 橫 向 排 列 功 能 HorizontalArrangement 元 件 可 將 多 個 元 件 從 左 到 右 橫 向 排 列 本 元 件 只 用 來 排 版, 請 將 您 想 要 橫 向 排 列 的 元 件 放 入 其 中 即 可 如 果 您 希 望 某 個 元 件 排 在 另 一 個 元 件 上 方, 請 改 用 VerticalArrangement 在 HorizontalArrangement 中 的 元 件 是 沿 水 平 方 向 排 列, 並 垂 直 對 準 中 心 有 關 HorizontalArrangement 的 尺 寸 設 定, 請 看 以 下 說 明 : 1. 如 果 HorizontalArrangement 的 Height 屬 性 為 Automatic, 則 其 實 際 高 度 將 由 它 所 包 含 元 件 中 最 高 的 那 一 個 來 決 定, 但 該 元 件 的 Height 屬 性 不 可 設 為 Fill Parent 2. 如 果 HorizontalArrangement 的 Height 屬 性 為 Automatic, 但 則 它 所 包 含 元 件 Height 屬 性 為 Fill Parent, 則 其 實 際 高 度 將 以 所 包 含 元 件 的 高 度 來 自 動 決 定 3. 如 果 HorizontalArrangement 的 Height 屬 性 為 Automatic 且 未 包 含 任 何 元 件, 則 其 高 度 為 100 像 素 4. 如 果 HorizontalArrangement 的 Width 屬 性 為 Automatic, 則 其 實 際 寬 度 將 由 所 有 元 件 的 總 寬 度 來 決 定 5. 如 果 HorizontalArrangement 的 Width 屬 性 為 Automatic, 則 所 包 含 元 件 的 Width 屬 性 則 便 設 為 Fill Parent, 但 還 是 會 當 作 Automatic 來 處 理 6. 如 果 HorizontalArrangement 的 Width 屬 性 為 Fill Parent 或 指 定 像 素, 則 所 包 含 元 件 的 Width 屬 性 將 被 自 動 設 為 Fill Parent, 並 平 均 排 列 不 會 重 疊 屬 性 Visible 本 項 需 設 為 真, 才 能 在 螢 幕 上 看 到 本 元 件 Height 元 件 高 度 (y 軸 像 素 ) Width 元 件 寬 度 (x 軸 像 素 ) 496
圖 形 功 能 TableArrangement 元 件 可 將 多 個 元 件 以 表 格 方 式 排 列 本 元 件 只 用 來 排 版, 請 將 您 想 要 以 表 格 排 列 的 元 件 放 入 其 中 即 可 包 含 於 TableArrangement 中 的 所 有 元 件 將 被 放 在 不 同 行 與 列 的 格 子 中, 每 個 格 子 只 有 一 個 元 件 能 被 看 見 如 果 多 個 元 件 放 在 同 一 個 格 子 中, 則 只 有 最 後 被 放 進 去 的 元 件 才 能 被 看 到 每 一 行 中 的 元 件 皆 彼 此 垂 直 對 準 中 心 在 該 列 中 最 寬 的 元 件 確 定 列 的 寬 度 當 計 算 列 的 寬 度 時,Width 屬 性 為 Fill Parent 的 元 件 將 由 系 統 自 動 分 配 其 寬 度 但 請 注 意, 每 一 個 元 件 都 會 自 動 填 滿 該 行 寬 度 在 該 行 中 最 高 的 元 件 確 定 列 的 高 度, 但 這 些 元 件 的 Height 屬 性 不 可 為 Fill Parent 如 果 該 列 所 包 含 元 件 的 Height 屬 性 皆 為 Fill Parent, 則 該 列 的 實 際 高 度 將 以 所 包 含 元 件 的 高 度 來 自 動 決 定 Table- Arrangement 橫 向 排 列 屬 性 Visible 本 項 需 設 為 真, 才 能 在 螢 幕 上 看 到 本 元 件 Rows (number-of-rows) 行 數 設 定 列 表 中 的 行 數 Columns (number-of-columns) 列 數 設 定 列 表 中 的 列 數 Height 元 件 高 度 (y 軸 像 素 ) Width 元 件 寬 度 (x 軸 像 素 ) 497
圖 形 功 能 Vertical- Arrangement 橫 向 排 列 VerticalArrangement 元 件 可 將 多 個 元 件 從 上 到 下 排 列, 並 對 齊 左 邊 本 元 件 只 用 來 排 版, 請 將 您 想 要 縱 向 排 列 的 元 件 放 入 其 中 即 可 第 一 個 子 元 件 將 位 於 最 上 方, 第 二 第 三 就 依 序 往 下 垂 直 排 列 如 果 您 想 要 將 元 件 左 右 排 再 一 起, 請 使 用 HorizontalArrangement 在 VerticalArrangement 中 的 所 有 元 件 都 是 垂 直 排 列 並 對 齊 左 邊 有 關 VerticalArrangement 的 尺 寸 設 定, 請 看 以 下 說 明 : 1. 如 果 VerticalArrangement 的 Width 屬 性 為 Automatic, 則 其 實 際 寬 度 將 由 其 下 最 寬 的 元 件 來 決 定, 但 該 最 寬 元 件 的 Width 屬 性 不 可 為 Fill Parent 2. 如 果 VerticalArrangement 的 Width 屬 性 為 Automatic, 且 其 下 的 元 件 Width 屬 性 皆 為 Fill Parent, 則 其 實 際 寬 度 將 以 所 包 含 元 件 的 寬 度 來 自 動 決 定 3. 如 果 VerticalArrangement 的 Width 屬 性 為 Automatic 且 未 包 含 任 何 元 件, 則 其 高 度 為 100 像 素, 則 寬 度 將 為 100 4. 如 果 VerticalArrangement 的 Height 屬 性 為 Automatic, 則 其 實 際 高 度 將 由 所 有 元 件 總 高 度 來 決 定 5. 如 果 VerticalArrangement 的 Height 屬 性 為 Automatic, 則 所 包 含 元 件 的 Height 屬 性 則 便 設 為 Fill Parent, 但 還 是 會 當 作 Automatic 來 處 理 6. 如 果 VerticalArrangement 的 Height 屬 性 為 Fill Parent 或 指 定 像 素, 則 所 包 含 元 件 的 Height 屬 性 將 被 自 動 設 為 Fill Parent, 並 平 均 排 列 不 會 重 疊 Visible 屬 性 本 項 需 設 為 真, 才 能 在 螢 幕 上 看 到 本 元 件 Height 元 件 高 度 (y 軸 像 素 ) Width 元 件 寬 度 (x 軸 像 素 ) 498
-7 LEGO MINDSTORMS 樂 高 機 器 人 控 制 元 件 NxtDirectCommands NxtColorSensor NxtLightSensor NxtSoundSensor NxtTouchSensor NxtUltrasonicSensor NxtDrive 本 系 列 元 件 可 透 過 藍 牙 對 樂 高 NXT 智 慧 型 機 器 人 套 件 進 行 各 種 控 制 LEGO 和 MINDSTORMS 是 樂 高 團 的 註 冊 商 標 請 注 意! 要 使 用 App Inventor 來 控 制 樂 高 NXT 機 器 人 時, 都 需 要 在 Designer 頁 面 中 新 增 一 個 luetoothclient 元 件, 它 是 用 來 處 理 手 機 與 機 器 人 之 間 的 藍 牙 通 訊 注 意 一 個 luetoothclient 元 件 只 能 與 一 臺 機 器 人 連 接, 所 以 如 果 您 要 在 同 一 個 App Inventor 程 式 中 與 兩 臺 以 上 的 機 器 人 進 行 藍 牙 連 線 時, 就 需 要 根 據 機 器 人 數 量 加 入 對 應 的 luetoothclient 元 件,luetoothClient 元 件 位 於 Not ready for prime time 選 單 中 以 下 是 進 行 一 臺 或 多 臺 NXT 機 器 人 之 藍 牙 通 訊 之 前 所 需 的 步 驟 : 1. 在 Palette 清 單 中 的 Not ready for prime time 選 單 中, 將 一 個 luetoothclient 元 件 新 增 到 Viewer 中, 它 會 自 動 取 名 為 luetoothclient1 2. 在 Palette 清 單 中 的 LEGO MINSTORMS 選 單 中, 並 將 一 個 NxtDirectCommands 元 件 新 增 到 Viewer 中 並 將 它 的 luetoothclient 欄 位 指 定 為 剛 剛 新 增 的 luetoothclient1 499
3. 在 元 件 面 板 中, 按 一 下 LEGO 4. 請 拖 動 其 中 一 個 元 件, 例 如 NxtDirectCommands, 並 將 其 放 到 Viewer 中 5. 在 屬 性 區 中, 按 一 下 luetoothclient ( 目 前 None... ) 屬 性, 會 出 現 應 用 程 式 中 所 有 的 luetoothclient 元 件 6. 點 擊 luetoothclient1, 然 後 按 一 下 確 定 7. 如 果 需 要, 添 加 另 一 個 Nxt 元 件, 例 如 NxtColorSensor, 並 重 複 以 上 步 驟 來 設 定 luetoothclient 屬 性 NxtDirectCommands 圖 形 功 能 Nxt- Direct- Commands NxtDirectCommands 元 件 可 藉 由 低 階 介 面 與 樂 高 NXT 機 器 人 進 行 通 訊, 並 發 送 NXT Direct Command NXT Direct Command 是 樂 高 公 司 對 於 NXT 機 器 人 所 提 供 的 特 殊 藍 牙 通 訊 規 格, 不 需 要 編 寫 機 器 人 端 程 式 就 可 透 過 NXT Direct Command 直 接 控 制 樂 高 NXT 機 器 人 屬 性 luetoothclient 欲 進 行 通 訊 的 luetoothclient 元 件, 本 項 只 能 在 Designer 中 設 定 500
方 法 DeleteFile(text filename) 刪 除 機 器 人 上 的 檔 案 DownloadFile(text source, text destination) 將 檔 案 下 載 到 機 器 人 Nxt- Direct- Commands GetatteryLevel 機 器 人 目 前 的 電 池 電 量, 單 位 為 毫 伏 特 GetrickName 取 得 NXT 主 機 名 稱 GetCurrentProgramName 取 得 機 器 人 上 現 在 運 行 的 程 式 名 稱 501
GetFirmwareVersion 以 清 單 格 式 取 得 韌 體 ( 第 一 個 項 目 ) 與 通 訊 協 定 版 本 ( 第 二 個 項 目 ) GetInputValues(text sensorportletter) 讀 取 機 器 人 指 定 輸 入 端 的 資 訊, 假 設 我 們 已 藉 由 SetInputMode 設 定 了 感 應 器 類 型 (sensor type) Nxt- Direct- Commands GetOutputState(text motorportletter) 讀 取 機 器 人 指 定 輸 出 端 的 馬 達 狀 態 KeepAlive 讓 機 器 人 保 持 開 機, 並 每 毫 秒 回 傳 一 次 現 在 的 休 眠 時 間 限 制 ListFiles(text wildcard) 使 用 者 設 定 條 件 (wildcard) 之 後, 以 清 單 回 傳 機 器 人 中 符 合 的 檔 案 502
LsGetStatus(text sensorportletter) 回 傳 可 供 讀 取 的 位 元 組 數 Ls 意 指 Low speed 低 速 通 訊,NXT 主 機 支 援 I 2 C 的 數 位 通 訊 方 法, 可 連 接 任 何 支 援 I2C 介 面 的 I/O 裝 置 LsRead(text sensorportletter) 從 機 器 人 指 定 輸 入 端 讀 取 低 速 資 料 ( 值 皆 為 正 ), 假 設 我 們 已 藉 由 SetInputMode 設 定 了 感 應 器 類 型 (sensor type) Nxt- Direct- Commands LsWrite(text sensorportletter, list list, number rxdatalength) 對 機 器 人 指 定 輸 入 端 讀 取 低 速 資 料, 假 設 我 們 已 藉 由 SetInputMode 設 定 了 感 應 器 類 型 (sensor type) MessageRead(number mailbox) 從 機 器 人 上 的 指 定 信 箱 讀 取 資 料, 信 箱 編 號 由 1 到 10 MessageWrite(number mailbox, text message) 對 機 器 人 上 的 指 定 信 箱 寫 入 資 料, 信 箱 編 號 由 1 到 10 503
PlaySoundFile(text filename) 播 放 機 器 人 上 的 音 效 檔, 附 檔 名 為.rso PlayTone(number frequencyhz, number durationms) 讓 機 器 人 發 出 指 定 時 間 長 度 (durationms, 單 位 為 毫 秒 ) 的 音 高 (frequencyhz, 赫 茲 ) Nxt- Direct- Commands ResetInputScaledValue(text sensorportletter) 重 設 機 器 人 指 定 輸 入 端 的 正 規 化 值 (scaled value) ResetMotorPosition(text motorportletter, boolean relative) 重 設 馬 達 位 置 SetrickName(text name) 設 定 NXT 主 機 名 稱 SetInputMode(text sensorportletter, number sensortype, number sensormode) 設 定 機 器 人 的 指 定 輸 入 端 狀 態 sensorportletter 為 輸 入 端 編 號 1~4,sensorType 為 感 應 器 類 型,sensorMode 為 感 應 器 回 傳 值 格 式 504
SetOutputState(text motorportletter, number power, number mode, number regulationmode, number turnratio, number runstate, number tacholimit) 設 定 機 器 人 的 指 定 輸 出 端 狀 態,motorPortLetter 為 輸 出 端 編 號 A-C,umber power 為 馬 達 電 力 範 圍 -100~100,mode 為 資 料 模 式,regulationMode 為 馬 達 控 制 模 式,turnRatio 為 轉 彎 百 分 比 -100~100,runState 為 執 行 狀 態,tachoLimit 為 角 度 感 應 器 上 限 Nxt- Direct- Commands StartProgram(text programname) 執 行 已 下 載 到 機 器 人 上 的 程 式 StopProgram 停 止 機 器 人 現 在 運 行 中 的 程 式 StopSoundPlayback 停 止 播 放 聲 音 505
圖 形 NxtColorSensor 顏 色 感 應 器 功 能 Nxt- ColorSensor NxtColorSensor 元 件 可 用 來 控 制 樂 高 NXT 機 器 人 上 的 顏 色 感 應 器 屬 性 luetoothclient 用 於 通 訊 的 luetoothclient 元 件, 必 須 在 Designer 中 設 定 SensorPort 感 應 器 所 連 接 的 輸 入 端, 必 須 在 Designer 中 設 定 DetectColor 設 定 顏 色 感 應 器 要 偵 測 顏 色 或 是 光 值 設 定 為 true 代 表 應 偵 測 顏 色 變 化, 反 之 則 如 同 光 感 應 器 一 樣 偵 測 光 值 變 化 如 果 DetectColor 屬 性 設 定 為 True, 那 麼 elowrange WithinRange AboveRange 等 事 件 都 不 會 被 呼 叫, 感 應 器 前 端 也 不 會 發 光 如 果 DetectColor 屬 性 設 定 為 False, 則 ColorChanged 事 件 不 會 被 呼 叫 ColorChangedEventEnabled 當 DetectColor 屬 性 設 定 為 true 且 偵 測 到 的 顏 色 發 生 變 化 時, 設 定 是 否 呼 叫 ColorChanged 事 件 506
Nxt- ColorSensor GenerateColor 設 定 顏 色 感 應 器 是 否 會 發 光, 只 接 受 紅 綠 藍 等 三 種 顏 色, 這 也 是 顏 色 感 應 器 所 能 產 生 的 三 種 顏 色 當 DetectColor 屬 性 設 定 為 true 時, 顏 色 感 應 器 不 會 發 光 ottomofrange elowrange WithinRange 和 AboveRange 等 事 件 的 最 小 值 TopOfRange elowrange WithinRange 和 AboveRange 等 事 件 的 最 大 值 Nxt- ColorSensor elowrangeeventenabled 決 定 當 DetectColor 屬 性 設 定 為 false 且 光 值 低 於 ottomofrange 時, 是 否 呼 叫 elow- Range 事 件 WithinRangeEventEnabled 決 定 當 DetectColor 屬 性 設 定 為 false 且 光 值 介 於 ottomofrange 與 TopOfRange 時, 是 否 呼 叫 WithinRange 事 件 AboveRangeEventEnabled 決 定 當 DetectColor 屬 性 設 定 為 false 且 光 值 高 於 TopOfRange 時, 是 否 呼 叫 TopOfRange 事 件 507
事 件 Nxt- ColorSensor ColorChanged(number color) 偵 測 到 的 顏 色 已 改 變 如 果 DetectColor 或 ColorChangedEventEnabled 屬 性 任 一 項 設 定 為 False,ColorChanged 事 件 不 會 發 生 elowrange 光 值 已 經 低 於 指 定 範 圍 如 果 DetectColor 屬 性 設 定 為 True 或 elowrangeeventenabled 屬 性 設 定 為 False,elow- Range 事 件 不 會 發 生 WithinRange 光 值 介 於 指 定 範 圍 之 間 如 果 DetectColor 屬 性 設 定 為 True 或 elowrangeeventenabled 屬 性 設 定 為 False,elow- Range 事 件 不 會 發 生 Nxt- ColorSensor AboveRange 光 值 已 經 高 於 指 定 範 圍 如 果 DetectColor 屬 性 設 定 為 True 或 AboveRangeEventEnabled 屬 性 設 定 為 False, AboveRange 事 件 不 會 發 生 508
方 法 GetColor 回 傳 所 偵 測 到 的 顏 色, 如 果 回 傳 值 為 none 代 表 無 法 辨 識 顏 色 或 因 為 DetectColor 屬 性 設 定 為 false 所 導 致 GetLightLevel 回 傳 光 值 強 度, 這 是 一 個 介 於 0 到 1023 之 間 的 整 數, 如 果 回 傳 -1 代 表 無 法 讀 取 光 值 或 因 為 DetectColor 屬 性 設 定 為 true 所 導 致 NxtLightSensor 光 感 應 器 圖 形 功 能 NxtLightSensor 元 件 可 用 來 控 制 樂 高 NXT 機 器 人 上 的 光 感 應 器 屬 性 NxtLight- Sensor luetoothclient 用 於 通 訊 的 luetoothclient 元 件, 必 須 在 Designer 中 設 定 SensorPort 感 應 器 所 連 接 的 輸 入 端, 必 須 在 Designer 中 設 定 509
GenerateLight 光 感 應 器 前 端 燈 泡 是 否 發 光 ottomofrange elowrange WithinRange 和 AboveRange 等 事 件 的 最 小 值 TopOfRange elowrange WithinRange 和 AboveRange 等 事 件 的 最 大 值 NxtLight- Sensor elowrangeeventenabled 決 定 當 光 值 低 於 ottomofrange 時, 是 否 呼 叫 elowrange 事 件 WithinRangeEventEnabled 決 定 當 光 值 介 於 ottomofrange 與 TopOfRange 之 間 時, 是 否 呼 叫 WithinRange 事 件 510
AboveRangeEventEnabled 決 定 當 亮 度 高 於 TopOfRange 時, 是 否 呼 叫 AboveRange 事 件 事 件 elowrange 光 值 已 經 低 於 指 定 範 圍 Sensor WithinRange 光 值 介 於 指 定 範 圍 之 間 AboveRange 光 值 已 經 高 於 指 定 範 圍 方 法 NxtLight- NxtLight- Sensor GetLightLevel 回 傳 光 值 強 度, 這 是 一 個 介 於 0 到 1023 之 間 的 整 數, 如 果 回 傳 -1 代 表 無 法 讀 取 光 值 511
圖 形 NxtSoundSensor 聲 音 感 應 器 ottomofrange elowrange WithinRange 和 AboveRange 等 事 件 的 最 小 值 功 能 NxtSound- Sensor NxtSoundSensor 元 件 可 用 來 控 制 樂 高 NXT 機 器 人 上 的 聲 音 感 應 器 屬 性 luetoothclient 用 於 通 訊 的 luetoothclient 元 件, 必 須 在 Designer 中 設 定 SensorPort 感 應 器 所 連 接 的 輸 入 端, 必 須 在 Designer 中 設 定 NxtSound- Sensor TopOfRange elowrange WithinRange 和 AboveRange 等 事 件 的 最 大 值 elowrangeeventenabled 決 定 當 音 量 低 於 ottomofrange 時, 是 否 呼 叫 elowrange 事 件 512
WithinRangeEventEnabled 決 定 當 音 量 介 於 ottomofrange 與 TopOfRange 之 間 時, 是 否 呼 叫 WithinRange 事 件 Sensor AboveRangeEventEnabled 決 定 當 音 量 超 過 TopOfRange 時, 是 否 呼 叫 AboveRange 事 件 elowrange 音 量 已 經 低 於 指 定 範 圍 WithinRange 音 量 介 於 指 定 範 圍 之 間 事 件 NxtSound- NxtSound- Sensor AboveRange 音 量 已 經 高 於 指 定 範 圍 GetSoundLevel 方 法 回 傳 音 量 強 度, 這 是 一 個 介 於 0 到 1023 之 間 的 整 數, 如 果 回 傳 -1 代 表 無 法 讀 取 音 量 513
圖 形 NxtTouchSensor 觸 碰 感 應 器 NxtTouch- Sensor 功 能 NxtTouchSensor 元 件 可 用 來 控 制 樂 高 NXT 機 器 人 上 的 觸 碰 感 應 器 屬 性 luetoothclient 用 於 通 訊 的 luetoothclient 元 件, 必 須 在 Designer 中 設 定 SensorPort 感 應 器 所 連 接 的 輸 入 端, 必 須 在 Designer 中 設 定 PressedEventEnabled 設 定 是 否 可 呼 叫 Pressed 事 件, 意 即 觸 碰 感 應 器 壓 下 時 呼 叫 Pressed 事 件 ReleasedEventEnabled 設 定 是 否 可 呼 叫 Released 事 件, 意 即 觸 碰 感 應 器 壓 下 時 呼 叫 Released 事 件 514
事 件 NxtTouch- Sensor Pressed 當 觸 摸 感 應 器 被 按 下 時 呼 叫 本 事 件 Released 當 觸 摸 感 應 器 被 放 開 時 呼 叫 本 事 件 IsPressed 方 法 如 果 觸 摸 感 應 器 被 壓 下 了, 則 回 傳 true; 反 之 回 傳 false NxtUltrasonicSensor 超 音 波 感 應 器 圖 形 515
功 能 NxtUltrasonic- Sensor NxtUltrasonicSensor 元 件 可 用 來 控 制 樂 高 NXT 機 器 人 上 的 超 音 波 感 應 器 屬 性 luetoothclient 用 於 通 訊 的 luetoothclient 元 件, 必 須 在 Designer 中 設 定 SensorPort 感 應 器 連 接 到 感 應 器 中, 必 須 在 Designer 設 定 ottomofrange elowrange WithinRange 和 AboveRange 等 事 件 的 最 小 值 TopOfRange elowrange WithinRange 和 AboveRange 等 事 件 的 最 大 值 NxtUltrasonic- Sensor elowrangeeventenabled 決 定 當 距 離 低 於 ottomofrange 時, 是 否 呼 叫 elowrange 事 件 WithinRangeEventEnabled 決 定 當 距 離 介 於 ottomofrange 與 TopOfRange 之 間 時, 是 否 呼 叫 WithinRange 事 件 516
AboveRangeEventEnabled 決 定 當 距 離 超 過 TopOfRange 時, 是 否 呼 叫 AboveRange 事 件 elowrange 距 離 已 經 低 於 指 定 範 圍 事 件 NxtUltrasonic- Sensor WithinRange 距 離 介 於 指 定 範 圍 之 間 AboveRange 距 離 已 經 高 於 指 定 範 圍, 方 法 NxtUltrasonic- Sensor GetDistance 回 傳 距 離, 單 位 為 公 分, 這 是 一 個 介 於 0 到 254 之 間 的 整 數, 如 果 回 傳 -1 代 表 無 法 判 斷 距 離 517
圖 形 NxtDriveNxt 馬 達 NxtDrive- Sensor 功 能 NxtDrive 元 件 可 用 來 控 制 樂 高 NXT 機 器 人 上 的 馬 達, 進 而 控 制 機 器 人 前 進 後 退 或 轉 彎, 或 控 制 單 顆 馬 達 動 作 屬 性 luetoothclient 用 於 通 訊 的 luetoothclient 元 件, 必 須 在 Designer 中 設 定 DriveMotors 所 要 控 制 的 馬 達, 可 輸 入 A C AC C A 與 AC 等 參 數 WheelDiameter 裝 於 馬 達 上 的 輪 胎 直 徑, 單 位 為 公 分 StopeforeDisconnect 設 定 是 否 在 斷 線 之 前 先 把 馬 達 停 下 來 方 法 MoveForwardIndefinitely(number power) 讓 機 器 人 持 續 以 指 定 電 力 power 前 進, 電 力 範 圍 為 -100~100, 請 注 意 此 處 電 力 如 輸 入 負 數, 會 使 馬 達 反 轉 ( 機 器 人 後 退 ) 電 力 為 0 時 馬 達 靜 止 518
MoveForward(number power, number distance) 讓 機 器 人 以 指 定 電 力 power 前 進 指 定 距 離 distance, 距 離 是 由 WheelDiameter 屬 性 計 算 求 得 馬 達 每 轉 1 度 時 的 實 際 前 進 長 度 NxtDrive- Sensor MoveackwardIndefinitely(number power) 讓 機 器 人 持 續 以 指 定 電 力 power 後 退, 電 力 範 圍 為 -100~100, 請 注 意 此 處 電 力 如 輸 入 負 數, 會 使 馬 達 反 轉 ( 機 器 人 前 進 ) 電 力 為 0 時 馬 達 靜 止 Moveackward(number power, number distance) 讓 機 器 人 以 指 定 電 力 power 後 退 指 定 距 離 distance, 距 離 是 由 WheelDiameter 屬 性 計 算 求 得 馬 達 每 轉 1 度 時 的 實 際 前 進 長 度 Stop 所 有 馬 達 停 止 轉 動 519
-8 Other Components 其 他 元 件 ActivityStarter arcodescanner luetoothclient luetoothserver Notifier SpeechRecognizer TextToSpeech TinyWebD Web 圖 形 Activity- Starter ActivityStarter 功 能 ActivityStarter 元 件 可 以 讓 您 的 應 用 程 式 呼 叫 另 一 項 活 動 (Activity) 透 過 設 定 ActivityStarter 的 屬 性, 我 們 就 能 正 確 地 與 它 溝 通, 這 包 含 action 與 activity 等 class, 詳 細 說 明 與 範 例 請 參 考 附 錄 C<App Inventor 小 秘 訣 > 520
可 由 ActivityStarter 啟 動 的 活 動 包 括 : 1. 啟 動 另 一 個 App Inventor 應 用 程 式 : 首 先 確 定 您 所 要 啟 動 類 的 應 用 程 式 的 class, 請 下 載 它 原 始 碼 並 解 壓 縮, 找 到 一 個 名 為 youngandroidproject/project.properties 檔 第 一 行 將 由 main = 開 始, 後 面 跟 著 class 名 稱, 例 如 : main=com.gmail.itdiddle.en.hellopurr.screen1 若 要 使 您 的 ActivityStarter 元 件 能 夠 呼 叫 這 個 程 式, 請 如 下 設 定 : Activity- Starter 在 ActivityPackage 屬 性 中 填 入 class 名 稱, 但 最 後 一 個 元 件 名 稱 不 要 放, 例 如 com.gmail.itdiddle.en.hellopurr 在 ActivityClass 屬 性 中 填 入 完 整 的 class 名 稱, 例 如 com.gmail.itdiddle.en. HelloPurr.Screen1 2. 啟 動 內 建 於 Android 作 業 系 統 的 活 動 : 如 使 用 相 機 或 執 行 一 次 網 路 搜 尋 您 可 以 藉 由 以 下 設 定 來 啟 動 相 機 : Action: android.intent.action.main ActivityPackage: com.android.camera ActivityClass: com.android.camera.camera 3. 執 行 網 路 搜 尋 : 假 定 您 要 搜 尋 vampire 這 個 詞, 請 依 循 以 下 設 定 : Action: android.intent.action.we_search ExtraKey: query ExtraValue: vampire ActivityPackage: com.google.android.providers.enhancedgooglesearch ActivityClass: com.google.android.providers.enhancedgooglesearch.launcher 521
4. 打 開 瀏 覽 器 並 到 指 定 網 頁 : 如 果 您 想 去 的 網 站 是 www.facebook.com, 請 依 循 以 下 設 定 : Action: android.intent.action.view DataUri: http://www.facebook.com 您 也 可 以 藉 由 ActivityStarter 來 啟 動 安 裝 在 您 Android 裝 置 上 的 第 三 方 程 式, 但 需 要 提 供 正 確 的 intent 呼 叫 它 們 您 也 可 以 呼 叫 會 產 生 字 串 結 果 的 活 動, 並 將 這 些 結 果 拉 回 到 您 的 應 用 程 式 當 中 請 注 意 擷 取 資 料 的 方 式 與 該 程 式 實 作 的 方 法 有 關 屬 性 Activity- Starter Action 欲 使 用 ActivityStarter 元 件 啟 動 的 activity ActivityClass 欲 呼 叫 activity 之 class 名 稱 ActivityPackage 欲 呼 叫 activity 的 Package 名 稱 DataUri 傳 送 給 欲 呼 叫 activity 的 URI(Uniform Resource Identifier) 522
ExtraKey 傳 送 給 欲 呼 叫 activity 的 key 名 稱 ExtraValue 傳 送 給 欲 呼 叫 activity 的 資 料 內 容 Activity- Starter Result 所 呼 叫 activity 的 回 傳 值 內 容 ResultName 所 呼 叫 activity 回 傳 值 的 名 稱 ResultType: text 所 呼 叫 activity 的 資 料 型 態 ResultUri: text 所 呼 叫 activity 傳 回 的 URI 或 資 料 523
事 件 ActivityError(text message) 代 表 使 用 ActivityStarter 時 發 生 了 錯 誤 AfterActivity(text result) ActivityStarter 結 束 後 啟 動 本 事 件 Activity- Starter 方 法 ResolveActivity 回 傳 所 呼 叫 的 activity 名 稱, 如 果 回 傳 一 個 空 字 串 代 表 找 不 到 對 應 的 activity 您 可 以 在 呼 叫 外 部 程 式 之 前 先 使 用 此 方 法, 好 確 保 該 程 式 已 確 實 安 裝 於 Android 裝 置 之 中 StartActivity 啟 動 欲 呼 叫 的 activity 524
圖 形 arcodescanner 條 碼 掃 描 器 功 能 arcode- Scanner arcodescanner 為 一 非 可 視 元 件, 它 可 啟 動 手 機 的 照 相 機 來 讀 取 一 維 條 碼 或 二 維 條 碼 (QR 碼 ) 在 使 用 該 元 件 之 前, 必 須 先 在 您 的 手 機 上 安 裝 ZXing 或 其 他 條 碼 掃 描 器 軟 體, 此 類 應 用 程 式 絕 大 部 分 都 是 免 費 的 屬 性 Result 掃 描 成 功 後 回 傳 的 字 串 結 果 本 屬 性 在 AfterScan 事 件 完 成 後 就 可 存 取 掃 描 結 果 也 可 在 lock Editor 中 來 取 得 事 件 AfterScan(text result) 掃 描 結 束 後 呼 叫 本 事 件 方 法 DoScan() 開 始 掃 描 525
圖 形 luetoothclient 藍 牙 用 戶 端 功 能 藍 牙 用 戶 端 元 件 屬 性 luetooth- Client AddressesAndNames 已 配 對 藍 牙 裝 置 的 名 稱 / 位 址 清 單 請 注 意 如 果 您 的 手 機 從 未 和 任 何 裝 置 進 行 藍 牙 配 對, 則 本 清 單 將 為 空 Available 回 傳 當 下 的 Android 裝 置 上 是 否 可 使 用 藍 牙 CharacterEncoding 設 定 收 發 訊 息 時 的 字 元 編 碼 Delimiteryte 呼 叫 ReceiveText ReceiveSignedytes ReceiveUnsignedytes 等 函 數 時, 當 引 數 numberofytes 為 負 值, 須 使 用 界 定 字 元 (Delimiter yte) 當 資 料 串 結 尾 Enabled 本 項 需 設 為 真, 才 能 使 用 藍 牙 526
HighyteFirst 2 及 4 位 元 組 數 值 是 否 應 先 從 最 高 位 元 開 始 傳 送, 確 認 通 訊 裝 置 的 文 件 說 明, 應 能 與 App 適 當 通 訊,ig-endian 俗 稱 為 高 位 元 組 資 料 優 先 的 排 序 方 式 IsConnected 回 傳 是 否 已 建 立 藍 牙 連 線 事 件 luetooth- Client 無 方 法 ytesavailabletoreceive() 回 傳 在 不 塞 車 情 況 下 的 可 接 收 位 元 組 數 ( 估 計 值 ) Connect(text address) 與 指 定 位 址 與 序 列 埠 的 藍 牙 裝 置 進 行 連 線, 如 果 連 接 成 功, 則 回 傳 true address 參 數 中 可 在 MAC 位 址 後 包 含 額 外 的 字 元 這 代 表 您 可 以 在 不 拆 開 address 與 name 的 情 況 之 下, 從 AddressesAndNames 屬 性 所 回 傳 的 清 單 中 載 送 一 些 資 料 出 去 527
ConnectWithUUID(text address, text uuid) 和 指 定 位 址 及 UUID(Universally Unique Identifier, 通 用 唯 一 識 別 碼 ) 的 藍 牙 裝 置 進 行 連 線 如 果 連 接 成 功, 則 回 傳 true address 參 數 中 可 在 MAC 位 址 後 包 含 額 外 的 字 元 這 代 表 您 可 以 在 不 拆 開 address 與 name 的 情 況 之 下, 從 AddressesAndNames 屬 性 所 回 傳 的 清 單 中 載 送 一 些 資 料 出 去 樂 高 NXT 機 器 人 的 UUID 皆 為 00001101-0000-1000-8000-00805F934F Disconnect() 中 斷 藍 牙 連 線 luetooth- Client IsDevicePaired(text address) 檢 查 指 定 位 址 的 藍 牙 裝 置 是 否 已 配 對 ReceiveSigned1yteNumber() 從 所 連 接 的 藍 牙 裝 置 接 收 1 位 元 組 長 度 的 有 正 負 號 數 值 ( 以 下 簡 稱 有 號 數 ) ReceiveSigned2yteNumber() 從 所 連 接 的 藍 牙 裝 置 接 收 2 位 元 組 長 度 的 有 號 數 ReceiveSigned4yteNumber() 從 所 連 接 的 藍 牙 裝 置 接 收 4 位 元 組 長 度 的 有 號 數 528
ReceiveSignedytes(number numberofytes) 從 所 連 接 的 藍 牙 裝 置 接 收 多 個 有 號 位 元 組 值 如 果 numberofytes 小 於 0, 將 持 續 讀 取 直 到 收 到 一 個 界 定 字 元 為 止 luetooth- Client ReceiveText(number numberofytes) 從 所 連 接 的 藍 牙 裝 置 接 收 一 個 字 串 如 果 numberofytes 小 於 0, 將 持 續 讀 取 直 到 收 到 一 個 界 定 字 元 為 止 從 所 連 接 的 藍 牙 裝 置 接 收 一 個 字 串 如 果 numberofytes 小 於 0, 將 持 續 讀 取 直 到 收 到 一 個 delimiter byte value 為 止 ReceiveUnsigned1yteNumber() 從 所 連 接 的 藍 牙 裝 置 接 收 1 位 元 組 長 度 的 無 號 數 number ReceiveUnsigned2yteNumber() 從 所 連 接 的 藍 牙 裝 置 接 收 2 位 元 組 長 度 的 無 號 數 number ReceiveUnsigned4yteNumber() 從 所 連 接 的 藍 牙 裝 置 接 收 4 位 元 組 長 度 的 無 號 數 ReceiveUnsignedytes(number numberofytes) 從 所 連 接 的 藍 牙 裝 置 接 收 多 個 無 號 位 元 組 值 如 果 numberofytes 小 於 0, 將 持 續 讀 取 直 到 收 到 一 個 界 定 字 元 為 止 529
Send1yteNumber(text number) 對 已 連 接 的 藍 牙 裝 置 發 送 1 位 元 組 長 度 的 數 字 Send2yteNumber(text number) 對 已 連 接 的 藍 牙 裝 置 發 送 2 位 元 組 長 度 的 數 字 luetooth- Client Send4yteNumber(text number) 對 已 連 接 的 藍 牙 裝 置 發 送 4 位 元 組 長 度 的 數 字 Sendytes(list list) 對 已 連 接 的 藍 牙 裝 置 發 送 位 元 組 清 單, 即 byte array SendText(text text) 對 已 連 接 的 藍 牙 裝 置 發 送 字 串 530
圖 形 luetoothserver 功 能 luetooth server component 藍 牙 伺 服 器 元 件 屬 性 Available: oolean 回 傳 當 下 的 Android 裝 置 上 是 否 可 使 用 藍 牙 luetooth- Server CharacterEncoding 設 定 收 發 訊 息 時 的 字 元 編 碼 Delimiteryte 呼 叫 ReceiveText ReceiveSignedytes ReceiveUnsignedytes 等 函 數 時, 當 引 數 numberofytes 為 負 值, 須 使 用 界 定 字 元 (Delimiter yte) 當 資 料 串 結 尾 Enabled 本 項 需 設 為 真, 才 能 使 用 藍 牙 531
HighyteFirst: boolean 2 及 4 位 元 組 數 值 是 否 應 先 從 最 高 位 元 開 始 傳 送, 確 認 通 訊 裝 置 的 文 件 說 明, 應 能 與 app 適 當 通 訊,ig-endian 俗 稱 為 高 位 元 組 資 料 優 先 的 排 序 方 式 IsAccepting 代 表 本 luetoothserver 元 件 是 否 允 許 luetoothclient 的 連 線 要 求 IsConnected: boolean 回 傳 是 否 已 建 立 藍 牙 連 線 事 件 ConnectionAccepted() 當 藍 牙 連 線 要 求 已 被 接 受 時 呼 叫 本 事 件 luetooth- Server AcceptConnectionWithUUID(text servicename, text uuid) 接 收 由 指 定 UUID 發 起 的 連 線 要 求 ytesavailabletoreceive() 回 傳 在 不 塞 車 情 況 下 的 可 接 收 位 元 組 數 ( 估 計 值 ) 532
Disconnect() 中 斷 藍 牙 連 線 ReceiveSigned1yteNumber() 從 所 連 接 的 藍 牙 裝 置 接 收 1 位 元 組 長 度 的 有 號 數 ReceiveSigned2yteNumber() 從 所 連 接 的 藍 牙 裝 置 接 收 2 位 元 組 長 度 的 有 號 數 luetooth- Server number ReceiveSigned4yteNumber() 從 所 連 接 的 藍 牙 裝 置 接 收 4 位 元 組 長 度 的 有 號 數 ReceiveSignedytes(number numberofytes) 從 所 連 接 的 藍 牙 裝 置 接 收 多 個 有 號 位 元 組 值 如 果 numberofytes 小 於 0, 將 持 續 讀 取 直 到 收 到 一 個 界 定 字 元 為 止 ReceiveText(number numberofytes) 從 所 連 接 的 藍 牙 裝 置 接 收 一 個 字 串 如 果 numberofytes 小 於 0, 將 持 續 讀 取 直 到 收 到 一 個 界 定 字 元 為 止 ReceiveUnsigned1yteNumber() 從 所 連 接 的 藍 牙 裝 置 接 收 1 位 元 組 長 度 的 無 號 數 533
ReceiveUnsigned2yteNumber() 從 所 連 接 的 藍 牙 裝 置 接 收 2 位 元 組 長 度 的 無 號 數 ReceiveUnsigned4yteNumber() 從 所 連 接 的 藍 牙 裝 置 接 收 4 位 元 組 長 度 的 無 號 數 luetooth- Server ReceiveUnsignedytes(number numberofytes) 從 所 連 接 的 藍 牙 裝 置 接 收 多 個 無 號 位 元 組 值 如 果 numberofytes 小 於 0, 將 持 續 讀 取 直 到 收 到 一 個 界 定 字 元 為 止 Send1yteNumber(text number) 對 已 連 接 的 藍 牙 裝 置 發 送 1 位 元 組 長 度 的 數 字 Send2yteNumber(text number) 對 已 連 接 的 藍 牙 裝 置 發 送 2 位 元 組 長 度 的 數 字 Send4yteNumber(text number) 對 已 連 接 的 藍 牙 裝 置 發 送 4 位 元 組 長 度 的 數 字 Sendytes(list list) 對 已 連 接 的 藍 牙 裝 置 發 送 位 元 組 清 單, 即 byte array 534
SendText(text text) 對 已 連 接 的 藍 牙 裝 置 發 送 字 串 luetooth- Server StopAccepting() 不 再 接 收 外 部 連 線 要 求 535
圖 形 Notifier 通 知 功 能 Notifier Notifier 是 不 可 視 元 件, 用 以 顯 示 各 種 警 告 與 系 統 資 訊 Notifier 可 以 用 來 顯 示 通 知 與 警 告, 並 顯 示 系 統 資 訊 作 app 除 錯 之 用 方 法 ShowMessageDialog(Text message, Text title, Text buttontext) 彈 出 訊 息, 直 到 使 用 者 按 下 某 按 鍵 回 應 後 才 會 消 失 參 數 為 顯 示 訊 息 內 容 標 題 以 及 按 鍵 標 籤 ShowChooseDialog(Text message, Text title, Text button1text, Text button2text) 彈 出 通 知, 使 用 者 必 須 依 據 內 容, 鍵 入 兩 按 鍵 其 中 之 一 作 為 回 應 參 數 為 顯 示 的 訊 息 本 身 標 題 左 右 兩 鍵 的 標 籤 當 使 用 者 按 鍵 回 應 之 後,AfterChoosing 事 件 會 發 生 ShowTextDialog(Text message, Text title) 彈 出 使 用 這 必 須 輸 入 回 應 的 通 知, 參 數 為 訊 息 內 文 與 通 知 名 稱, 在 使 用 者 輸 入 訊 息 之 後, AfterTextInput 事 件 會 出 現 彈 出 臨 時 的 通 知, 幾 秒 鐘 後 消 失 該 參 數 是 通 知 的 內 文 536
LogError(Text message) 這 些 方 法 是 用 來 除 錯 的, 他 們 在 Android 裝 置 中 各 種 紀 錄 中 寫 入 訊 息, 這 些 紀 錄 可 以 使 用 Android 的 除 錯 工 具 來 讀 取, 比 如 像 Android Debug ridge (AD) Notifier 事 件 AfterChoosing(Text choice) 在 使 用 者 在 ShowChooseDialog 中 做 出 選 擇 後 發 出 訊 號, 參 數 為 使 用 者 所 按 的 按 鈕 代 表 的 文 字 AfterTextInput(Text response) 使 用 者 回 應 ShowTextDialog 後 發 出 信 號 這 個 參 數 內 容 為 按 鍵 上 使 用 者 輸 入 的 資 料 537
圖 形 SpeechRecognizer 語 音 辨 識 器 Speech- Recognizer 功 能 使 用 語 音 辨 識 器 元 件 聽 取 使 用 者 口 語, 並 以 Android 的 語 音 辨 識 功 能, 將 語 音 資 料 轉 換 成 文 字 屬 性 Result 辨 識 器 產 生 的 最 後 一 段 文 字 資 料 方 法 GetText() 請 使 用 者 發 言, 並 將 語 音 資 料 轉 換 為 文 字 資 料 當 有 結 果 可 用 時, 會 發 出 AfterGetting- Text 事 件 訊 號 AfterGetting(Text result) 事 件 在 辨 識 器 產 生 文 字 資 料 之 後 發 出 訊 號, 這 個 參 數 代 表 產 生 的 文 字 資 料 eforegettingtext() 在 辨 識 器 呼 叫 之 前 發 出 訊 號 538
圖 形 TextToSpeech 語 音 文 字 TextTo- Speech 功 能 使 您 的 裝 置 能 念 出 文 字 資 料 要 使 這 項 元 件 得 以 運 作, 您 的 裝 置 必 須 要 裝 有 Eyes-Free Project 建 置 的 TTS Extended Service app, 在 http://code.google.com/p/eyes-free/downloads/list 可 以 下 載 得 到 文 字 - 語 音 轉 換 元 件 有 語 音 文 字 轉 換 的 相 關 屬 性 設 定, 通 常 是 以 三 個 字 母 的 代 碼 來 表 示 語 言 以 及 使 用 區 域 舉 例 而 言, 您 可 以 區 分 英 式 與 美 式 英 語, 英 式 英 語 的 語 言 代 碼 為 eng, 區 域 代 碼 則 是 GR; 而 若 是 美 式 英 語, 語 言 代 碼 依 舊 是 eng, 而 區 域 代 碼 則 是 USA 後 面 會 列 出 完 整 的 列 表 屬 性 Country 語 音 輸 出 的 國 家 代 碼 Language 語 音 輸 出 的 語 言 代 碼 Result 詳 細 資 訊 539
方 法 Speak(Text message) 發 送 指 定 文 字 資 料 事 件 AfterSpeaking(Text result) TextTo- Speech 文 字 資 料 發 送 後 的 信 號, 該 參 數 是 依 文 字 資 料 的 結 果 產 生 的 eforespeaking() 在 文 字 資 料 發 出 前 發 出 的 信 號 以 下 是 您 可 以 選 擇 的 語 言 和 國 家 代 碼, 編 碼 是 先 以 語 言 別 區 分, 再 來 才 列 出 使 用 該 語 言 的 區 域 ces (Czech) 捷 克 語 o CZE 540
spa (Spanish) 西 班 牙 語 o o ESP USA deu (German) 德 語 o AUT o o o o o EL CHE DEU LIE LUX fra (French) 法 語 o EL o CAN o CHE o FRA o LUX 541
nld (Dutch) 荷 蘭 語 o o EL NLD ita (Italian) 義 大 利 語 o o CHE ITA pol (Polish) 波 蘭 語 o POL eng (English) 英 語 o AUS o EL o WA o LZ o CAN o GR 542
o HKG o o IRL IND o JAM o MHL o o MLT NAM o o o NZL PHL PAK o SGP o TTO o USA o VIR o ZAF o ZWE 543
圖 形 TinyWebD 功 能 非 可 視 元 件, 藉 由 網 路 服 務 通 訊 來 儲 存 與 提 取 資 訊 請 參 考 http://www.appinventorbeta.com/learn/reference/other/tinywebdb.html 屬 性 TinyWeb- D ServiceURL 事 件 GotValue(text tagfromwebd, any valuefromwebd) 表 示 GetValue 伺 服 器 的 請 求 已 達 成 ValueStored() 表 示 StoreValue 伺 服 器 請 求 的 事 件 已 達 成 544
WebServiceError(text message) 表 示 與 網 路 伺 服 器 通 訊 時 信 號 發 生 錯 誤 TinyWeb- D 方 法 GetValue(text tag) GetValue 要 求 網 路 伺 服 器 取 得 指 定 標 籤 下 的 指 定 數 值, 如 果 該 標 籤 下 沒 有 儲 存 任 何 數 值, 則 網 路 伺 服 器 會 自 行 決 定 要 回 傳 什 麼, 此 元 件 會 接 收 任 何 回 傳 的 資 料 StoreValue(text tag, any valuetostore) 要 求 網 路 伺 服 器 儲 存 指 定 標 籤 下 的 指 定 數 值 545
MEMO