var someFunction:Function = function():void{}
будет работать медленнее, чем
public function someFunction():void{}
Является ли различие достаточным, чтобы оно имело большое значение, - это совсем другая история. Я думаю, что есть много смысла в использовании переменных с типом функции в качестве временных обратных вызовов для «событий» (не событий Flash AS3, но общего значения слова «событие»), которые не встречаются один раз в цикле обновления. Даже в цикле обновления эта стратегия на намного более дружественна к производительности, чем при использовании собственной модели диспетчеризации событий Flash (особенно, если вы используете всплывающее окно событий, которое является абсолютной фигурой).
Конечно, он также может ссылаться на Закон Деметры, который является средством инкапсуляции глубоко вложенных отношений типа has-a, так что вам все равно, если doFoo () требует 10 ссылок на объекты и функции звонки под капотом, пока foo сделано. Закон Деметры может очень сильно влиять на производительность, в зависимости от того, насколько глубоким будет стек вызовов при вызове doFoo ().
Что касается вопроса в вашем комментарии, достаточно легко проверить себя. Во флаконе:
// on frame 1
var textField:TextField = new TextField();
this.addChild(textField);
var f:Function = this.stop();
var i:int = 0;
var ilen:int = 100000;
var time:int;
time = getTimer();
for(i = 0 ; i < ilen ; i++){
f();
}
time = getTimer() - time;
textField.text = "f() :: "+String(time)+"\n";
this.gotoAndStop(2);
// on frame 2
var mc:MovieClip = new MovieClip();
time = getTimer();
for(i = 0 ; i < ilen ; i++){
mc.stop();
}
time = getTimer() - time;
textField.appendText("mc.stop() :: " + String(time));
this.stop();
Я не проверял это, поэтому могут быть синтаксические ошибки. Конечно, вам понадобится и правильный импорт. Это должно быть логично, однако.
Обязательно проверьте это в браузере, а не только в проигрывателе отладки или проигрывателе предварительного просмотра. Ваш плагин для браузера будет иметь более высокие показатели производительности, а также, скорее всего, будет тем, что имеет конечный пользователь на своем компьютере.