У меня есть объект, которому присваивается ряд свойств:
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_types создать еще один массив в slideObject, который отслеживает project_clips - например:
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;
}
}
но я не совсем уверен, где это разместить. Если я помещу его за пределы конструктора объекта, то получу «термин не определен», я полагаю, потому что он не знает, что такое project_clips_array - но если я объявляю project_clips_array в конструкторе, его, похоже, нужно определить, то есть я могу не создавать пустое свойство. Но я также не могу поместить его в конструктор, потому что он не позволяет мне запускать функцию внутри конструктора объекта. Каков правильный синтаксис или расположение кода для выполнения этой функции, чтобы получить массив внутри объекта?