ActionScript 3.0 Cookbook中文版
ActionScript 3.0 Cookbook中文版
Joey Lott, Darron Schall, Keith Peters
陈建勋 译
出版时间:2007年11月
当你需要用Adobe Flash 或Adobe Flex 软件迅速将工作做好时,这就是一本帮你实现目标的书。本书有超过300道的锦囊妙技,这个包罗万象的工具箱,就是你寻找 ActionScript3.0 答案的一站式资源。

本书提供可快速查找(及交叉参考)的锦囊妙技,包括各种疑难问题的解法,例如:

*检测用户的Flash Player 版本或操作系统
*格式化日期和货币类型
*接受用户输入及操作文字字符串
*在运行时绘制各种形状
*访问音频和视频
*使用Flash Remoting 进行远程过程调用
*加载、发送和检索XML 数据

O'Reilly 广受欢迎的Cookbook 格式(问题 /解法 /讨论)所提供的锦囊妙计,会简略说明解法的运作方式及原因。因此,你可以将其加以调整,运用于将来会碰到的类似情况。对那些说“我懂理论,但不知道怎么起步”的人来说,本书针对Flash 和Flex 2 开发人员每天都会碰到的真实问题,提供了即时可用的解答。Joey Lott 是Flash 社区群里著名的演讲人和顾问,也是O'Reilly 《Flash 8 Cookbook 》一书的作者。

