如何在导入的动作脚本中更改private var

时间:2013-10-17 08:17:21

标签: actionscript-3 flash

大家好我正在尝试更改导入的文件中的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分享我如何解决这个问题!

2 个答案:

答案 0 :(得分:1)

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

要更改另一个变量,您必须遵循以下两种方法之一:

首先:

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

第二

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

答案 1 :(得分:0)

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

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

public function get newX():Number {
    return this.newX
}