以下是我过去在处理较小规模的项目时的做法,然后我会写下关于如何扩展它的想法。
这些是在开发 GUI 的过程中采取的步骤:
有一般概念(不涉及程序员,设计师与 UI/UX 或客户一起决定)。
设计师和程序员审查在上一步中创建的一般方案,程序员为符号和其他资产创建必要的定义,这些资产必须存在于设计师在其工作中产生的 SWC 中。
设计者收到“虚拟”定义,将它们连接到项目。每当她创建新符号或导入资产时,她都会将该资产链接到现有定义。
经过一个阶段,当一些符号已经在 SWC 中时,设计者将 SWC 交给程序员。程序员使用他自己的定义(设计师从中派生出她的定义)。程序员使用这些定义来编写接口的功能部分并将它们连接到程序的其他部分。
通过循环执行这些步骤,我们能够逐渐向项目中添加更多组件,并相互独立地开发其中的一部分。(可以在设计人员之间分担工作量,以便每个人都可以使用他们之前选择工作的一组定义来生成自己的 SWC)。
陷阱:
需要对设计人员进行培训以使用 forklfow(很少有人知道如何将符号连接到现有定义,如何编译 SWC)。但该功能在 Flash CS 中就存在。
人为错误(如果设计师在链接时打错字 - 在库交给程序员之前她不会注意到它)。
避免人为错误
在我较小规模的项目中,我只是通过swfdump
实用程序运行从 SWC 中提取的 SWF,并将其通过管道传输到 grep 以查看符号定义是否存在。由于数量不多,因此可以手动完成。
但是,由于您描述的项目较大,我会编写一个脚本,将创建的大纲(ActionScript 源文件)和 SWC 库作为输入。解压缩 SWC,从中提取 SWF,运行它swfdump
并验证源文件中的所有定义是否存在于 SWF 中。设计师将负责在发送 SWC 之前运行此脚本,并确保至少她在上次更新期间添加的那些符号/资产确实进入了库。
分析仍然存在几个技术问题:重复名称,可能存在高水平的“噪音”,它仍然依赖于人来运行此检查,而不是使其类似于提交钩子。但这些似乎都不是无法解决的——只要付出足够的努力和创造性,就必须有可能提出一个可以确保完整性的应用程序。