Javascript EaselJS:从库实例化对象后如何访问子对象

Javascript EaselJS:从库实例化对象后如何访问子对象,javascript,easeljs,animate-cc,Javascript,Easeljs,Animate Cc,我需要一些魔法来获得我刚刚实例化的对象的子对象。故事是这样的: 所以我有一个动画CC,我正在制作一个里面只有几个孩子的电影唇。在我对它满意之后,我在库中将link设置为FooClip,并发布场景。现在我想编辑JS文件并添加一些魔力。假设实例化几个对象,每个对象中有不同的子对象。代码大致如下所示: for (var i = 0; i < 10; i++) { var foo = new lib.FooClip(); var child = foo.getChildAt(i);

我需要一些魔法来获得我刚刚实例化的对象的子对象。故事是这样的:

所以我有一个动画CC,我正在制作一个里面只有几个孩子的电影唇。在我对它满意之后,我在库中将link设置为
FooClip
,并发布场景。现在我想编辑JS文件并添加一些魔力。假设实例化几个对象,每个对象中有不同的子对象。代码大致如下所示:

for (var i = 0; i < 10; i++) {
    var foo = new lib.FooClip();
    var child = foo.getChildAt(i);
    console.log(child);                // This prints out `undefined`
    child.alpha = 0.5;
    foo.x = i * 10;
    stage.addChild(foo);
}
for(变量i=0;i<10;i++){
var foo=new lib.FooClip();
var child=foo.getChildAt(i);
console.log(child);//这将输出“未定义”`
child.alpha=0.5;
foo.x=i*10;
阶段。添加儿童(foo);
}
很明显,我这里有个错误

Main.js:58未捕获的TypeError:无法设置的属性“alpha” 未定义

在添加更多日志和设置断点之后,我可以看到在实例化新对象之后,我还没有任何子对象。还有
console.log(foo.children)完全没有显示任何内容

然而。。。添加肮脏的小黑客:
setTimeout(function(){console.log(foo.children);},200)
在我的for循环中,我打印出了所有的孩子。所以我需要等到对象实际实例化并创建所有内部垃圾之后才能访问它。回到过去的Flash时代,我记得我在等待
ADDED_TO_STAGE
事件,但在这里我看不到类似的事情:/(有
ADDED
但没有帮助)


有人知道怎么解决吗?我是否忘记了一些显而易见的事情?

我很确定这是由于Animate CC导出中的一个错误造成的,孩子们不能立即使用

试试这个:

var foo = new lib.FooClip();
foo.gotoAndStop(0); // Force an update
var child = foo.getChildAt(i);

在即将发布的版本中,应该有一个解决方案。

太棒了!它现在确实起作用了。很高兴知道
gotoAndStop
(和Play)正在强制更新。非常感谢@Lanny。很乐意帮忙。一定要解决这个问题!