2011-04-01 124 views
0

也许有些东西我不明白精灵的特质,但为什么这个追踪是未定义的? item是一个影片剪辑,businessCard是一个包含影片剪辑的精灵。无法追踪精灵的孩子

item.addChild (businessCard);// 
trace (item.businessCard);// 
+0

,可能有很多原因。你有没有尝试追踪商务卡?如果那个未定义,那么将另一个变量设置为相同的值自然会得到相同的结果。 – Bartvbl 2011-04-01 14:38:23

回答

2

动画片段是动态的,因此您可以使用点符号创建和访问属性。 精灵不是动态的。 要到孩子的引用,你要访问这样的项目:

trace(item.getChildByName("businessCard").name)//traces => businessCard 

[编辑]我认为精灵的businesscard的名字是“的businesscard”。

+0

此回应增加了混淆。在OP的例子中,businessCard是一个变量名称,一个Sprite引用。你的代码假设这个Sprite的name属性设置为“businessCard”,这不是一个安全的假设。 – 2011-04-01 20:20:58

+0

当然,我认为精灵的名字和变量名一样。我应该注意到你需要实际的名字。即使你的方法签名是相当明确的... – goliatone 2011-04-01 22:10:41

+0

其实,它似乎仍然比猜测它的索引更好。 – goliatone 2011-04-01 22:15:57

1

businessCard是项目的子项目,而不是属性。你不能用点符号来访问它。你必须使用像item.getChildAt(0);

0

我会做一类是这样的:

package 
{ 
    import flash.display.Sprite; 

    public dynamic class FlexSprite extends Sprite 
    { 
     public function FlexSprite() 
     { 
     } 
    } 
} 

,比你的代码:

var item:FlexSprite = new FlexSprite(); 

//Extra Code 
trace(item.bussinesCard);