Flex如何组织嵌入式资源

时间:2009-04-07 18:36:47

标签: flex resources

如何避免在源代码(.as或.mxml)中嵌入元数据? 我找到了两种方法: 1.将所有内容嵌入到CSS中。但从那里提取起来有点困难:

    var soundCSSClassDec:CSSStyleDeclaration = StyleManager.getStyleDeclaration("MySound");
    var MySoundClass:Class = (soundCSSClassDec.getStyle("url")) as Class;
    var myEmbeddedSound:Sound = new MySoundClass() as Sound;            
    myEmbeddedSound.play()
  1. 嵌入资源文件。它很容易提取 - resourceManager.getResource(“sounds”,“mySound”)。但我觉得这种方法有问题。据我所知,resourceManager被设计为本地化。
  2. 还有其他想法吗?

    谢谢,Aleksey

2 个答案:

答案 0 :(得分:1)

使用ResourceManager并没有错:在您的情况下(非本地化应用),您只支持一种语言(N种语言的本地化特例:)。

另一种方法是从某个服务器通过网络加载这些资源。当然,根据您的应用程序捆绑/使用的方式,这种方法可能效率低下。

答案 1 :(得分:0)

另一种选择是定义一个“AssetLibrary”类,其中包含许多类型为“Class”的公共静态const;然后通过MXML中的绑定或ActionScript中的简单赋值来引用它们。

public class AssetLibrary {
    [Embed(source='/assets/image_link.png')]
    public static const IMAGE_LINK : Class;
}

使用ResourceManager也是一种完全有效的方法。实际上,从应用程序中外化它是一种很好的做法,因为它可以使以后更容易本地化。