Arrays flash as3-在对象内声明null属性,或在对象声明内运行函数

Arrays flash as3-在对象内声明null属性,或在对象声明内运行函数,arrays,flash,actionscript-3,function,object,Arrays,Flash,Actionscript 3,Function,Object,我有一个对象,它被分配了许多属性: var project_array:Array = []; var slideObject:Object = { project_title : myXML.projects.project[i].title.toUpperCase(), project_desc : myXML.projects.project[i].description.toUpperCase(), project_

我有一个对象,它被分配了许多属性:

var project_array:Array = [];
var slideObject:Object = {
            project_title : myXML.projects.project[i].title.toUpperCase(),
            project_desc : myXML.projects.project[i].description.toUpperCase(),
            project_name : myXML.projects.project[i].name.toUpperCase(),
            project_agency : myXML.projects.project[i].agency.toUpperCase(),
            project_img : myXML.projects.project[i].@img,
            project_types : myXML.projects.project[i].@type.split(", ")
        }
project_array.push(slideObject);
我想做的是,根据slideObject.project_类型中的值,在slideObject中创建另一个数组来跟踪project_片段,如下所示:

for ( var i in project_types_array) {

        /*(var typeClass:Class = getDefinitionByName('type_' + project_types_array[i]);
        (var typeClip:typeClass = new typeClass();
        project_clips_array.push(typeClip);
        trace (project_types_array[i]);*/

        switch (project_types_array[i]){

        case "p":
            var clip_p = new type_p();
            project_clips_array.push(clip_p);
            break;
        case "exp":
            var clip_exp = new type_exp();
            project_clips_array.push(clip_exp);
            break;
        case "f":
            var clip_f = new type_f();
            project_clips_array.push(clip_f);
            break;
        case "oi":
            var clip_oi = new type_oi();
            project_clips_array.push(clip_oi);
            break;
        case "tv":
            var clip_tv = new type_tv();
            project_clips_array.push(clip_tv);
            break;
        }

    }
for (var i=0;i<tp;i++){
        var slideObject:Object = {
            project_title : myXML.projects.project[i].title.toUpperCase(),
            project_desc : myXML.projects.project[i].description.toUpperCase(),
            project_name : myXML.projects.project[i].name.toUpperCase(),
            project_agency : myXML.projects.project[i].agency.toUpperCase(),
            project_img : myXML.projects.project[i].@img,
            project_types : myXML.projects.project[i].@type.split(", "),
            project_type_clips : [],
        }


        for (var j in slideObject.project_types){
            //trace ("object" + i + " | type " + j)
            switch (slideObject.project_types[j]){

            case "p":
                var clip_p = new type_p();
                slideObject.project_type_clips.push(clip_p);
                break;
            case "exp":
                var clip_exp = new type_exp();
                slideObject.project_type_clips.push(clip_exp);
                break;
            case "f":
                var clip_f = new type_f();
                slideObject.project_type_clips.push(clip_f);
                break;
            case "oi":
                var clip_oi = new type_oi();
                slideObject.project_type_clips.push(clip_oi);
                break;
            case "tv":
                var clip_tv = new type_tv();
                slideObject.project_type_clips.push(clip_tv);
                break;
            }


        } //end project_types loop

        project_array.push(slideObject);
    } // end object creation loop

    loadProject();

}

但我不太确定把这个放在哪里。如果我把它放在对象构造函数之外,我会得到“term is undefined”,我猜是因为它不知道project\u clips\u array是什么-但是如果我在构造函数中声明project\u clips\u array,它似乎需要定义,即我无法创建空白属性。但是我也不能把它放在构造函数中,因为它似乎不允许我在对象构造函数中运行函数。执行此函数以获取对象中的数组时,正确的语法或代码安排是什么?

我认为类似的方法应该可以工作:

var project_array:Array = [];
var slideObject:Object = {
        project_title : myXML.projects.project[i].title.toUpperCase(),
        project_desc : myXML.projects.project[i].description.toUpperCase(),
        project_name : myXML.projects.project[i].name.toUpperCase(),
        project_agency : myXML.projects.project[i].agency.toUpperCase(),
        project_img : myXML.projects.project[i].@img,
        project_types : myXML.projects.project[i].@type.split(", ")
        }

slideObject.project_type_array = sortTypes(slideObject.project_types); 

project_array.push(slideObject);

function sortTypes(orig_array:Array):Array
{

    var type_array:Array = [];

    for ( var i in orig_array)
    {

        switch (orig_array[i])
        {

            case "p":
                var clip_p = new type_p();
                type_array.push(clip_p);
                break;
            case "exp":
                var clip_exp = new type_exp();
                type_array.push(clip_exp);
                break;
            case "f":
                var clip_f = new type_f();
                type_array.push(clip_f);
                break;
            case "oi":
                var clip_oi = new type_oi();
                new_array.push(clip_oi);
                break;
            case "tv":
                var clip_tv = new type_tv();
                type_array.push(clip_tv);
                break;
        }
    }

    return type_array;
}
我是这样设置的:

for ( var i in project_types_array) {

        /*(var typeClass:Class = getDefinitionByName('type_' + project_types_array[i]);
        (var typeClip:typeClass = new typeClass();
        project_clips_array.push(typeClip);
        trace (project_types_array[i]);*/

        switch (project_types_array[i]){

        case "p":
            var clip_p = new type_p();
            project_clips_array.push(clip_p);
            break;
        case "exp":
            var clip_exp = new type_exp();
            project_clips_array.push(clip_exp);
            break;
        case "f":
            var clip_f = new type_f();
            project_clips_array.push(clip_f);
            break;
        case "oi":
            var clip_oi = new type_oi();
            project_clips_array.push(clip_oi);
            break;
        case "tv":
            var clip_tv = new type_tv();
            project_clips_array.push(clip_tv);
            break;
        }

    }
for (var i=0;i<tp;i++){
        var slideObject:Object = {
            project_title : myXML.projects.project[i].title.toUpperCase(),
            project_desc : myXML.projects.project[i].description.toUpperCase(),
            project_name : myXML.projects.project[i].name.toUpperCase(),
            project_agency : myXML.projects.project[i].agency.toUpperCase(),
            project_img : myXML.projects.project[i].@img,
            project_types : myXML.projects.project[i].@type.split(", "),
            project_type_clips : [],
        }


        for (var j in slideObject.project_types){
            //trace ("object" + i + " | type " + j)
            switch (slideObject.project_types[j]){

            case "p":
                var clip_p = new type_p();
                slideObject.project_type_clips.push(clip_p);
                break;
            case "exp":
                var clip_exp = new type_exp();
                slideObject.project_type_clips.push(clip_exp);
                break;
            case "f":
                var clip_f = new type_f();
                slideObject.project_type_clips.push(clip_f);
                break;
            case "oi":
                var clip_oi = new type_oi();
                slideObject.project_type_clips.push(clip_oi);
                break;
            case "tv":
                var clip_tv = new type_tv();
                slideObject.project_type_clips.push(clip_tv);
                break;
            }


        } //end project_types loop

        project_array.push(slideObject);
    } // end object creation loop

    loadProject();

}

for(var i=0;我能添加一个示例来说明你想要做什么吗?什么是项目类型?数组我看不到它在任何地方都初始化了?很好。如果你说这是解决方案,我想你可以接受你自己的答案。我想你会因此得到一个徽章或其他东西。:)