Если вы чувствуете, что ввод this.buttonExample
снова и снова слишком повторяется, просто присвойте этот объект переменной и используйте эту переменную в остальных операторах:
var b : Button = this.buttonExample;
b.buttonMode = true;
b.useHandCursor = true;
b.addEventListener(...);
Как уже упоминалось, есть и оператор with
, но его использование не рекомендуется, поскольку он затрудняет чтение кода и может привести к странным результатам:
with (this.buttonExample) {
buttonMode = true;
useHandCursor = true;
addEventListener(...);
}
Конечно, вы можете комбинировать эти предложения с другими приемами, такими как цепочки заданий:
var b : Button = this.buttonExample;
b.buttonMode = b.useHandCursor = true;
b.addEventListener(...);
Будьте очень осторожно, чтобы только таким образом связывать назначения, если назначенное значение неизменное (например, true
, false
, числа и строки, но нет (массивы или большинство других объектов), потому что тот же самый объект будет назначен всем переменным на левой стороне. Если значение является неизменным, это не имеет значения, но если оно изменчиво, вы можете получить странные результаты, как в этом примере:
a = b = [ ];
a.push(1);
b.push(2);
trace(a); // outputs 1, 2
trace(b); // also outputs 1, 2
Причина этого результата в том, что a
и b
оба ссылаются на один и тот же массив 1028 *, и поскольку массивы являются изменяемыми, не имеет значения, как вы обращаетесь к объекту, он все равно будет изменен , a
и b
не ссылаются на разные массивы только потому, что они являются разными переменными.
Вы можете подумать, что можете сделать что-то вроде следующего, но это будет не работать.
// this will NOT work
var b : Button = this.buttonExample;
(b.buttonMode = b.useHandCursor = true).addEventListener(...);
Причина, по которой стоит сказать b.buttonMode = b.useHandCursor = true
, но не добавлять .addEventListener(...)
, заключается в том, что значением выражения присваивания (например, b.buttonMode = true
) является значение , присвоенное в левой части. (например, true
). Если вы добавите .addEventListener(...)
к этому, вы, по сути, говорите true.addEventListener(...)
, что явно не то, что вы хотите. Другими словами
b.buttonMode = b.useHandCursor = false;
эквивалентно
b.useHandCursor = false;
b.buttonMode = b.useHandCursor;
Который, как мы надеемся, также сделает перечисленные выше оговорки простыми.