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