level 1
低空无人机董哥
楼主
第 1 章: 简介
随着 Adobe? Flash? Player 10.1 的发布,开发人员可以在移动设备和桌面上使用相同的 Flash Player。本文档通过代码示例
和使用案例,为开发人员概括介绍了在移动设备上部署应用程序的最佳做法。主题包括:
? 节省内存
? 最大程度减小 CPU 使用量
? 提高 ActionScript 3.0 性能
? 加快呈现速度
? 优化网络交互
? 使用音频和视频
? 优化 SQL 数据库性能
? 基准测试和部署应用程序
此文档重点介绍针对移动浏览器中运行的应用程序的最佳做法。不过,大多数这些优化都适用于所有平台(包括桌面、移动设
备、表和 TV)上运行的 Adobe? AIR? 和 Flash Player 应用程序。
运行时代码执行基本原理
了解如何改进应用程序性能的关键是了解 Flash 平台运行时如何执行代码。运行时在一个循环中运行,其中某些操作是针对每
个 “帧”发生的。在这种情况下,帧只是由为应用程序指定的帧速率决定的一段时间。分配给每个帧的时间直接对应于帧速
率。例如,如果指定帧速率为 30 帧/秒,则运行时会尝试使每个帧的执行时间为三十分之一秒。
可以在创作应用程序时指定初始帧速率。可以使用 Adobe? Flash? Builder? 或 Flash Professional 中的设置来设置帧速率。还
可以在代码中指定初始帧速率。可通过对根文档类应用 [SWF(frameRate="24")] 元数据标签,在纯 ActionScript 应用程序中设
置帧速率。在 MXML 中,可在 Application 或 WindowedApplication 标签中设置 frameRate 属性。
每个帧循环包括两个阶段,分为三部分:事件、enterFrame 事件和呈现。
第一阶段包括两部分(事件和 enterFrame 事件),这两部分都可能会导致调用代码。在第一阶段的第一部分,发生并调度运行
时事件。这些事件可以表示异步操作完成或异步操作的进度,例如来自通过网络加载数据的响应。还包括来自用户输入的事
件。调度事件时,运行时在您已注册的侦听器中执行代码。如果没有发生事件,运行时会等待完成此执行阶段,而不会执行任
何动作。由于缺少活动,运行时永远不会提高帧速率。如果在执行周期的其他部分发生事件,运行时将这些事件排队并在下一
个帧中进行调度。
第一阶段的第二部分是 enterFrame 事件。此事件与其他事件不同,因为每个帧始终只调度一次该事件。
调度所有事件后,帧循环的呈现阶段开始。此时,运行时将计算屏幕上所有可见元素的状态并将其绘制到屏幕上。然后,此进
程重复,就像赛跑者围绕跑道奔跑。
注: 对于包括 updateAfterEvent 属性的事件,可强制立即执行呈现操作,而不是等到呈现阶段。但是,如果 updateAfterEvent
频繁导致性能问题,应避免使用它。
最简单的方法是假设帧循环中的两个阶段需要相同的时间。在这种情况下,一半的时间运行帧循环事件处理函数和应用程序代
码,另一半的时间发生呈现。但是,事实通常是不同的。有时,应用程序代码会通过增加运行时间并减少用于呈现的时间来占
用帧中多一半的可用时间。在其他情况下,特别是对于滤镜和混合模式等复杂的可见内容,呈现需要一半以上的帧时间。由于
各阶段需要的实际时间是灵活的,所以帧循环常称为“弹性跑道
点击下载
http://www.400gb.com/file/54122549
2014年01月12日 14点01分
1
随着 Adobe? Flash? Player 10.1 的发布,开发人员可以在移动设备和桌面上使用相同的 Flash Player。本文档通过代码示例
和使用案例,为开发人员概括介绍了在移动设备上部署应用程序的最佳做法。主题包括:
? 节省内存
? 最大程度减小 CPU 使用量
? 提高 ActionScript 3.0 性能
? 加快呈现速度
? 优化网络交互
? 使用音频和视频
? 优化 SQL 数据库性能
? 基准测试和部署应用程序
此文档重点介绍针对移动浏览器中运行的应用程序的最佳做法。不过,大多数这些优化都适用于所有平台(包括桌面、移动设
备、表和 TV)上运行的 Adobe? AIR? 和 Flash Player 应用程序。
运行时代码执行基本原理
了解如何改进应用程序性能的关键是了解 Flash 平台运行时如何执行代码。运行时在一个循环中运行,其中某些操作是针对每
个 “帧”发生的。在这种情况下,帧只是由为应用程序指定的帧速率决定的一段时间。分配给每个帧的时间直接对应于帧速
率。例如,如果指定帧速率为 30 帧/秒,则运行时会尝试使每个帧的执行时间为三十分之一秒。
可以在创作应用程序时指定初始帧速率。可以使用 Adobe? Flash? Builder? 或 Flash Professional 中的设置来设置帧速率。还
可以在代码中指定初始帧速率。可通过对根文档类应用 [SWF(frameRate="24")] 元数据标签,在纯 ActionScript 应用程序中设
置帧速率。在 MXML 中,可在 Application 或 WindowedApplication 标签中设置 frameRate 属性。
每个帧循环包括两个阶段,分为三部分:事件、enterFrame 事件和呈现。
第一阶段包括两部分(事件和 enterFrame 事件),这两部分都可能会导致调用代码。在第一阶段的第一部分,发生并调度运行
时事件。这些事件可以表示异步操作完成或异步操作的进度,例如来自通过网络加载数据的响应。还包括来自用户输入的事
件。调度事件时,运行时在您已注册的侦听器中执行代码。如果没有发生事件,运行时会等待完成此执行阶段,而不会执行任
何动作。由于缺少活动,运行时永远不会提高帧速率。如果在执行周期的其他部分发生事件,运行时将这些事件排队并在下一
个帧中进行调度。
第一阶段的第二部分是 enterFrame 事件。此事件与其他事件不同,因为每个帧始终只调度一次该事件。
调度所有事件后,帧循环的呈现阶段开始。此时,运行时将计算屏幕上所有可见元素的状态并将其绘制到屏幕上。然后,此进
程重复,就像赛跑者围绕跑道奔跑。
注: 对于包括 updateAfterEvent 属性的事件,可强制立即执行呈现操作,而不是等到呈现阶段。但是,如果 updateAfterEvent
频繁导致性能问题,应避免使用它。
最简单的方法是假设帧循环中的两个阶段需要相同的时间。在这种情况下,一半的时间运行帧循环事件处理函数和应用程序代
码,另一半的时间发生呈现。但是,事实通常是不同的。有时,应用程序代码会通过增加运行时间并减少用于呈现的时间来占
用帧中多一半的可用时间。在其他情况下,特别是对于滤镜和混合模式等复杂的可见内容,呈现需要一半以上的帧时间。由于
各阶段需要的实际时间是灵活的,所以帧循环常称为“弹性跑道
点击下载
http://www.400gb.com/file/54122549