Книга: Справочник по Flash
with - Выполняет некоторый код в конце указанного объекта
with - Выполняет некоторый код в конце указанного объекта
with
Предоставляет сокращенный способ обращения к свойствам объекта.
Синтаксис:
with (object) { statements;}
Аргументы:
Описание:
Если обращение к свойству происходит в блоке предложений with, проверяется наличие этого свойства у объекта object. Если у object существует указанное свойство, то оно и используется для разрешения ссылки на свойство. Если у object нет такого свойства, оно ищется в текущей временной диаграмме или функции.
Примеры:
Следующий пример демонстрирует разницу между выполнением предложения внутри with и вне with:
PI = 10; // Задать переменную временной диаграммы, PIwith (Math) { // Выполнить предложения в контексте Math trace("pi is: " + PI); // Выводит: 3.1459 (PI - свойство Math)}trace("pi is: " + PI); // Выводит: 10 (Обращение к Math больше нет)
Помимо предоставления удобного доступа к свойствам объекта, with может использоваться для вызова методов объекта:
x = 10;y = 11;with (Math) { larget = max(x, y);}trace(larget); // Выводит: 11
Нельзя определять новое свойство объекта, являющегося целью предложения with. Обратите внимание в предыдущем примере на то, что переменная larget не определена в объекте Math, поэтому ссылка на свойство воздействует на временную диаграмму или функцию, содержащую предложение with.
Следующий код показывает неверную попытку присвоить переменной значение myClip:
with (myClip) { var x = 10; // значение x задается в текущей временной диаграмме, // а не в myClip}
Можно, однако, с полным правом использовать with для воздействия на экземпляры клипов другими способами. Это предложение предоставляет удобный способ работы с глубоко вложенными структурами экземпляров.
Например, следующий код:
_root.form.userProfile.userID = "34R56";_root.form.userProfile.gotoAndPlay("guestionnaire");
можно заменить таким:
with (_root.form.userProfile) { userID = "34R56"; gotoAndPlay("guestionnaire");}
Но with не является единственным способом обеспечения такого удобства. Можно просто присвоить наш экземпляр переменной и использовать эту переменную в ссылках:
var userForm = _root.form.userProfile;userForm.userID = "34R56";userForm.gotoAndPlay("guestionnaire");
Следующий пример устанавливает свойства x и y экземпляра someOtherMovieClip и затем командует ему перейти на третий кадр и остановиться:
with (someOtherMovieClip) {_x = 50;_y = 100;gotoAndStop(3);}
Следующий отрывок кода показывает, как можно написать предшествующий пример без использования команды with:
someOtherMovieClip._x = 50;someOtherMovieClip._y = 100;someOtherMovieClip.gotoAndStop(3);
Этот код также можно написать с использованием команды tellTarget:
tellTarget ("someOtherMovieClip") { _x = 50; _y = 100; gotoAndStop(3);}
Использование команды with полезно для одновременного вызова многих элементов в контекстном листе. В следующем примере встроенный объект Math помещен в начало объектной области (контекста). Установка Math, как объекта по умолчанию, приводит идентификаторы cos, sin и PI к Math.cos, Math.sin и Math.PI соответственно. Идентификаторы a, x, y и r - не методы или свойства объекта Math, но так как они существуют в объектной области (контексте) функции polar, они приводятся к к соответствующим локальным переменным.
function polar(r){var a, x, ywith (Math) {a = PI * r * rx = r * cos(PI) y = r * sin(PI/2)}trace("area = " +a)trace("x = " + x)trace("y = " + y)}
Возможно использование вложенных команд with для доступа к информации во многих контекстных областях. В следующем примере экземпляры fresno и salinas являются дочерними по отношению к california. Оператор устанавливает значения _alpha для fresno и salinas без изменения значения _alpha у california.
with (california){with (fresno){_alpha = 20;}with (salinas){_alpha = 40;}}
Совместимость:
Используется с 4-ой версии Flash
- break - Прекращает выполнение цикла
- call - Выполнить сценарий удаленного клипа
- comment - Вставить комментарии
- continue - Заново начинает текущий цикл
- delete - Удаление объекта, элемента массива или переменной
- duplicateMovieClip - Создать копию клипа
- evaluate - Создает новую пустую строку, и вставляет ;
- for - Многократно выполняет некоторый код
- for...in - Цикл, используемый для перечисления свойств объекта
- fscommand - Передача данных браузеру
- function - Создает новую функцию
- getURL - Переход на веб-страницу
- if - Выполнение или не выполнение предложений в зависимости от условий
- ifFrameLoaded - Выполняет код если загруженн определенный кадр
- include - Импорт текста из внешнего файла ActionScript
- loadMovie - Загрузить файл .swf
- loadMovieNum - Загрузить файл .swf
- loadVariables - Загружает в клип или фильм внешние переменные
- loadVariablesNum - Прикрепляет группу внешних переменных к уровню документа
- print - Вывод на печать кадров фильма или клипа с использованием векторной графики
- printNum - Печать кадров уровня документа как векторных изображений
- printAsBitmap - Вывод на печать кадров фильма или клипа с использованием растровой графики
- printAsBitmapNum - Печать кадров уровня документа как растровых изображений
- removeMovieClip - Удалить клип фильма из Flash Player
- return - Выходит из функции или возвращает ее значение
- setProperty - Присвоить значение свойству клипа фильма
- startDrag - Заставляет фильм или клип следовать за курсором мыши
- Stop - Остановить воспроизведение фильма на текущем кадре
- stopAllSounds - Выключить все звуки
- stopDrag - Останавливает текущую операцию перетаскивания
- tellTarget - Обратиться к удаленному клипу
- toggleHighQuality - Изменение качества
- unloadMovie - Удалить фильм или клип из проигрывателя
- unloadMovieNum - Удалить фильм из проигрывателя
- var - Объявление локальной переменной
- while - Многократно выполняет некоторый код
- with - Выполняет некоторый код в конце указанного объекта
- Практическая работа 53. Запуск Access. Работа с объектами базы данных
- Дополнительные национальные кодовые страницы и порядки сортировки
- Глава 5 Агрессивные формы кода и борьба с ними
- Стиль написания исходного кода
- Using Double Quotes to Resolve Variables in Strings with Embedded Spaces
- 1.4. Кодирование информации
- Drawbacks with restore
- 1.4.1. Кодирование во время выполнения
- Три способа кодирования звука
- Листинг 15.11. Код для загрузки файла с Web-сервера
- 7. AGGREGATION WITH INDEPENDENT WORKS
- 2. Пример создания базового отношения в записи на псевдокоде