我需要從我的觀點得到更多信息,所以我想我會添加一個previousX,previousY,這樣我就可以得到一個deltaX和deltaY。現在,如果我製作一個簡單的自包含類,這可以很好地工作。如何正確擴展AS3 Point類?
但是,我認爲我想擴展flash.geom.Point類以從其提供的其他函數和計算中受益。
所以我擴展了Point並根據需要修改了x和y setter。當我編譯時,我得到一個錯誤,這些設置器沒有標記爲應該覆蓋。所以我重寫,但然後我得到一個錯誤,說這些不覆蓋任何函數。
任何線索,我搞砸了?
這裏是類:
package net.jansensan.geom
{
import flash.geom.Point;
/**
* @author Mat Janson Blanchet
*/
public class UpdatablePoint extends Point
{
private var _previousX : Number = 0;
private var _previousY : Number = 0;
private var _deltaX : Number = 0;
private var _deltaY : Number = 0;
// ********************************************************************
// [ PUBLIC METHODS ]
// ********************************************************************
public function UpdatablePoint(x:Number=0, y:Number=0)
{
super(x, y);
}
override public function toString():String
{
return "(x=" + super.x + ", y=" + super.y + ", previousX=" +
_previousX + ", previousY=" + _previousY + ", deltaX=" +
_deltaX + ", deltaY=" + _deltaY + ")";
}
// ********************************************************************
// [ GETTERS/SETTERS ]
// ********************************************************************
override public function set x(x:Number):void
{
_previousX = super.x;
super.x = x;
_deltaX = super.x - _previousX;
}
override public function set y(y:Number):void
{
_previousY = super.y;
super.y = y;
_deltaY = super.y - _previousY;
}
public function get previousX():Number
{
return _previousX;
}
public function get previousY():Number
{
return _previousY;
}
public function get deltaX():Number
{
return _deltaX;
}
public function get deltaY():Number
{
return _deltaY;
}
}
}
您是否可以在兩種情況下都包含錯誤的確切文本?有和沒有'override'語句。你可能會重寫一個額外的函數。 – lunixbochs