使用.stage没有给出期望的结果

时间:2017-03-30 21:50:08

标签: actionscript-3 flash actionscript air cs3

我创建一个等于movieclip的全局变量

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

文档课

public static var skinHolder:MovieClip = new test;

单独的类(函数每帧运行)

    function animHandler():void
    {
        if (! Game.skinHolder.stage)
        {
            // if its not on the stage we add it to the stage
            addChild(Game.skinHolder);
        }

    }

2 个答案:

答案 0 :(得分:0)

添加MovieClip后不会立即设置舞台,通常会在下一帧播放。

检查对象是否存在是一种奇怪的方法,你应该这样做:

private var mySkinHolder:MovieClip;

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

答案 1 :(得分:0)

我不完全理解您的结构,但要检查DisplayObjectContainer(在您的情况下是MovieClip)是否具有特定子项,您可以使用contains()方法。

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObjectContainer.html#contains()

if (!contains(Game.skinHolder)) {
    addChild(Game.skinHolder);
}