flash actionscript 3中的对象是否可以包含movieclips

flash actionscript 3中的对象是否可以包含movieclips,flash,actionscript-3,Flash,Actionscript 3,我有一个数组,其中包含一堆对象。这些对象具有一系列不同的属性。但我希望每个对象都包含一个movieclip,但我很难将movieclip放入对象中。基本上我有以下内容(非常简化): 但这不起作用。如何使movieclip成为对象的一部分?对象可以包含任何内容。您可以在运行时动态创建或访问对象上的任何属性,无论是否存在。第一个问题是对象没有“推”功能。要将任何内容分配给对象,可以使用键/值表示法 object["foo"] = new MovieClip(); trace(object.foo);

我有一个数组,其中包含一堆对象。这些对象具有一系列不同的属性。但我希望每个对象都包含一个movieclip,但我很难将movieclip放入对象中。基本上我有以下内容(非常简化):


但这不起作用。如何使movieclip成为对象的一部分?

对象可以包含任何内容。您可以在运行时动态创建或访问对象上的任何属性,无论是否存在。第一个问题是对象没有“推”功能。要将任何内容分配给对象,可以使用键/值表示法

object["foo"] = new MovieClip();
trace(object.foo);
trace(object["foo"]);
编辑:要么我先前的读数被关闭,要么你编辑了样本,使其不再适用。。。但看起来您希望groupObject是一个数组,因为您正在使用i变量尝试引用剪辑。。。那么为什么不把它做成一个数组呢?通过这种方式,您可以使用push函数,所有内容都以数字形式编制索引,就像您所期望的那样


这很难确定,但看起来代码的最后一行也会出现逻辑错误。在哪里设置i变量?此外,看起来您试图在对象上调用addChild,而不是在您认为要存储的movieclip上调用addChild。。。这不起作用,因为对象没有addChild函数

addChild只存在于从DisplayObjectContainer继承的类中,而Object不存在

从DisplayObjectContainer继承的类示例:Sprite和MovieClip


您可以在此处阅读更多信息:()

如果我正确理解您的问题,那么您可以这样做:

var array:Array = new Array();
var length:int = 5;

for (var i:uint = 0; i < length; i++)
{
    var object:Object = new Object();
    array.push(object);

}// end for

var movieClip:MovieClip = new MovieClip();
array[0].movieClip = movieClip;

trace(array[0].movieClip)// output: [object MovieClip];

我相信包含OP意味着一个DisplayObjectContainer父子关系,而不仅仅是拥有一个引用。好吧-我想说的是将一个预先存在的movieclip添加到一个预先存在的对象,所以使用您的示例:object->addMovieClip(foo)-只有addMovieClip显然是无效语法,那么正确的语法是什么?@mheavers“向对象添加预先存在的movieclip”的确切含义是什么?这是movieclip出现在用户屏幕上的预期结果吗?或者你只是希望有一个方便的收藏,从中检索movieclips以供进一步使用?是的!海报需要var-groupObject:Sprite=new-Sprite();以使用DisplayObject和DisplayObjectContainer功能。您不能直接创建DisplayObjectContainer,因为它是一个抽象基类。否-我希望它是数组包含对象包含movieclip,not数组包含movieclip和object@mheaver但它是一个数组,包含一个对象,该对象包含一个名为
movieClip
的属性,该属性被分配了一个
movieClip
的实例,我将更新答案,使您更容易理解。啊-谢谢你-这很有帮助。完全奏效了。我不知道你可以创建一个movieclip链接。那么数组[0].movieClip只是成为了对movieClip的引用,还是现在有2个movieClip?它只有1个。这样想,您在对象上创建了一个属性,然后将
MovieClip
的一个新实例指定给该属性作为其值。换句话说,该对象包含一个名为
movieClip
的属性,该属性包含
movieClip
的实例;
object["foo"] = new MovieClip();
trace(object.foo);
trace(object["foo"]);
var array:Array = new Array();
var length:int = 5;

for (var i:uint = 0; i < length; i++)
{
    var object:Object = new Object();
    array.push(object);

}// end for

var movieClip:MovieClip = new MovieClip();
array[0].movieClip = movieClip;

trace(array[0].movieClip)// output: [object MovieClip];
var array:Array = new Array();

var object:Object = new Object;
var movieClip:MovieClip = new MovieClip();

object.movieClip = movieClip; // or object["movieClip"] = movieClip;

array.push(object);

trace(array[0].movieClip)// output: [object MovieClip];