Darron Schall 是一名顾问,擅长RIA 开发及Flash 平台开发。Keith Peters 是一名得过奖、专职自由接案的Flash 开发人员。
  1. 前言 I
  2. 第1章:ActionScript基础 1
  3. 1.1 创建ActionScript工程 2
  4. 1.2 调整应用程序的属性 3
  5. 1.3 ActionScript代码要放在哪里 4
  6. 1.4 如何追踪消息 8
  7. 1.5 处理事件 10
  8. 1.6 响应鼠标和按键事件 12
  9. 1.7 使用数学运算符 14
  10. 1.8 检查相等性或比较值 16
  11. 1.9 依条件采取动作 19
  12. 1.10 进行复杂的条件测试 24
  13. 1.11 多次重复运算 26
  14. 1.12 随时间变化而重复任务 30
  15. 1.13 创建可重用的代码 32
  16. 1.14 让方法概括化以提升可重用性 34
  17. 1.15 退出方法 36
  18. 1.16 取得方法的结果 37
  19. 1.17 处理错误 38
  20. 第2章:自定义类 43
  21. 2.1 创建自定义类 43
  22. 2.2 决定在哪儿保存类 48
  23. 2.3 创建行为像方法的属性 49
  24. 2.4 创建静态方法和属性 51
  25. 2.5 创建子类 52
  26. 2.6 实现父类方法的子类版本 54
  27. 2.7 创建常量 56
  28. 2.8 分派事件 57
  29. 第3章:运行时环境 58
  30. 3.1 检测播放器版本 58
  31. 3.2 检测操作系统 60
  32. 3.3 检查播放器类型 61
  33. 3.4 检查系统语言 61
  34. 3.5 检测显示设定值 63
  35. 3.6 缩放影片 65
  36. 3.7 改变对齐方式 66
  37. 3.8 隐藏Flash Player的菜单项目 67
  38. 3.9 检测设备的音频功能 68
  39. 3.10 检测设备的视频功能 69
  40. 3.11 提示用户修改播放器设定值 70
  41. 3.12 处理系统安全 71
  42. 第4章:数字和数学 74
  43. 4.1 以不同基数表示数字 74
  44. 4.2 不同数字系统间的转换 75
  45. 4.3 对数字取整 77
  46. 4.4 在前端或尾端插入零或空格 79
  47. 4.5 不用掩码而用格式化数字来显示 83
  48. 4.6 格式化金额 84
  49. 4.7 产生随机数 86
  50. 4.8 模拟抛硬币 88
  51. 4.9 模拟掷骰子 91
  52. 4.10 模拟玩纸牌 93
  53. 4.11 产生唯一性数字 95
  54. 4.12 转换角度度量单位 96
  55. 4.13 计算两点间的距离 97
  56. 4.14 确定圆上的点 98
  57. 4.15 度量单位间的转换 101
  58. 第5章:数组 103
  59. 5.1 加元素到数组的开始和结尾 104
  60. 5.2 遍历数组 106
  61. 5.3 搜索数组中的匹配元素 107
  62. 5.4 移除元素 111
  63. 5.5 在数组中间插入元素 113
  64. 5.6 把字符串转换成数组 114
  65. 5.7 把数组转换成字符串 115
  66. 5.8 创建数组的独立副本 116
  67. 5.9 存储复杂或多维数据 120
  68. 5.10 排序或反转数组 123
  69. 5.11 实现自定义排序 127
  70. 5.12 数组元素随机化 129
  71. 5.13 取得最小或最大元素 131
  72. 5.14 比较数组 131
  73. 5.15 创建关联数组 133
  74. 5.16 读取关联数组元素 135
  75. 第6章:显示清单 137
  76. 6.1 把项目添加到显示清单 141
  77. 6.2 从显示清单中移除项目 146
  78. 6.3 前后移动对象 149
  79. 6.4 创建自定义可视化类 153
  80. 6.5 创建简单按钮 156
  81. 6.6 运行时加载外部图片 161
  82. 6.7 外部影片加载和交互 165
  83. 6.8 创建鼠标交互 168
  84. 6.9 用鼠标拖放对象 173
  85. 第7章:绘图和遮罩 181
  86. 7.1 设置线条样式 182
  87. 7.2 设置渐变线条样式 183
  88. 7.3 绘制直线 184
  89. 7.4 绘制曲线 186
  90. 7.5 绘制弧线 187
  91. 7.6 绘制矩形 187
  92. 7.7 绘制圆 189
  93. 7.8 绘制椭圆 190
  94. 7.9 绘制三角形 191
  95. 7.10 绘制正多边形 192
  96. 7.11 绘制星形 193
  97. 7.12 用实色或透明色填充形状 194
  98. 7.13 用渐变色填充形状 195
  99. 7.14 用位图填充形状 197
  100. 7.15 编写遮罩 198
  101. 第8章:位图 200
  102. 8.1 创建BitmapData对象 201
  103. 8.2 添加 Bitmap 到显示清单 202
  104. 8.3 绘制显示对象到Bitmap 203
  105. 8.4 加载外部图像到Bitmap 204
  106. 8.5 操作像素 205
  107. 8.6 创建矩形填充 207
  108. 8.7 创建Flood填充 208
  109. 8.8 复制像素 209
  110. 8.9 复制通道 211
  111. 8.10 创建噪声 212
  112. 8.11 创建Perlin噪声 214
  113. 8.12 使用阈值 218
  114. 8.13 对位图应用滤镜 221
  115. 8.14 两张位图的溶解过度 224
  116. 8.15 滚动位图 227
  117. 第9章:文本 229
  118. 9.1 在文本域周围创建轮廓 230
  119. 9.2 为文本域创建背景 230
  120. 9.3 建立用户输入域 231
  121. 9.4 建立密码输入域 232
  122. 9.5 过滤文本输入 233
  123. 9.6 设置域的最大长度 234
  124. 9.7 显示文本 235
  125. 9.8 显示HTML格式的文本 235
  126. 9.9 缩减空白 236
  127. 9.10 调整文本域大小以适应内容 237
  128. 9.11 用程序手段滚动文本 238
  129. 9.12 响应滚动事件 241
  130. 9.13 格式化文本 242
  131. 9.14 格式化用户输入文本 247
  132. 9.15 格式化现有文本的一部分 248
  133. 9.16 设置文本域的字体 249
  134. 9.17 嵌入字体 250
  135. 9.18 创建可以旋转的文本 252
  136. 9.19 显示Unicode文本 252
  137. 9.20 给文本域赋焦点 253
  138. 9.21 用ActionScript选取文本 254
  139. 9.22 在文本域内设置插入点 255
  140. 9.23 响应文本的选取和取消选取 256
  141. 9.24 响应用户文本输入 257
  142. 9.25 为文本添加超链接 258
  143. 9.26 从超链接调用ActionScript 260
  144. 9.27 使用高级文本布局 261
  145. 9.28 应用高级抗锯齿功能 264
  146. 9.29 替换文本 265
  147. 9.30 取出系统字体清单 265
  148. 第10章:滤镜和转换 266
  149. 10.1 应用颜色变化 266
  150. 10.2 应用色相浓度 267
  151. 10.3 重置颜色 268
  152. 10.4 切变 269
  153. 10.5 应用基本滤镜 269
  154. 10.6 应用高级滤镜效果(浮雕等) 272
  155. 10.7 浮雕 274
  156. 10.8 检测边缘 275
  157. 10.9 锐化 276
  158. 10.10 制作数码负片 276
  159. 10.11 应用灰阶 277
  160. 10.12 改变饱和度 278
  161. 10.13 改变亮度 278
  162. 10.14 改变对比度 279
  163. 第11章:编程动画 281
  164. 11.1 移动对象 282
  165. 11.2 以特定方向移动对象 283
  166. 11.3 缓慢移动 285
  167. 11.4 加速度 287
  168. 11.5 弹跳 289
  169. 11.6 使用三角法 291
  170. 11.7 对其他属性应用动画技术 294
  171. 第12章:字符串 298
  172. 12.1 连接字符串 298
  173. 12.2 在字符串内使用引号和撇号 302
  174. 12.3 插入特殊空白符 303
  175. 12.4 查找子字符串 304
  176. 12.5 提取子字符串 308
  177. 12.6 把字符串解析为一组单词 311
  178. 12.7 移除和替换字符及单词 315
  179. 12.8 一次取出一个字符 317
  180. 12.9 转换大小写 319
  181. 12.10 剪去空白 320
  182. 12.11 按单词或按字符反转字符串 322
  183. 12.12 字符串和Unicode/ASCII转换 323
  184. 第13章:正则表达式 327
  185. 13.1 了解正则表达式模式 328
  186. 13.2 测试正则表达式 333
  187. 13.3 寻找匹配模式者 336
  188. 13.4 使用模式移除和替换字符和单词 338
  189. 13.5 创建非贪婪模式 341
  190. 13.6 以常见模式验证用户输入 343
  191. 第14章:日期和时间 348
  192. 14.1 找出当前日期和时间 348
  193. 14.2 取出日期值 351
  194. 14.3 取出星期或月份名称 352
  195. 14.4 格式化日期和时间 353
  196. 14.5 把秒数或毫秒数格式化成分钟数或秒数 355
  197. 14.6 DMYHMSM和纪元日毫秒数之间的转换 356
  198. 14.7 使用计时器 357
  199. 14.8 计算已经过的时间或者日期间的时间间隔 358
  200. 14.9 解析字符串型日期 363
  201. 第15章:声音编程 365
  202. 15.1 创建Sound对象并加载声音 365
  203. 15.2 启动和停止声音 367
  204. 15.3 设置声音缓冲区 368
  205. 15.4 偏移声音的起始位置 369
  206. 15.5 多次播放声音(循环) 370
  207. 15.6 取得声音文件的大小 371
  208. 15.7 读取声音文件的ID3标签 373
  209. 15.8 找出声音何时完成播放 375
  210. 15.9 跟踪声音的播放进度 377
  211. 15.10 暂停和重启声音 379
  212. 15.11 读取声音的等级 381
  213. 15.12 停止所有声音 382
  214. 15.13 读取声音频谱 383
  215. 15.14 改变声音的音量或平衡值 385
  216. 15.15 创建声音应用程序 386
  217. 第16章:视频 392
  218. 16.1 载入和播放视频 392
  219. 16.2 控制视频声音 394
  220. 16.3 读取播放时间 394
  221. 16.4 读取视频持续时间 395
  222. 16.5 控制播放时间 397
  223. 16.6 视频缩放 398
  224. 16.7 管理与监控缓冲和加载 399
  225. 16.8 监听信号点 400
  226. 16.9 对视频应用滤镜 401
  227. 16.10 暂停和继续播放视频 402
  228. 16.11 停止视频 402
  229. 16.12 洗刷视频 403
  230. 16.13 清理视频显示 405
  231. 16.14 求出用户带宽 405
  232. 第17章:存储持久化数据 409
  233. 17.1 创建和打开本地共享对象 409
  234. 17.2 把数据写入共享对象 411
  235. 17.3 保存本地共享对象 411
  236. 17.4 从共享对象读取数据 414
  237. 17.5 从共享对象移除数据 415
  238. 17.6 序列化自定义类 416
  239. 17.7 在Flash应用程序之间共享数据 418
  240. 17.8 控制本地共享对象的大小 420
  241. 第18章:与其他影片通信 422
  242. 18.1 创建本地连接 423
  243. 18.2 发送数据 427
  244. 18.3 验证接到的经由本地连接的通信 430
  245. 18.4 接收来自其他域的本地通信 432
  246. 第19章:发送和加载数据 435
  247. 19.1 从文本文件加载变量 436
  248. 19.2 从服务端脚本加载变量 440
  249. 19.3 加载文本块(包括HTML和XML) 442
  250. 19.4 检查加载进度 444
  251. 19.5 访问下载中的数据 446
  252. 19.6 发送数据到服务端脚本 447
  253. 19.7 传送变量并处理返回的结果 449
  254. 第20章:XML 452
  255. 20.1 了解XML结构(读写XML) 454
  256. 20.2 创建XML对象 456
  257. 20.3 添加元素到XML对象 458
  258. 20.4 添加文本节点到XML对象 461
  259. 20.5 添加属性到XML元素 463
  260. 20.6 读取XML树中的元素 464
  261. 20.7 通过名称查找元素 465
  262. 20.8 读取文本节点及其值 468
  263. 20.9 读取元素的属性 470
  264. 20.10 移除元素、文本节点和属性 473
  265. 20.11 加载XML 474
  266. 20.12 从不同域加载XML 475
  267. 20.13 发送XML 476
  268. 20.14 搜索XML 482
  269. 20.15 在XML中使用HTML和特殊字符 485
  270. 第21章:Web Services和Flash Remoting 487
  271. 21.1 调用Web services方法 488
  272. 21.2 处理Web services响应 489
  273. 21.3 处理Web services错误 490
  274. 21.4 调用Flash Remoting方法 490
  275. 21.5 处理Flash Remoting响应 492
  276. 第22章:建立集成应用程序 494
  277. 22.1 调用JavaScript函数 494
  278. 22.2 调用ActionScript函数 495
  279. 22.3 从HTML传递参数 497
  280. 第23章:文件管理 499
  281. 23.1 下载文件 499
  282. 23.2 侦测用户何时选择要下载的文件 502
  283. 23.3 监视下载进度 503
  284. 23.4 浏览文件 503
  285. 23.5 过滤显示在浏览窗口中的文件 504
  286. 23.6 侦测用户何时选择要上传的文件 506
  287. 23.7 上传文件 506
  288. 23.8 监视文件上传进度 507
  289. 第24章:Socket编程 509
  290. 24.1 连接至Socket服务器 510
  291. 24.2 发送数据 513
  292. 24.3 接收数据 515
  293. 24.4 和Socket服务器握手 519
  294. 24.5 和Socket服务器断开连接 523
  295. 24.6 处理Socket错误 524
  296. 附录A:Latin-1字符集的Unicode转义序列 527
  297. 索引 533
