-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Android Web Game App高級編程——使用HTML5、 CSS3、JavaScript

( 簡體 字)
作者:[美]Juriy Bura,Paul Coates 著 類別:1. -> 程式設計 -> 手機程式 -> Android
   2. -> 程式設計 -> 網路編程 -> HTML
   3. -> 程式設計 -> 網路編程 -> CSS
   4. -> 程式設計 -> 網路編程 -> Javascript
譯者:明道洋,田鐘曉 譯
出版社:清華大學出版社Android Web Game App高級編程——使用HTML5、 CSS3、JavaScript 3dWoo書號: 38022
詢問書籍請說出此書號!

缺書
不接受訂購

出版日:3/11/2014
頁數:506
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
不接受訂購
ISBN:9787302351030
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

這是一本為當今最有前景的移動平臺—— Android開發JavaScript 網頁游戲的書籍。游戲開發很富有挑戰性,其目的是通過不同的方式來模擬生活。如果想讓這種模擬更具有現實感、更令人信服,那么就需要應用很多知識和技巧。電子游戲是一個充滿數學的領域,最明顯的體現就是程序開發,同時也要涉及運動學、光學、聲學、人工智能、藝術、音樂和講故事等。
為什么要使用JavaScript和HTML5?如果讀者手里正捧著這本書,那么可能已經找到了這個問題的答案。我的這個疑問可能會讓人感到不解,這是由于JavaScript是開發人員可以自由使用的最受歡迎的客戶端跨平臺解決方案。從臺式計算機、智能手機到平板電腦、電視機頂盒,每一個接入互聯網的設備都有瀏覽器,毫無疑問每個瀏覽器都有JavaScript。一個用標準HTML5堆棧開發的應用程序可以運行在大多數平臺上。想讓您的游戲更快嗎?想讓臺式計算機、移動設備以及平板電腦都能運行您的游戲嗎?想讓您的游戲運行在Windows、Linux、iOS以及Android平臺上嗎?想讓用不同語言開發的游戲不需要重新編碼就能運行在不同的設備上嗎?所有這些問題,HTML5都能解決!
本書的目的是讓大家對最常見游戲類型背后的思想和開發方法有一個深入的理解。我不大喜歡技術手冊。為了能夠立竿見影,流線型的技術手冊通常以犧牲重要細節為代價。然而,能快速達到目的“如何做”的方法看起來也許更快捷,但它通常會給讀者帶來知識缺口,并且這種缺口最終還得由讀者自己去填補。當然除了最大限度地涵蓋一切基本概念外,本書也有大量這種“如何做”的范例。
這就是為什么書中有很多數學的原因,但這不可避免—— 書中確實有那么幾個數學公式。對于一個真正的游戲開發人員,不具備相當數量的數學知識是不可能的。但本書并不要求你具備非常專業的數學知識,只要掌握那些為應付各學科學習必備的數學知識就足夠了。精通數學的讀者,可能會覺得書中的一些解釋未免太直白了,那就請隨意跳過它們。
本書將刻意回避使用目前諸如jQuery、prototype.js或Underscore.js等“瑞士軍刀式”的樣式庫。我實在不想讓書中的示例和它們有什么硬性的聯系,當然這里面也不乏很多優秀的庫函數。每個程序開發者都有自己的個人偏好,我就發現與庫無關的代碼是最友好的。
本書主要內容
這是一本介紹如何使用HTML5和JavaScript進行Android游戲開發的書。它將指導您從一個空白HTML頁面開始直到完成一個有動畫、聲音、沒完沒了的對話、支持多用戶的HTML5游戲開發。
本書主要包括以下內容:
● 如何用Canvas元素進行一些游戲元素的繪制;如何使用“精靈”(sprites)和“精靈”表單;如何捕獲用戶輸入。
● 如何開發激動人心的3D世界—— 包括WebGL,一種最有前景的Web游戲開發API。
● 如何借助Node.js(一種把JavaScript的魅力帶到服務器端的工具)開發多人游戲。
● 如何實現不同用戶之間的實時通信;如何讓用戶在在線比賽中相互競爭。借助JavaScript,所有這些問題都將迎刃而解,沒有必要去了解其他服務器端語言就可以編寫高效的服務器端代碼。
● 如何讓計算機控制的角色表現智能,在AI算法的幫助下自己做決策,找到通向游戲世界的路。
● 如何添加不錯的聲效。
● 如何在Android Market上發布我們的“杰作”。
該書將涉及游戲開發的一些優化算法,這些優化算法并不僅僅局限于JavaScript。一旦精通了它們,將能快速地掌握其他平臺上的游戲開發。理解3D渲染或路徑查找機制,將有助于我們構建任何平臺上的游戲,并不僅僅只局限于網頁上的游戲開發。
總之,該書主要和游戲開發有關,同時也將告訴您如何編寫世界上最激動人心的應用程序。如果這么做了,那么樂在其中!
與本書無關的內容
總的說來,本書和Web編程沒有多大關系,書中不會涉及“HTML是什么”或者“HTTP如何工作”這樣的問題。我假定本書的讀者已經了解如何編寫最基本的JavaScript代碼并且能把代碼嵌入到HTML頁面。您不必是一位Web方面的開發專家,但起碼要理解編程語言的一些核心概念。操作符、函數、對象以及變量這些術語對你來說應該是耳熟能詳的。如果這些概念讓你感覺不大舒服,也許你應該從Terry McNavage的JavaScript for Absolute Beginners (Apress, 2010)開始。
Terry的這本書并不是關于如何開發游戲的,書中沒有關卡創建、角色性格塑造或虛擬世界的經濟學設計之類的內容,有關博弈、故事、情節、人物以及游戲設置諸如此類的任何內容同樣也超出了本書的討論范圍。而這些方面的話題又是極其讓人感興趣,有一些書籍專門進行這些方面的探討。這里我要給大家推薦這樣一本書:由Richard Rouse III編寫的Game Design: Theory and Practice, Second Edition(Jones & Bartlett,2004)。
本書讀者對象
這是一本寫給開發人員的書,將指導你掌握有關游戲開發方面的技術,這些技術主要包括2D和3D圖形渲染、用戶輸入、聯網、聲音、人工智能以及如何應用市場發布程序。我努力讓本書盡可能的實用,書中講解的每一個概念都用示例代碼進行了詳細說明。可以在Android智能手機和平板電腦上運行這些代碼,自己動手運行代碼是入門非常重要的方法。
本書適用于那些正打算為Android設備開發網頁游戲的Web開發人員。本書的讀者不需要有使用某個特定JavaScript庫的任何經驗—— 或者甚至是為移動平臺搭建站點的經驗。如果你知道如何從頭開始制作個人主頁,并且能夠在里面使用一些JavaScript。這差不多就足夠了,可以開始了!
如果你是一個其他平臺的游戲開發人員,并且想利用自己的經驗進行HTML5和Android方面的開發,本書也是適用的。如果這樣的話,本書的部分章節內容可能對于這些讀者來說是非常熟悉甚至是平淡無奇的。例如,如果你有在Java應用開發中使用OpenGL的經驗,可能知道什么是著色器或者如何把紋理映射到多邊形,那么請隨意跳過這些章節,只關注書中一些實用的方面—— JavaScript程序清單和示例。
有關藝術素材
本書有很多極好的藝術素材,特別是由Sergey Lesiuk 創作的一些等角貼片(isometric tiles)和建筑,以及由Marcus工作室創作的卡通武士形象。由于這些素材完整的授權文本隨文件一起分發,從而沒有令人棘手的限制,無論免費項目還是商業項目都可以使用它們。
免費且沒有使用限制的藝術素材對游戲開發的初期階段是非常重要的。比起一團亂糟糟的圖像,工作在一個看起來更像游戲的游戲上會讓人的感覺更好。非商業化藝術素材免費共享出來的活動是由Daniel Cook最早發起的,Daniel Cook通過自己的網站(www.lostgarden.com)為藝術家和藝術設計師提供免費使用的藝術素材。我支持讀者朋友加入免費共享的行列,并把游戲開發的一些素材免費共享出來—— 開發者社區將非常感激你的善舉。
本書組織結構
本書共分四部分。好笑的是:我們稱每部分為一個“世界”。
2D世界
書中這部分內容主要有關2D圖像和Canvas(畫布)元素。我們將從第1章“入門”開始,配置開發所需要的工具:IDE(集成開發環境)、Web服務器、Java SDK以及Android模擬器。一旦這些配置完成,游戲開發的準備工作也就完成了。
第2章“瀏覽器中的圖形:canvas元素”將是見證奇跡開始的地方。本章將介紹如何通過HTML5 canvas進行圖形渲染,如何使用路徑和曲線、漸變和填充、變換以及2D上下文聲明。
第3章“創建第一個游戲”將介紹如何創建一個“四球游戲”項目。這個小項目將使用第2章創建的一些元素,并向大家詳細闡釋一些重要的有關游戲開發的基礎概念,例如:游戲狀態、機制,回合驗證(turn validation)以及輸/贏條件等。
現代游戲沒有五顏六色的動畫是不可能的。第4章“動畫和‘精靈’”主要讓我們對圖像的加載過程有一個了解,指導大家一幀一幀地繪制一個跑動的動畫角色。本章還將涉及更多的高級動畫效果,例如,插值、加速、減速以及緩動函數等。
第5章“事件處理和用戶輸入”將介紹如何處理游戲中輸入的方法,了解如何在復雜輸入模式下捕獲瀏覽器事件和創建一個高級API(應用程序編程接口)。本章還將探討拖放以及如何使用顏色蒙版進行完美像素的挑選。
到此,可以開發一個簡單的游戲了,一些“入門工具”也被盡收囊中,所以是時候轉向更高級的話題—— 游戲世界的渲染。
第6章“呈現虛擬世界”將介紹如何呈現游戲世界。將從最簡單的瓦片地圖(tile-map)技術開始,并逐步使之完善。將了解如何緩存地圖片段,如何使用屏幕外緩沖區以及如何對諸如樹木和巖石等外部物品進行呈現等內容。
第7章“創建等距引擎”主要介紹2D等距游戲引擎,是本書占用篇幅最多的一章。對于策略游戲、RPG(角色扮演游戲)、戰術游戲以及其他流行的種種游戲,等距視圖都是最受歡迎的游戲世界表征方法。我們將了解有關等距投射、瓦片模型以及如何對它們進行渲染的方法。除了第6章中講述的技巧,本章將介紹更多的最優化渲染方法—— 臟矩形算法(dirty rectangles algorithm)以及世界對象的群集。本章我們將收獲第二個大項目—— 一個用于下一個策略游戲或RPG開發的等距引擎。
3D世界
這部分將介紹3D圖形,從最基本的渲染概念到WebGL。
第8章“瀏覽器中的3D”將了解3D是什么、它如何工作以及它背后的數學原理。
第9章“使用WebGL”將主要介紹WebGL—— 一個正進入移動世界并且非常有前景的Web標準。本章可以了解如何初始化WebGL、編寫著色器、使用幾何數據、載入紋理以及使用3D建模。
連接世界
“連接世界”部分全部與服務器通信和對話有關。從學習Node.js和Express框架開始,第10章“服務器端”覆蓋了從Node安裝直到一個簡單游戲服務器構建的主要過程—— 包括如何使用合適的模板、會話處理、登錄、錯誤處理以及通知。
第11章“與服務器對話”將帶大家回到客戶端,學習如何通過Web頁面連接服務器以及如何同其他玩家進行數據交換。我們將了解不同的通信方式(通常也稱為“傳輸”),并了解它們的優缺點。
第12章“構建多人游戲”,本章我們將收獲第三個大項目—— 一個多用戶版本的四球游戲—— 使用Node.js、Express以及Socket.IO。
提高世界
最后一部分主要介紹有關游戲開發的細枝末節。
第13章“游戲中的AI”主要介紹人工智能,讓計算機控制的對手栩栩如生。你將了解有關路徑發現和做決策的基本方法—— 一種讓機器人看起來更智能的方法。
第14章“JavaScript游戲引擎”主要探討游戲引擎,同時將介紹Crafty.js,一個用JavaScript開發的小而精悍的游戲引擎。本章將完成第四個游戲—— 逃跑的武士。
第15章“構建原生應用”講解了如何把一個HTML5游戲作為原生應用發布到Android Market。將詳細講解這一過程的所有步驟—— 打包游戲,使用密鑰進行簽名,從做好發布準備直到發布,然后升級游戲到下一個版本。
第16章“添加聲音”將使用SoundManager2加載和播放“逃跑的武士”游戲中的聲音,了解MP3背景音樂循環播放以及如何把游戲中的事件通知給玩家等相關內容。
附錄
附錄A“調試客戶端JavaScript”將探討如何調試JavaScript游戲。我們努力編寫優良的代碼,但我們都是人,錯誤總是難以避免的。這個附錄能讓我們對如何發現錯誤并快速排除它們有一個好的理解,從而節省開發時間。
聯系作者
如果有任何問題、意見、建議以及和本書或HTML5游戲開發相關的大致想法,我將非常高興通過juriy.bura@gmail.com接收大家的反饋。我的網站地址是http://juriy.com,或在Twitter上@juriy。

