通过单独的类访问整数变量

时间:2013-04-16 05:50:28

标签: actionscript-3 class

嘿伙计们抱歉,如果这是重新发布的帖子,我通过其他网站检查了答案以及此信息,但信息不充分,而且我还在学习很多东西。

但我的问题是我的引擎类叫做keepFocusEngine而另一个名为mcStar的类我没有遇到过这个问题,所以我真的不明白怎么做但是我想从mcStarkeepFocusEngine访问整数变量。所以在我的mcStar类中,我有一个名为private var speed:Number;的整数变量,其中包含speed = 2 + Math.random()*2;。我想通过此函数将速度变量从speed = 10 + Math.random()*2;更改为此keepFocusEngine

private function shootPlayerObject(e:TouchEvent):void 
    {
        if (e.type == TouchEvent.TOUCH_TAP)
        {
            btnShootPlayer = true;
        }else
        {
            btnShootPlayer = false;
        }
    }

所以如果btnShootPlayer = true;我希望调用speed = 10 + Math.random()*2;

对不起,如果我困惑任何人,我有点困惑自己哈哈。 但是你明白我想要完成什么吗?

1 个答案:

答案 0 :(得分:0)

如果你想整齐地做,你可以在keepFocusEngine课程中编写getter / setter函数。然后,您可以将speed变量保留为私有。吸气剂和制定者必须是公开的,当然要在课外接触。

keepFocusEngine中,添加以下内容:

public function GetSpeed() : Number
{
    return speed;
}

public function SetSpeed(newspeed:Number)
{
    speed = newspeed;
}

然后您可以将提供的代码更改为:

private function shootPlayerObject(e:TouchEvent):void 
{
    if (e.type == TouchEvent.TOUCH_TAP)
    {
        btnShootPlayer = true;
        keepFocusEngine.SetSpeed(10 + Math.random()*2);
    }else
    {
        btnShootPlayer = false;
    }
}

如果您想知道速度,可以使用keepFocusEngine.GetSpeed()。由于您在类路径中有一些洞察力,因此更容易编程。此外,当调用getter或setter时,您可以在该函数中执行任何操作。如果您总是更容易返回速度* 10,那么getter可以return speed*10;

编辑:我想提及这个问题:Why prefer Properties to public variables?