书名:ActionScript 3.0 Cookbook中文版
译者:陈建勋 译
国内出版社:中国电力出版社
出版时间:2007年11月
书号:978-7-121-05154-8
原版书出版商:O'Reilly Media
Joey Lott
 
Joey Lott 是O'Reilly出版的好几本有关 Macromedia 技术图书的作者,包括《Flash 8 Cookbook》、《Programming Flash Communication Server》,以及《ActionScript Cookbook》,也是《Flash 8 ActionScript Bible》(Wiley)和《Advanced ActionScript with Design Patterns》(Adobe Press,2006 年 10 月)的作者。Joey 从 1999 年起就在教授 Flash 和 ActionScript。他在互联网行业的专业经验,包括共同创立 RightSpring 公司,以及担任 YourMobile/Premium Wireless Services(J2EE B2C 应用程序)和 Ads.com(主导一个 J2EE B2B 应用程序的开发)的顾问。
Joey Lott is the author of several O'Reilly books on Macromedia technology,including Flash 8 Cookbook, Programming Flash Communication Server, and the ActionScript Cookbook. He is also the author of Flash 8 ActionScript Bible (Wiley) and Advanced ActionScript with Design Patterns (Adobe Press, October 2006). Joey has been teaching Flash and ActionScript since 1999. His professional experience in the Internet industry includes co-founding RightSpring, Inc., as well as consulting for YourMobile/Premium Wireless Services (J2EE B2C application) and Ads.com(leading the development of a J2EE B2B application).

