Actionscript 3 访问movieclip中的位图片段

Actionscript 3 访问movieclip中的位图片段,actionscript-3,Actionscript 3,我有一个电影剪辑,里面有10个位图。我想访问它们中的每一个 myMovieClip是包含这10个位图的movieclip。我想一个接一个地访问那些位图。所有10个位图都是单独导入的。 我试过这个: for ( var i =0 ; i< myMovieClip.numChildren ; i++) { trace ( myMovieClip.getChildAt(i) ); } for(变量i=0;i

我有一个电影剪辑,里面有10个位图。我想访问它们中的每一个

myMovieClip是包含这10个位图的movieclip。我想一个接一个地访问那些位图。所有10个位图都是单独导入的。 我试过这个:

for ( var i =0 ; i< myMovieClip.numChildren ; i++)
{


    trace ( myMovieClip.getChildAt(i) ); 

}
for(变量i=0;i
问题是NUMSOCH只出现“1”,好像它不考虑那10块位图。还有其他方法可以访问这些位图吗

谢谢
V.

位图片段是什么意思??你是说10个不同的位图对象是movieClip的子对象吗

此外,您的代码确实存在语法错误

var newMc:MovieClip = MovieClip();
应该是:

var newMc:MovieClip = new MovieClip();
其次,在循环中,numChildren总是在变化,因为您正在从myMoiveClip获取子对象的引用并将其移动到newMc对象。有两种方法可以解决这个问题

将局部变量设置为myMovieClip.numChildren的值,并在循环中使用该值 例如:

var numfochildren:int=myMovieClip.numChildren;
for(变量i:int=0;i
这将把位图从myMovieClip移到newMc中,如果您想将它们保留在那里,可以在循环中创建一个新位图,然后将新位图添加到newMc中。 例如:

for(变量i:int=0;i
你能解释一下你在做什么吗?比如,有10个位图的movieclip(顺便提一下,我假设“位图片段”实际上是独立的位图;或者删除“片段”或者解释其含义)是如何创建的?您说最好是“其中有10个位图”,您需要将它们转换为movieclip。
trace(myMovieClip.getChildAt(0)是DisplayObjectContainer);
,如果返回值
true
,则“10个位图”可能位于另一个
DisplayObjectContainer
对象内。如果是这样,您可能需要执行以下
(myMovieClip.getChildAt(0)作为DisplayObjectContainer)。这只是一个基于你在问题中提供的模糊信息的猜测。请记住我之前所说的(除非是正确的),我想我知道发生了什么。OP在flash professional中创建了一个movieclip符号,“10张位图”是他添加到符号中的位图图像。mc“myMovieClip”包含10张位图。myMovieClip.numChildren始终为“1”(您的循环只运行一次)。但我已经导入了10个单独的位图。如何访问它们?您是否使用adobe Flash professional应用程序创建项目?如果是这样,您必须右键单击粘贴在movieclip中的每个位图(在库中),然后选择“属性”。然后按actionscript选项卡并选中“导出actionscript”框。还可以为每个位图指定一个类名。然后访问上面提到的位图。如果您愿意,还可以通过类名单独访问它们。
var numOfChildren:int = myMovieClip.numChildren;
for(var i:int = 0; i < numOfChildren; i++){
     var newMc:MovieClip = new MovieClip();    
     newMc.addChild(myMovieClip.getChildAt(i)); 
} 
for(var i:int = 0; i < myMovieClip.numChildren; i++){
     var newMc:MovieClip = new MovieClip(); 
     var b:Bitmap = new Bitmap(Bitmap(myMovieClip.getChildAt(i)).bitmapData);   
     newMc.addChild(b);
}