【问题标题】:flash as3 dynamic instance variable name / concatenationflash as3 动态实例变量名/连接
【发布时间】:2011-02-18 15:55:46
【问题描述】:

我有一个这样的项目类型代码数组:

project_types_array[0] = "p"
project_types_array[1] = "exp"

等等

和一组相应的影片剪辑,为动作脚本导出,名称:

type_p
type_exp

等等

我想根据数组中存在的项目类型以某种方式在舞台上动态附加一个影片剪辑。我可以这样做:

for ( var i in project_types_array) {
    if (project_types_array[i] == "p"){
        var clip_p = new type_p();
        container.header.type_loader.addChild(clip_p);
    }
}

但我宁愿做这样的事情:

for ( var i in project_types_array) {

var "clip_" + project_types_array[i] = new "type_" + project_types_array[i]();
container.header.type_loader.addChild("clip_"+project_types_array[i]);

}

我如何做到这一点?

【问题讨论】:

    标签: flash actionscript-3 variables dynamic instance


    【解决方案1】:

    试试

    var c:Class = getDefinitionByName('type_' + project_types_array[i]);
    var spr:c = new c();
    

    http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/package.html#getDefinitionByName%28%29

    【讨论】:

    • 如果我尝试这个 - 我得到以下错误:找不到类型或不是编译时常量:typeClass。将静态类型 Object 的值隐式强制转换为可能不相关的类型 Class。
    • @mheavers - 剪辑存储在哪里?
    • 剪辑在我的 Flash 库中,并在运行时给定了一个类名,并从库中附加。这能回答你的问题吗 www0z0k
    猜你喜欢
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 2010-12-23
    • 2017-06-13
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    相关资源
    最近更新 更多