內容簡介:

  《Android Web Game App高級編程——使用HTML5、CSS3、JavaScript》能夠讓我們對游戲開發的整個過程有一個深入的理解,創建屬于我們自己的多人在線游戲。本書將理論和實踐并重,對Android平臺上的網頁游戲開發進行了深入淺出的探討。通過一些前沿技術在瀏覽器中構建游戲引擎、建立實時的服務器通信,借助人工智能和富媒體創建神奇的游戲體驗。
  本書通過一些激動人心的游戲項目,讓你親歷并見證游戲開發方方面面的技術和實踐。主要包括以下內容:
●    設置開發環境、運行應用程序、調試和剖析代碼
●    在瀏覽器中使用圖形和動畫
●    優化渲染——讓游戲運行得更快
●    處理事件和用戶輸入
●    創建等軸測游戲引擎
●    學習3D編程和WebGL的一些基礎知識
●    使用JavaScript創建完善的服務器端支持
●    使用人工智能讓游戲更豐富多彩
  只需要具備一些HTML和JavaScript的基礎知識,就可以開啟我們的Android Web Game App高級編程之旅,從一個空白的HTML網頁開始,最后將收獲多人在線游戲(有豐富多彩的圖像、聲音、動畫等)開發必需的一些知識和技巧——即使你以前沒有游戲開發和服務器端編程的經驗。

