【问题标题】:Flex - statically embedding of assets file weight?Flex - 静态嵌入资产文件权重?
【发布时间】:2012-04-05 16:45:01
【问题描述】:

以以下方式嵌入任何大小的资产时 -

[Embed(source="../../assets/Assets.swf", symbol="LargeButton")]
public static const ButtonAsset : Class;

看起来生成的 SWF 大小增加了约 2.8KB(除了实际嵌入的任何资产的大小)。

所以我有几个相关的问题:

这是因为 flex_sdk/frameworks/libs/core.swc 必须是静态链接的吗?有没有办法绕过这个限制,也许是通过挑选必要的文件并将它们编译成 SWC 文件?请注意,在我正在编写的应用程序中,文件大小至关重要。

是否有允许将矢量图形(在 Flash Professional 创作环境中绘制)转换为原始 ActionScript 3 的命令/插件?

引人注目的用例是改进的工作流程 - 允许设计人员在 Flash Professional 中绘制资源、编译为资源 SWF,然后能够嵌入这些资源(而不是在运行时花时间加载它们,或者我自己会努力用 ActionScript 编写它们)。

【问题讨论】:

    标签: flash apache-flex


    【解决方案1】:

    链接资源的方式不是最优的,虽然 2.8K 听起来有点太大的开销,但让我们看看...

    首先,最好嵌入类定义而不是常量/变量定义。

    package /* ... */ {
    [Embed(source="../../assets/Assets.swf", symbol="LargeButton")]
    public class ButtonAsset extends Sprite { /* class definition goes here */ }
    }
    

    这不会创建 FlexSpriteAsset 或它通常创建的 w/e。但是,Flex 编译器并不总是能够以这种方式链接资源。有时它需要创建一些额外的类,尤其是在从 Flash 编译的原始文件中使用动画或线条样式时。此功能在不同的 MXMLC 版本中也发生了变化,因此如果当前版本无法正常工作,您可能会在不同版本中获得更好的运气。

    有这个项目:http://code.google.com/p/hxswfml/ 允许从 XML 描述创建 SWF 图形 - 如果图形不是很复杂,但大小很重要,这可能很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多