AS3字符串到类

时间:2011-05-28 20:27:37

标签: actionscript-3 class

如何在没有getDefinitionByName的情况下将字符串转换为类,因为该类未链接到库项目,而getDefinitionByName仅适用于链接到库或已经初始化的类!有办法吗?或者我必须初始化我想要使用的每个类?!这对Adobe来说太愚蠢了!

2 个答案:

答案 0 :(得分:3)

getDefinitionByName()可以使用任何类名,链接到库或不链接。您的问题可能是因为您没有在代码中提及类名,所以它根本不在您的swf中。您必须确保该类在代码中的至少一个位置使用,否则将不会编译。

这可以简单到将它们放在Main-class中的一行:

public class Main {

    public function Main(){
        ClassYouWant;
        AnotherClass;

        codeThatDoesStuff();
    }

}

答案 1 :(得分:1)

答案简短:

如果你想避免包含类引用(如@grapefrukt所建议的那样),你必须在库中编译这些类,并从主应用程序中引用它作为RSL(运行时共享库​​)

答案很长:

除了使用getDefinitionByName()之外,没有其他方法可以通过名称创建类。

但是有几种方法可以编译代码。默认情况下,如果您有一个不包含库的应用程序,则它不会编译代码中未引用的类。你称之为愚蠢,但有一个很好的理由:它减少了你的swf的大小,以及应用程序的下载时间。

如果使用库,可以通过三种方式从主应用程序中引用它们:

  • 合并为代码
  • 运行时共享库​​(RSL)
  • 外部

第一个选项将采用主应用程序中引用的库中的所有(且仅限)类。这导致swf尺寸更小。

第二个选项将整个库编译成一个单独的swf,由主应用程序加载。这会导致更大的文件大小,但是几个应用程序可以使用相同的swf。对您来说最重要的是:所有类都在swf中,因此getDefinitionByName()可以引用它们,而不必在主应用程序中包含该类。

enter image description here