为大量图像设置 Flex / AIR 项目结构?

发布于 2024-12-07 10:09:09 字数 149 浏览 0 评论 0原文

我们在 Flex 4.5.1 和 AIR 2.7 中构建原型和演示应用程序,供移动和桌面使用。这些往往涉及大量全屏 .PNG 文件。最近,我们一直在寻找对代码进行分段的方法,以实现灵活性和多屏幕重用。

人们对分割项目和库有什么建议,以便最短的编译时间和易于替换的图像?

We build prototypes and demo applications in Flex 4.5.1 and AIR 2.7 for mobile and desktop use. These tend to involve a large number of full-screen .PNG files. Lately we have been looking at ways to segment our code for flexibility and multi-screen re-use.

What suggestions do people have for segmenting the project and libraries such that compile times are minimal and images are easy to replace?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不交电费瞎发啥光 2024-12-14 10:09:09

我想到了几个策略:

  • 将资产从内联 [Embed] 语句外部化到使用 CSS 文件。
  • 配置 CSS 以编译为单独的 SWF,并在运行时加载它。这应该可以最大限度地减少编译器在正常编译过程中执行的 PNG 编码量。
  • 如果这仍然不足以加快速度(我发现增量编译器有时会混合并重新编码嵌入式资源,从而降低编译器速度),请将 CSS 文件完全移至单独的项目中。

此选项更可取,因为在运行时加载图像可以为您的多屏幕项目提供更好的灵活性。

或者:

  • 如果由于某种原因无法使用 CSS,请将 [嵌入] 从主项目移动到单独的 SWC 项目,并将它们嵌入到类中。
  • 将 SWC 添加为依赖项目
  • 通过类引用资产。

例如:

// assets-project/src/Images.as
public class Images {
    [Embed('/assets/img/defaultAvatar.png')]
    public static var defaultAvatar:Object;
}


// main-project/src/SomeView.mxml
<s:BitmapImage source="{Images.defaultAvatar"} />

A couple of strategies pop to mind:

  • Externalize the assets from in-line [Embed] statements, to using a CSS file.
  • Configure the CSS to compile as a seperate SWF, and load it at runtime. This should minimize the amount of PNG encoding the compiler is doing during your normal compilation process.
  • If that still doesn't speed it up enough (I've found that the incremental compiler sometimes gets mixed up and re-encoded the embedded assets, killing compiler speed), move the CSS files to a separate project altogether.

This option is preferable, as loading your images at runtime gives you better flexibility in your multi-screen projects.

Alternatively:

  • If using CSS isn't an option for some reason, move your [Embed]'s from your main project to a separate SWC project, and embed them on classes.
  • Add the swc as a dependant project
  • Reference the assets via the classes.

eg:

// assets-project/src/Images.as
public class Images {
    [Embed('/assets/img/defaultAvatar.png')]
    public static var defaultAvatar:Object;
}


// main-project/src/SomeView.mxml
<s:BitmapImage source="{Images.defaultAvatar"} />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文