1

楽しみのために言ってください私はオーバーライドArrayして再定義したいですmap

public dynamic class MagicArray extends Array {
  public override function map(f:Function, thisObject:* = null):Array {
    var result:Array = [];

    for (var i:int = 0; i < this.length; i++) {
      result.push(f(this[i]));
    }

    return result;
  }
}

このエラーが発生します:Method marked override must override another method.

は?

そこで、overrideキーワードを削除して再試行しました。これで、すべてが正常にコンパイルされます。しかし、それを使おうとすると:

var a:MagicArray = new MagicArray([1,2,3]);
a.map(function(x) { return x + 1; }); 

次のエラーが発生します。

Error: Ambiguous reference to map.

では、ここで何が起こっているのでしょうか。どうすればオーバーライドできますmapか?

4

1 に答える 1

1

拡張機能を動的にし、名前空間を使用していますか?http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b8d829-7fde.htmlを参照してください。

于 2012-07-03T21:25:55.307 に答える