gpt4 book ai didi

javascript - EaselJS:从库中实例化对象后如何访问子对象

转载 作者:行者123 更新时间:2023-11-29 19:11:47 25 4
gpt4 key购买 nike

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

所以我有一个 Animate CC,我正在制作一个里面只有几个 child 的 MovieClip。对它感到满意后,我将库中的 Linkage 设置为 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);
}

显然,我在这里遇到了一个错误...

Main.js:58 Uncaught TypeError: Cannot set property 'alpha' of undefined

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

但是......添加肮脏的小技巧:setTimeout(function(){ console.log(foo.children); }, 200);在我的 for 循环中打印出所有的 child 。所以这就像我需要等到对象实际实例化并在我访问它之前在内部创建所有废话。回到美好的 Flash 时代,我记得等待 ADDED_TO_STAGE 事件,但我在这里看不到任何类似的东西:/(有 added 但它没有帮助)。

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

最佳答案

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

试试这个:

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

在即将发布的版本中应该会修复此问题。

关于javascript - EaselJS:从库中实例化对象后如何访问子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38332189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com