目錄:

第1章 入門 1
1.1 工具 2
1.1.1 所需要的組件 2
1.1.2 Java開發工具包 5
1.1.3 集成開發環境 5
1.1.4 Web服務器 10
1.1.5 Android SDK和模擬器 12
1.2 技術 15
1.2.1 代碼 16
1.2.2 面向對象編程 20
1.2.3 移動瀏覽器簡介 28
1.3 本章小結 29
第2章 瀏覽器中的圖形:canvas
元素 31
2.1 游戲剖析 31
2.2 在瀏覽器中繪圖 32
2.3 HTML基礎設置 33
2.4 canvas的概念 34
2.4.1 上下文 35
2.4.2 坐標系統 36
2.5 繪制圖形 39
2.5.1 矩形 39
2.5.2 路徑 41
2.5.3 子路徑 48
2.6 描邊和填充 50
2.6.1 純色 50
2.6.2 漸變 50
2.6.3 圖案 55
2.7 上下文狀態及變換 57
2.7.1 平移 58
2.7.2 縮放 59
2.7.3 旋轉 60
2.7.4 變換疊加 60
2.7.5 上下文狀態 61
2.7.6 示例項目中的上下文轉換 63
2.8 示例游戲項目的輸出結果 64
2.9 本章小結 67
第3章 創建第一個游戲 69
3.1 HTML5游戲框架 70
3.1.1 標準框架 70
3.1.2 強制方向 74
3.2 游戲架構 76
3.3 創建游戲 78
3.3.1 呈現游戲盤 78
3.3.2 游戲狀態及邏輯 84
3.3.3 將組件結合在一起:Game類 90
3.3.4 將Game類添加到HTML
框架中 93
3.4 本章小結 95
第4章 動畫和“精靈” 97
4.1 “精靈” 98
4.1.1 加載圖像 99
4.1.2 繪制圖像 110
4.1.3 “精靈”表單 114
4.2 動畫基礎 116
4.2.1 最簡單的動畫 117
4.2.2 JavaScript線程模式 118
4.2.3 定時器 119
4.2.4 改善動畫 123
4.3 本章小結 135
第5章 事件處理和用戶輸入 137
5.1 瀏覽器事件 138
5.1.1 桌面瀏覽器與Android
瀏覽器輸入 138
5.1.2 通過事件捕獲用戶輸入 139
5.1.3 從事件獲取更多 142
5.2 自定義事件 147
5.3 自定義事件偵聽器和發射器 148
5.3.1 EventEmitter:基類 149
5.3.2 事件與回調 151
5.4 自定義事件 152
5.4.1 實現InputHandlerBase 155
5.4.2 創建MouseInputHandler 158
5.4.3 創建TouchInputHandler 161
5.5 高級輸入 162
5.5.1 拖放 162
5.5.2 完美像素拾取和圖像遮罩 164
5.5.3 復合操作 165
5.6 模擬操縱桿 168
5.7 本章小結 171
第6章 呈現虛擬世界 173
6.1 瓦片地圖 173
6.1.1 瓦片地圖背后的思想 174
6.1.2 實現瓦片地圖 175
6.1.3 測量FPS 180
6.2 優化渲染性能 182
6.2.1 僅繪制所需要的內容 182
6.2.2 屏幕外緩沖區 184
6.2.3 緩存視口周圍的區域 187
6.3 世界對象 191
6.3.1 坐標系統 192
6.3.2 實現WorldObjectRenderer 193
6.3.3 呈現順序 196
6.3.4 優化 198
6.4 等距視圖 200
6.5 本章小結 202
第7章 創建等距引擎 203
7.1 設置 204
7.1.1 計劃 205
7.1.2 準備工作區 206
7.1.3 基本代碼 206
7.1.4 實用函數 209
7.2 等距地形 216
7.2.1 坐標系統 216
7.2.2 呈現瓦片 217
7.2.3 實現IsometricTileLayer 221
7.3 呈現對象 229
7.3.1 實現對象群集 232
7.3.2 對象緩存 235
7.3.3 處理移動 238
7.3.4 組合對象 240
7.3.5 對象層:下一步驟 242
7.4 “臟”矩形 242
7.4.1 工作機制 243
7.4.2 實現 245
7.4.3 與層集成 249
7.4.4 創建“臟”矩形 252
7.5 UI和層管理器 254
7.5.1 層管理器(LayerManager) 255
7.5.2 UI 257
7.6 交互 261
7.6.1 事件傳播和處理 262
7.6.2 停止傳播 265
7.7 本章小結 267
第8章 瀏覽器中的3D 269
8.1 3D渲染簡介 269
8.2 3D渲染的工作機制 271
8.2.1 數學 271
8.2.2 一個3D示例 271
8.3 “Hello World”3D引擎 273
8.3.1 模型和場景 273
8.3.2 渲染 275
8.4 本章小結 286
第9章 使用WebGL 289
9.1 WebGL的基礎 289
9.1.1 初始化WebGL 290
9.1.2 幾何體 292
9.1.3 OpenGL ES 2.0渲染管線 294
9.1.4 使用緩沖區 295
9.1.5 著色器和GLSL 297
9.2 基本示例:渲染3D立方體 302
9.2.1 在Web頁面中使用著色器 302
9.2.2 渲染“Hello World” 304
9.3 探索WebGL 309
9.3.1 顏色 309
9.3.2 紋理 313
9.4 本章小結 320
第10章 服務器端 323
10.1 Node.js基礎 324
10.1.1 Node.js概述 324
10.1.2 編程模式 325
10.1.3 安裝Node.js 327
10.1.4 調試Node腳本 328
10.2 編寫Node.js腳本 330
10.2.1 異常和堆棧跟蹤 330
10.2.2 全局命名空間和Node
模塊 331
10.2.3 編寫第一個模塊 335
10.2.4 發現模塊 337
10.2.5 使用NPM 338
10.3 回歸現實:構建游戲服務器 341
10.3.1 Node的Web開發框架 341
10.3.2 基本輸出 341
10.3.3 呈現Web頁面 345
10.4 理解中間件 353
10.5 內務處理 355
10.5.1 錯誤報告 355
10.5.2 日志 359
10.5.3 服務器配置 361
10.6 本章小結 363
第11章 與服務器對話 365
11.1 瀏覽器中網絡通信的演變 365
11.2 服務器設置 367

