我有这个计算潮汐的代码。功能很大,使用日期和端口来计算它。
有4个结果:
r"\d+(?:\.\d+)?"
现在,我想计算4个新值(对于日期+1),而不是使用新日期来驱动所有函数,因为它会更改haute1
haute2
basse1
basse2
的值, haute1
,haute2
,basse1
..
我只想用现有函数创建新值“basse2
”。
知道是否有可能吗?
我正在做的是调用现有的函数:
haute1_tomorrow
以maree("city, tomorrow_date);
作为明天的日期。但它只会触发函数并为tomorrow_date
,haute1
,haute2
,basse1
设置新值。
我希望保留这些值,并创建4个新值basse2
,haute1_tomorrow
,haute2_tomorrow
和basse1_tomorrow
。
我的功能(我不会粘贴整个功能,因为你读它的时间太长了):
basse2_tomorrow
... ..
答案 0 :(得分:0)
您需要 OOP :面向对象的编程。
不考虑您的实际问题,这样的问题的基本方法是使组件/类自给自足以解决您的问题的一个实例。例如:
package
{
public class Trigonometry
{
public var degrees:Number;
public var radians:Number;
public var sine:Number;
public var cosine:Number;
public var tangent:Number;
public function Trigonometry(value:Number)
{
// Normalize degrees to -180..+180.
value %= 360;
if (value >= 180) value -= 360;
if (value < -180) value += 360;
degrees = value;
radians = value * Math.PI / 2;
sine = Math.sin(radians);
cosine = Math.cos(radians);
tangent = Math.tan(radians);
}
}
}
然后你使用实例,它们是独立且孤立的,不会混淆对方的字段:
var A30:Trigonometry = new Trigonometry(30);
var A45:Trigonometry = new Trigonometry(45);
var A60:Trigonometry = new Trigonometry(60);
var A90:Trigonometry = new Trigonometry(90);
trace("Sine of 30 degrees is:", A30.sine);
trace("Cosine of 60 degrees is:", A60.cosine);
trace("Tangent of 45 degrees is:", A45.tangent);
UPD :然后在你的任务中,你需要这样的东西:
package
{
public class Mar
{
// Here you need to declare all the variables you are going to use.
// Like (I don't know what type you need):
public var $pmm:String;
public var $pms:String;
private var callback:Function;
// Then put all the methods you need:
public function maree($inputport:String = "", $inputdate:String = "", handler:Function = null):void
{
callback = handler;
// Your processing here.
}
}
}
然后你使用它完全相同:
var M1:Mar = new Mar;
var M2:Mar = new Mar;
M1.maree(/* first call arguments here */);
M2.maree(/* second call arguments here */);
因此,实例将在不考虑彼此存在的情况下运行,并且您可以访问各自的字段,如:
trace(M1.$pmm);
trace(M1.$pms);