0

大家好,我正在尝试更改导入为文件中的 var。谁能帮我指出来。

这是 externalfile.as 中的原始代码

private function SetNewPosition()
    {
        this.newX = this.GetRandomXPosition();
        this.newY = this.GetRandomYPosition();

        this.totalDistance = this.GetDistance();

        var time:Number = this.totalDistance / this.speed;

        speedX = (this.newX - this.x)/time;
        speedY = (this.newY - this.y)/time;
    }

我正在尝试从 Main.as 更改 newX 和 newY 请分享我如何解决这个问题,谢谢!

4

2 回答 2

1

我想, newX 和 newY 变量在您的 .as 文件中是私有的。

要通过另一个 .as 更改变量,您必须遵循以下两种方式之一:

第一的:

更改变量的修饰符(从私有到公共)

第二:

在您的变量上定义属性 get/set,以便您的变量保持私有,您可以管理另一个 .as 文件发送的结果。例如,如果您的 newX 不能为负数,并且在 Main.as 您尝试输入小于零的值,则在您的 set 属性中,您可以决定将其值设置为零,或应用绝对值等等。

于 2013-10-17T09:35:42.600 回答
0

您可能想问自己为什么需要 Main 才能访问 newX 和 newY 变量。如果 Main 正在重置 external.as 实例的位置,您可以向 external.as 添加一个“reset”方法,这将保持 newX 和 newY 封装。目的是尝试并保留与 external.as 相关的任何程序编码作为该类的“内部”。如果涉及 external.as 的操作可以在类内“私下”运行,则应在此处添加代码。但是如果 Main.as 绝对需要访问权限,请为 newX 和 newY 添加 setter 和 getter 方法,例如...

public function set newX(value:Number):void {
    this.newX = value;
}

public function get newX():Number {
    return this.newX
}
于 2013-10-17T09:46:38.173 回答