0

有谁知道为什么 getDefinitionByName 函数与“com.foo.Bar”一起使用并在“com.foo.Rab”中出现错误?

我唯一的线索是 com.foo.Bar 类是在将项目导入 Flash Builder 4.5 for PHP(即 4.5.1)之前创建的。


我的问题很具体,事实上,如果你有 FB4.5.1,同一程序的早期版本,并且有很多时间,你可以自己尝试。显然,我希望找到经历过此特定问题或具有类似功能的任何相关问题的人。

4

2 回答 2

1

我正在将纸牌游戏从纯 Flash/AS3 移植到 Flex 4.5,在原始应用程序中,我使用 getDefinitionByName 从库中动态加载卡片 MovieClip:

var sprite:Sprite = new (getDefinitionByName(spriteName) as Class);

但在我的 Flex 应用程序中,我不再使用它。相反,我有这个类 - Assets.as:

package {
    public class Assets {
        [Embed('assets/Pref.swf', symbol='spades_Q')]
        public static const SPADES_Q:Class;

        [Embed('assets/Pref.swf', symbol='clubs_Q')]
        public static const CLUBS_Q:Class;

        [Embed('assets/Pref.swf', symbol='diamonds_Q')]
        public static const DIAMONDS_Q:Class;

        [Embed('assets/Pref.swf', symbol='hearts_Q')]
        public static const HEARTS_Q:Class;

        ....

然后在我的主要课程中我使用:

var sprite:Sprite = new Assets[spriteName];

例如:

var sprite:Sprite = new Assets['HEARTS_Q'];

也许这对你有帮助?

于 2011-08-26T14:32:42.637 回答
0

getDefinitionByName 只能导入当前 ApplicationDomain 中已经存在的类。您的应用程序必须在执行早期以正常方式导入 com.foo.Rab,否则它将无法工作。

于 2011-08-26T10:35:17.013 回答