Joey Lott is a founding partner in The Morphic Group (www.themorphicgroup.com),
specializing in Flex application development. Joey has also written many other leading
books on Flex and Flash-related technologies, including O’Reilly’s ActionScript 3.0
Cookbook.
 
 
Darron Schall
 
Darron Schall 是独立顾问,专长是 Flash 平台,毕业于 Lehigh 大学计算机科学系。他从早期就一直使用 ActionScript,在 Flash 和 Flex 社群中讲话很有份量。他积极参与 Flash 开源运动项目,从软件开发工具到Commodore 64 模拟器都有。Darron 在各种会议上演讲ActionScript,也对一些图书和杂志做出贡献。你可以在 http://www.darronschall.com 找到他有关 Flash 平台的博客。
Darron Schall is an independent consultant specializing in the Flash platform, with a Bachelor's Degree in Computer Science from Lehigh University. He has been using ActionScript since the early days and is a prominent voice in the Flash and Flex communities. He is actively involved in the Open Source Flash movement with projects ranging from software development tools to a Commodore 64 emulator.
Darron has spoken at various conferences about ActionScript and has contributed to books and magazines. You can find his Flash platform-related blog at http://www.darronschall.com.
 
 
Keith Peters
 
Keith Peters 是波士顿地区的 Flash 开发人员。他从 1999 年起就使用 Flash 工作,目前是 Brightcove 公司(http://www.brightcove.com)的资深 Flash 开发人员。Keith 对其他9本 Flash 和 ActionScript 图书做过贡献。他的个人网站(http://www.bit-101.com)有个很活跃的博客(超过 700 个开源 Flash 实验品,以及许多和 Flash 相关的资料)。
Keith Peters is a Flash developer in the Boston area. He has been working with Flash since 1999 and is currently a Senior Flash Developer at Brightcove(http://www.brightcove.com). Keith has been a contributing author to nine other Flash and ActionScript books. His personal web site,http://www.bit-101.com,features an active blog, more than 700 open source Flash experiments, and lots of other random Flash-related stuff.
 
 
本书封面上的动物是食蟹负鼠(学名是 Philander opossum),足迹遍布墨西哥、美国中部和南美洲。此动物的长度不一,不过,通常介于 250 到 350 毫米之间,其适于抓握的尾巴通常也会长到和身长相当。

食蟹负鼠是杂食性动物,吃昆虫、蜥蝪、蛋、虫、青蛙、小型哺乳动物和鸟,此外,也吃种子、香蕉和树叶。食蟹负鼠整年都可生殖,不过后代数目不一。在夏季干旱时节,食物短缺,后代可能少到只有一两只,但是,在比较多雨的季节时,后代可以多达七只。

多数负鼠的巢穴都建在树木低层树枝上,不过,在地底或洞穴内也找得到它们的踪影。食蟹负鼠大部份时间都待在森林的地面上,在此搜寻食物,但是,偶尔也会到树上找。当初人们曾以为食蟹负鼠是夜行性动物,但是,也时常看到它们在白天活动。当食蟹负鼠察觉到危险时,会发出嘶声或叫声,然而,它们也是很强的斗士。