从另一个影片剪辑访问变量

Access variable from another movieclip

嘿,我想在两个不同的 MovieClip 中使用一个变量。

我有一个包含此代码的 MovieClip(mainGame)

onClipEvent(load)
{
    var light:Boolean;
    light = true;
    trace("Game Loaded");

}

on(keyPress "x")
{
    if(light == false)
    {
        light = true;
        trace("light is on");
    }
    else if(light == true)
    {
        light = false;
        trace("light is off");
    }
}

此代码切换布尔值。

现在我有另一个 MovieClip(enemy),我想在其中访问布尔值 "light",然后根据布尔值使这个 MovieClip(enemy) 可见或不可见。

onClipEvent(enterFrame)
{
    if(light == true)
    {
        this._visible = false;
    }
    else if(light == false);
    {
        this._visible = true;
    }
} 

感谢您的帮助, 若昂·席尔瓦

要从 enemy 中访问 mainGame MovieClip 的 light 变量,您可以执行以下操作:

_root.mainGame.light

所以你的代码可以是这样的,例如:

// mainGame

onClipEvent(load)
{
    var light:Boolean = true;
    trace('Game Loaded');
}

on(keyPress 'x')
{
    // here we use the NOT (!) operator to inverse the value
    light = ! light;

    // here we use the conditional operator (?:)
    trace('light is ' + (light ? 'on' : 'off'));
}

// enemy

onClipEvent(enterFrame)
{   
     this._visible = ! _root.mainGame.light;
} 

您也可以从 mainGame MovieClip 中执行此操作:

// mainGame

on(keyPress 'x')
{
    light = ! light;

    _root.enemy._visible = ! light;

    trace('light is ' + (light ? 'on' : 'off'));
}

有关 NOT (!) operator, take a look here, and about the conditional operator (?:), from here 的更多信息。

在学习的过程中,您可以开始 learning ActionScript3 here ...

希望能帮到你。