Apache flex ActionScript Worker中的RemoteObject类别名

Apache flex ActionScript Worker中的RemoteObject类别名,apache-flex,actionscript,air,remoteobject,Apache Flex,Actionscript,Air,Remoteobject,我有一个适用于iOS和Android的Flex移动应用程序。出于性能方面的原因,我想将我的一些下载代码移动到一个Worker中。我有大约20个Java类,它们在进行RemoteObject调用以从服务器下载数据后,被反序列化为ActionScript。每个类都有一个[RemoteClass(alias=“com.mycompany.MyClass”)]元数据标记。在我的主要应用程序中,这一切都非常有效。但是,在Worker中,它没有为每个类注册类别名。这意味着当我从服务器获取数据时,它都是通用的

我有一个适用于iOS和Android的Flex移动应用程序。出于性能方面的原因,我想将我的一些下载代码移动到一个Worker中。我有大约20个Java类,它们在进行RemoteObject调用以从服务器下载数据后,被反序列化为ActionScript。每个类都有一个
[RemoteClass(alias=“com.mycompany.MyClass”)]
元数据标记。在我的主要应用程序中,这一切都非常有效。但是,在Worker中,它没有为每个类注册类别名。这意味着当我从服务器获取数据时,它都是通用的
对象
类,而不是我自己的自定义ActionScript类。只有在使用
registerClassAlias(“com.mycompany.MyClass”,MyClass)手动重新注册Worker中所有20个类的类别名之后,我才能正确处理数据


我不喜欢这样,我现在必须在两个不同的地方保留别名。有没有办法在我的主swf和我的Worker之间维护类别名?

这可能不是因为Worker忘记了元数据,而是因为Worker在AS3方面是一个独立的应用程序。编译器会丢弃所有未显式使用的类

所以你有两个选择:

1) 在Worker中显式使用类

public class Worker extends ... {
    private static const FORCE_INCLUDE:Array = [MyClass1, MyClass2];
}
2) 使用禁止comiler抛出类的[ArrayElementType]元数据

public class Worker extends ... {
    [ArrayElementType("full.path.to.MyClass1")]
    [ArrayElementType("full.path.to.MyClass2")]
    public function Worker() { ... }
}
也可以直接在Worker类上而不是在Worker的构造函数上指定ArrayElementType