can对象包含flash actionscript 3中的动画片段

时间:2011-04-28 21:11:43

标签: flash actionscript-3

我有一个数组,其中包含一堆对象。这些对象具有许多不同的属性。但是我希望每个对象包含的一个东西是一个movieclip,但是我无法将movieclip放入对象中。基本上我所拥有的是(非常简化):

var groupArray:Array = new Array();

for (var i=0;i<numGroups;i++){
var groupObject:Object = new Object();
groupArray.push(groupObject)
}

我想做的是这个(后面的代码):

var groupClip:MovieClip = new MovieClip();
groupArray[i].addChild(groupClip)

但这不起作用。如何制作对象的movieclip部分?

3 个答案:

答案 0 :(得分:2)

如果我理解你的问题,那么你就是这样做的:

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];

答案 1 :(得分:1)

addChild仅对从DisplayObjectContainer继承的类存在,而Object不存在。

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

您可以在此处详细了解:http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObjectContainer.html#addChild()

答案 2 :(得分:0)

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

object["foo"] = new MovieClip();
trace(object.foo);
trace(object["foo"]);

编辑:要么我之前的阅读已关闭,要么您编辑了样本,因此不再适用... 但是看起来您希望 groupObject成为一个数组,因为您正在使用i变量试图引用一个剪辑...所以为什么不把它变成一个数组呢?这样你就可以使用推送功能,所有内容都按照数字方式编制索引,就像你看起来一样。

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