嘿伙计们抱歉,如果这是重新发布的帖子,我通过其他网站检查了答案以及此信息,但信息不充分,而且我还在学习很多东西。
但我的问题是我的引擎类叫做keepFocusEngine
而另一个名为mcStar
的类我没有遇到过这个问题,所以我真的不明白怎么做但是我想从mcStar
到keepFocusEngine
访问整数变量。所以在我的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;
。
对不起,如果我困惑任何人,我有点困惑自己哈哈。 但是你明白我想要完成什么吗?
答案 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?