If statement 条件在AS3中不起作用(额外的站点不允许我发布)
我有一个非常直截了当的if语句If statement 条件在AS3中不起作用(额外的站点不允许我发布),if-statement,actionscript-3,If Statement,Actionscript 3,我有一个非常直截了当的if语句 var mynum:Number = 0; var myclip:MovieClip = new thisclass(); addChild(myclip); 在类文件中 var i:int = 0; for (i; i<stage.numChildren; ++i) { if (stage.getChildAt(i) is thisclass) { trace("true"); } } var i:int=0; 对于(i;
var mynum:Number = 0;
var myclip:MovieClip = new thisclass();
addChild(myclip);
在类文件中
var i:int = 0;
for (i; i<stage.numChildren; ++i)
{
if (stage.getChildAt(i) is thisclass)
{ trace("true"); }
}
var i:int=0;
对于(i;i通过使用父级而不是阶段解决了问题,不确定它为什么不喜欢阶段可能有两个问题。1.通常情况下,您不会直接使用阶段。除非您明确说明阶段,否则您不会使用它。例如,如果您在主时间轴上编写脚本,则您在根目录中,而不是在阶段上。2。如果在类构造函数中处理stage或root,则会出现错误,因为构造函数在new语句之后执行,在new之后的下一行之前执行。因此,在类构造函数中,您无法访问stage或root。您应该先侦听添加的_to_stage事件。@Organi根据此代码的外观,它是在是的,层次结构应该是stage->root->MC。因为stage不是this类的直接父级。getChildAt()
不会遍历整个显示树,它只遍历该树的当前节点。您从stage
调用它意味着您需要根节点,好吧,但您的实例不是根节点的直接父节点。您应该检查myclip.parent
以了解应该列出哪些内容来查找它。