ActionScript - переопределяющий метод без сопоставления подписи? - PullRequest
2 голосов
/ 08 октября 2010

при расширении класса, невозможно переопределить метод, не сопоставив также параметры?

например, я хотел бы использовать имя метода, в данном случае это расширение сокета, а метод, который я хочу переопределить, - connect. однако я хочу запросить дополнительные параметры, которые не запрашивает функция stock connect.

является единственной альтернативой для создания моего собственного метода, похожего на соединение, с моими собственными параметрами, вызовите super.connect из этой функции и переопределите функцию штатного соединения, чтобы вызвать ошибку, если она вызывается?

все это звучит как крушение поезда.

Ответы [ 2 ]

5 голосов
/ 08 октября 2010

Перегрузка функций не поддерживается в ActionScript (однако Даррон Шалл продемонстрировал некоторую псевдоперегрузку в в этой статье ).

Я думаю, в вашем случае осталось только создать собственный метод connectEx.

0 голосов
/ 08 октября 2010

К сожалению, перегрузка не поддерживается.В качестве следующего лучшего варианта вы можете рассмотреть необязательные аргументы.Это позволит вам передать в метод столько параметров, сколько вам нужно.Метод получит эти параметры в виде массива, и вы сможете обрабатывать их так, как хотите с этого момента.

Вот как будет выглядеть метод с использованием необязательных параметров:

function someMethod(...params):void
{
    for(var i:int = 0 ; i < params.length ; i++ )
    {
        trace("parameter: " + params[i]);
    }
}

Вы можете прочитатьПодробнее о необязательных параметрах здесь .

...