`
17studio
  • 浏览: 199271 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

整理完了公司的actionscript客户端优化方案

阅读更多
幸好有thor指点,少走了很多的弯路

发现问题的手段还是需要全面的测试和细心的观察

优化的手段是界面和使用资源的优化,这点在很多情况下都是大同小异的

下面是adobe建议的优化要点,记一下以免丢失,flashlite和flash应该有共通之处

优化 ActionScript 性能

由于大多数移动设备在处理速度和内存方面都有一定的限制性,因此在开发适用于移动电话中使用的 Flash Lite 内容的 ActionScript 时,请遵循以下原则:
使 ActionScript 尽量简单。
限制使用的循环数和每个循环包含的代码数。
当不再需要基于帧的循环时,应当立即停止该循环。
尽量避免字符串和数组处理,因为这对 CPU 的消耗很大。
始终尝试直接访问属性,而不要使用 ActionScript getter 和 setter 方法,因为与其它方法调用相比,这两种方法需要更高的开销。
巧妙并更为具体地管理事件。在调用侦听器之前利用一些条件来检查侦听器是否存在(不为 null),以此来使事件侦听器数组更加简洁。
不再需要变量时,请删除变量或将变量设置为 null。这样做可以标记数据,以便进行垃圾回收。删除变量有助于在运行期间优化内存使用情况,因为从 SWF 文件中删除了不需要的资源。删除变量比将变量设置为 null 更好。

有关垃圾回收和内存管理技术的更多信息,请参见管理应用程序的内存。
在进行垃圾回收前,通过调用 removeListener() 从对象中显式删除侦听器。
如果动态调用函数并传递固定的一组参数,则请使用 call(),而不要使用 apply()。
尽量使命名空间(如路径)简短以节省启动时间。包中的每个级别均会被编译为一个 IF 语句,并导致一个新的 Object() 调用,因此路径中的级别较少可以节省时间。

例如,具有 com.xxx.yyy.aaa.bbb.ccc.functionName() 级别的路径会使一个对象针对 com、xxx、yyy、aaa、bbb 和 ccc 被实例化。有些 Flash 开发人员使用预处理器软件,在编译 SWF 之前,将路径简化为一个唯一标识符,如 58923409876.functionName()。
如果应用程序由多个使用相同 ActionScript 类的 SWF 文件组成,则可以在编译过程中从选择的 SWF 文件中排除这些类。这样有助于缩短应用程序的下载时间和降低运行时内存要求。有关更多信息,请参见从编译过程中排除类。
避免使用 Object.watch() 和 Object.unwatch(),因为对象属性的每次更改都要求播放器确定是否必须发送更改通知。
如果在时间轴中的关键帧上执行的 ActionScript 代码需要 1 秒以上方可完成,则应考虑分割该代码,使其在多个关键帧上执行。
在发布 SWF 文件时从代码中删除 trace() 语句。为此,在"发布设置"对话框的"Flash"选项卡上,选择"省略跟踪动作"复选框。
继承会增加方法调用的数量,而且会使用更多的内存:包括所需全部功能的类在运行时要比从超类继承某些功能的类更加有效。因此,您可能需要在类的扩展性和代码有效性间做出一定的设计取舍。
当一个 SWF 文件加载另一个包含自定义 ActionScript 类(例如 foo.bar.CustomClass)的 SWF 文件,然后再卸载该 SWF 文件时,该类定义仍将保留在内存中。为了节省内存,应显式删除已卸载 SWF 文件中的所有自定义类。可以使用 delete 语句,然后指定完全限定类名,如下面的示例所示:
delete foo.bar.CustomClass
限制全局变量的使用,因为如果删除了定义全局变量的影片剪辑,这些全局变量就不会被垃圾回收。
避免使用标准用户界面组件(在 Flash Professional 8 的"组件"面板中提供)。这些组件设计用于在桌面计算机上运行,并未针对在移动设备上运行而优化。
尽量避免深层嵌套函数。
避免引用不存在的变量、对象或函数。与桌面版本的 Flash Player 相比,Flash Lite 2.0 在查找对不存在的变量的引用时速度非常缓慢,这会显著影响应用程序的性能。
分享到:
评论

相关推荐

    FlashSocket.IO, 帮助 Flash,Flex和ActionScript客户端连接到 socket.io 服务器的库.zip

    FlashSocket.IO, 帮助 Flash,Flex和ActionScript客户端连接到 socket.io 服务器的库 FlashSocket.IO支持Flex应用程序和 socket.io 服务器之间通信的Flash 库。真正的web socket通信由我的gimite/web-socket-js项目...

    WebSocket ActionScript Client

    WebSocket ActionScript 客户端是基于ActionScript编程语言实现的WebSocket通信协议的客户端库。WebSocket是一种在客户端和服务器之间建立长连接的协议,允许双方进行全双工通信,即数据可以双向同时传输,极大地...

    ActionScript3.0客户端拍照TCP发送到服务端.rar

    在本项目中,我们主要探讨的是如何利用ActionScript3.0在Flash环境中实现客户端拍照功能,并通过TCP协议将拍摄的照片实时传输到服务器。这个过程涵盖了客户端的用户交互、图像捕获、数据编码以及网络通信等多个关键...

    java netty编写的socket tcp服务器+flash actionscript3编写的游戏客户端 C/S程序游戏源代码

    这是一个关于使用Java Netty构建TCP服务器以及Flash ActionScript3开发客户端的游戏C/S程序源代码的项目。这个项目展示了如何在服务器端使用Java Netty框架来处理网络通信,以及在客户端利用ActionScript3来实现游戏...

    Flash actionscript作客户端,java作服务器 编写的C/S聊天demo源代码.zip

    本示例是一个基于Flash ActionScript作为客户端,Java作为服务器端的C/S(客户机/服务器)聊天应用程序。这个项目的源代码包含了一个简单的聊天系统演示,可以让用户了解如何使用这两种技术进行实时通信。以下是对这...

    myFirstProject_actionscript_

    在WebORB中,ActionScript客户端可以通过AMF(Action Message Format)协议与服务器交互,AMF是一种高效的数据序列化格式,特别适合于ActionScript和服务器之间的数据交换。 项目"myFirstProject"可能包含以下关键...

    Actionscript中文帮助文档

    12. **本地存储**:通过LocalConnection和SharedObject,ActionScript可以实现客户端的数据存储和跨域通信。 13. **调试和优化**:了解如何使用ActionScript编译器和调试工具来检测和修复代码问题,提升程序性能。 ...

    ActionScript

    10. **优化与调试**:了解性能优化技巧,如减少不必要的计算、使用位运算等,以及如何利用ActionScript的内置调试工具,可以帮助开发者提高代码质量和运行效率。 通过深入学习和实践这些ActionScript开发技术,你...

    ActionScript2.0

    通过这个"ActionScript2.0"教程,初学者将能够掌握编写高效、交互性强的Flash内容所需的基本技能,而经验丰富的开发者则可能从中找到优化代码和解决特定问题的方法。无论你是新手还是老手,深入理解ActionScript 2.0...

    ActionScript 3.0 cookbook中文简体完整版电子书

    全书涵盖客户端ActionScript的整个范畴,将概念应用于实际情况,采用特定的格式协助读者迅速解决特定的问题。读者无须逐页阅读就可以了解底层代码,解决问题,完成任务。本书适合广大从事ActionScript 3.0开发应用的...

    ActionScript3.0入门基础

    9. **ActionScript 3.0的性能优化**: - **垃圾回收机制**:理解内存管理,避免内存泄漏。 - **代码优化技巧**:减少不必要的计算,优化循环结构,提高程序运行效率。 总之,《ActionScript 3.0入门基础》教程将...

    spring actionscript 入门例子

    这个入门例子旨在帮助初学者理解如何在 Flex 或 ActionScript 项目中应用 Spring ActionScript,以实现依赖注入、组件管理和应用程序架构的优化。 **依赖注入**是 Spring 框架的核心特性之一,它允许开发者解耦组件...

    js获取客户端字体列表

    首先,我们需要创建一个 Flash 对象,然后使用 ActionScript 获取客户端字体列表。然而,使用 Flash 获取客户端字体列表有一定的限制,因为 Flash 并不能在所有浏览器中运行。 使用 JavaScript 获取客户端字体列表 ...

    ActionScript开发技术大全pdf

    《ActionScript开发技术大全》 对象交互与事件处理 ActionScript 3.0运动编程 ActionScript 3.0音频编程 ActionScript 3.0本地通信 Flash Player的客户端系统

    ActionScript基础教程,是学习actionscript的入门级教程

    ### ActionScript基础教程知识点解析 #### 一、ActionScript概览与基本语法 ActionScript是一种强大的脚本语言,主要用于Adobe Flash平台,使开发者能够创建动态交互式内容、游戏和应用程序。ActionScript的发展...

    ActionScript开发技术大全

    8. **性能优化**:提供优化ActionScript代码的技巧和策略,以提高应用程序的运行效率和用户体验。 9. **最佳实践**:分享开发ActionScript应用程序时的最佳实践,包括代码组织、命名规范以及项目管理。 通过...

Global site tag (gtag.js) - Google Analytics