Actionscript 3 使用阶段没有给出期望的结果

Actionscript 3 使用阶段没有给出期望的结果,actionscript-3,flash,actionscript,air,cs3,Actionscript 3,Flash,Actionscript,Air,Cs3,我使一个全局变量等于一个movieclip 函数运行时使用if语句检查[x]movieclip是否存在,如果它没有添加它。 尽管MovieClip在舞台上,它仍继续使用if语句 文档类 public static var skinHolder:MovieClip = new test; 独立类(函数每帧运行一次) 舞台不会在添加电影剪辑后立即设置,通常会在下一帧设置 检查对象是否存在是一种奇怪的方法,但您应该执行以下操作: private var mySkinHolder:MovieClip;

我使一个全局变量等于一个movieclip

函数运行时使用if语句检查[x]movieclip是否存在,如果它没有添加它。 尽管MovieClip在舞台上,它仍继续使用if语句

文档类

public static var skinHolder:MovieClip = new test;
独立类(函数每帧运行一次)


舞台不会在添加电影剪辑后立即设置,通常会在下一帧设置

检查对象是否存在是一种奇怪的方法,但您应该执行以下操作:

private var mySkinHolder:MovieClip;

if (!mySkinHolder)
{
    // if it not exist we add it to the stage
    mySkinHolder = addChild(new test());
}

我不完全理解您的结构,但要检查DisplayObjectContainer(在您的例子中是MovieClip)是否有特定的子级,可以使用contains()方法


我的意思是我想检查电影剪辑是否在舞台上。如果不是,我们就加上。同样的问题。出于某种原因,Flash认为该变量不在舞台上,并不断添加它。我认为这可能是因为该变量是全局变量,但除此之外,我不知道
跟踪(“检查状态:”+(Game.skinHolder.stage));如果(!Game.skinHolder.stage){代码的其余部分…
跟踪对状态有何说明?您需要一个结果,因此尝试避免仅用于此检查的EnterFrame,即:仅对addEvent行进行注释,然后作为
animHandler()手动运行函数
检查状态:Null您正在将您的
游戏。skinHolder
添加到
单独类
实例中。您确定您的
SpearateClass
实例已首先添加到显示列表中吗?您的
SpearateClass
也必须在舞台上,它的孩子才能访问舞台。My document类添加单独的Classif我的document类没有将其添加到stage,我如何才能这样做?
private var mySkinHolder:MovieClip;

if (!mySkinHolder)
{
    // if it not exist we add it to the stage
    mySkinHolder = addChild(new test());
}
if (!contains(Game.skinHolder)) {
    addChild(Game.skinHolder);
}