11.3 為基本的HTTP請求使用
XMLHttpRequest API 368
11.3.1 普通XHR HTTP請求 369
11.3.2 XHR錯誤處理 370
11.3.3 XMLHttpRequest Level 2 371
11.3.4 使用二進制數據 372
11.4 反向Ajax 374
11.4.1 存在的問題 375
11.4.2 解決方案 375
11.4.3 最佳解決方案 375
11.4.4 可接受的解決方案 377
11.4.5 過時的解決方案 381
11.5 現場測試“傳輸” 382
11.6 本章小結 384
第12章 構建多人游戲 387
12.1 網絡游戲構成 387
12.1.1 游戲的體系結構:從單機版
到多人版 388
12.1.2 項目結構 391
12.2 Socket.IO游戲大廳 392
12.2.1 客戶端-服務器通信 393
12.2.2 添加游戲大廳屏幕 396
12.3 添加游戲設置 401
12.3.1 在客戶端和服務器之間
共享邏輯 401
12.3.2 服務器端 403
12.3.3 客戶端 408
12.4 本章小結 415
第13章 游戲中的AI 417
13.1 AI對于游戲的重要性 418
13.2 路徑查找概述 418
13.3 圖論 420
13.3.1 圖的概念 420
13.3.2 在JavaScript中實現圖 422
13.4 構建路徑查找AI 426
13.5 路徑查找圖的構造方法 432
13.5.1 全手工圖 432
13.5.2 光線投射(視線法) 433
13.5.3 導航網格 433
13.6 決策 434
13.7 本章小結 438
第14章 JavaScript游戲引擎 439
14.1 圖形API、庫以及游戲引擎 439
14.1.1 圖形API 440
14.1.2 圖形庫 440
14.1.3 游戲引擎 441
14.2 Crafty 442
14.2.1 實體組件系統 443
14.2.2 Crafty Hello World 446
14.2.3 Crafty游戲 449
14.2.4 加載“精靈” 449
14.2.5 呈現地形和對象 451
14.2.6 動畫 453
14.2.7 與實體和事件系統進行
交互 454
14.3 最終版本 455
14.4 本章小結 458
第15章 構建原生應用 459
15.1 原生應用 460
15.2 設置Apache Cordova
(PhoneGap) 461
15.2.1 安裝Cordova 462
15.2.2 安裝Apache Ant 462
15.3 構建原生應用 463
15.3.1 創建一個空的Android
項目 463
15.3.2 對空Android項目進行
測試 464
15.3.3 Cordova項目的基礎 465
15.3.4 聯網 469
15.3.5 最后的“潤色”:名稱、
圖標和全屏模式 470
15.4 使用原生API 473
15.5 準備市場 476
15.5.1 應用程序簽名 476
15.5.2 創建數字密鑰 477
15.5.3 對該應用程序簽名 478
15.5.4 在Google Play上發布 479
15.5.5 更新應用程序 483
15.6 本章小結 484
第16章 添加聲音 485
16.1 網頁中的音頻 486
16.1.1 audio標簽 486
16.1.2 Web Audio API 487
16.1.3 Android瀏覽器中的
聲音 488
16.2 使用SoundManager2 489
16.2.1 初始設置 489
16.2.2 循環 491
16.2.3 添加游戲聲音 493
16.3 在Cordova應用程序中
播放聲音 495
16.4 用戶體驗 496
16.5 本章小結 497
16.6 進一步探索 497
附錄A 調試客戶端JavaScript 499


序: