имя / конкатенация динамического экземпляра flash as3 - PullRequest
3 голосов
/ 18 февраля 2011

У меня есть массив кодов типа проекта, подобный этому:

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

и т. Д.

и соответствующий набор видеоклипов, экспортированных для ActionScript, с именами:

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);
    }
}

но я бы предпочел сделать что-то вроде этого:

для (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]);

}

Как мне этого добиться?

1 Ответ

3 голосов
/ 18 февраля 2011

попробуй

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

...