Внимание ! Вопросы к тесту выложены исключительно в ознакомительных целях: количество вопросов может не совпадать с действительным, актуальность не поддерживается,- за решением теста Welcome to the cashier! Какая концепция объектно-ориентированного программирования аналогична экземпляру клипа во Флэше?
класс поле объект метод
Какая концепция объектно-ориентированного программирования аналогична символу клипа во Флэше?
метод класс поле объект
Что из перечисленного ниже может содержать в себе библиотека (Library) ролика?
символы объекты экземпляры классы
Чем отличается кнопка от обычного клипа?
зависимой линейкой времени линейкой времени специального вида способностью реагировать на события мыши
На какой аспект поведения кнопки влияет опция "TrackAsMenu"?
на посылку события dragIn на посылку события dragOut на посылку события dragOver
Отдать команду редактировать символ можно в следующих местах:
в библиотеке в главном меню в Movie Explorer на сцене
Чем отличается клип типа Graphics от обычного клипа?
способностью реагировать на события мыши линейкой времени специального вида зависимой линейкой времени
В чем может заключаться отличие поведения обычного кадра от поведения соответствующего ему ключевого?
отличия могут возникнуть из-за появления новых графических примитивов никаких отличий быть не может отличия могут быть только в коде отличия могут возникнуть за счет анимационных эффектов
Какие шрифты может использовать динамическое текстовое поле?
только системные шрифты только те, что заранее встроены в ролик заранее встроеные или системные любые шрифты
Какие шрифты может использовать статическое текстовое поле?
только те, что заранее встроены в ролик только системные шрифты заранее встроенные или системные любые шрифты
Какие из приведенных ниже утверждений верны?
под Windows шрифт 16 кегля во Флэш МХ будет выглядеть так же, как шрифт 12 кегля в "родных" Windows-программах (например, Microsoft Word) по умолчанию ролик демонстрируется со скоростью 24 кадра в секунду в коде, относящемся к символу, а не к экземпляру, конструкция on (...){} не может быть применена в динамических текстовых полях не могут быть использованы элементы html-разметки
Текстовое поле какого типа способно одновременно отобразить символы разных шрифтов и размеров?
поле ввода динамическое статическое любое
Текстовое поле какого типа способно отображать верхние и нижние индексы?
любое динамическое поле ввода статическое
Какие из приведенных ниже утверждений верны:
объявлять переменные в ActionScript 1.0 не обязательно язык C является подмножеством ActionScript 1.0 язык ActionScript 1.0 является подмножеством языка Java язык ActionScript 1.0 полностью соответствует стандарту ECMA-262 идентификаторы в ActionScript 1.0 могут состоять из символов национальных алфавитов
Что представляют собой объекты примитивных типов?
автоматически упаковываемые объекты области для хранения данных, к которым неприменима объектная семантика объекты "только для чтения"
Какие из приведенных ниже лексем являются корректными идентификаторами ActionScript 1.0?
2identifier_ _identifier2 Идентификатор
Как добавить объекту поле?
нужно обратиться к этому полю, и оно будет создано нужно вызвать функцию Object.createField(name) готовому объекту нельзя добавить поле нужно попытаться что-то записать в это поле, и оно будет создано
Когда происходит подключение включаемого файла?
подключение происходит при выполнении, но при компиляции файл также должен быть доступен при выполнении при компиляции
Как хранятся числа во Флэш МХ?
они хранятся как числа с одинарной точностью (float, 32 бита) они хранятся как числа с двойной точностью (double, 64 бита) они хранятся в зависимости от контекста или как целые числа, или как числа с двойной точностью (double, 64 бита)
Как отличить друг от друга типы undefined и null?
эти типы можно отличить при помощи оператора == эти типы невозможно отличить друг от друга эти типы можно отличить при помощи оператора ===
В каких из перечисленных случаев происходит приведение операндов к строковому типу?
при использовании любых арифметических операторов при использовании операторов сравнения, когда один из операндов - строка при использовании оператора +
Что означает запись 5..toString(2)?
число 5 преобразуется в строку не более чем из двух символов число 5 округляется до двух знаков после запятой и преобразуется в строку такая запись некорректна число 5 округляется до целого и преобразуется в строку как двоичное число
Что делает оператор === в языке ActionScript 1.0?
этот оператор зарезервирован для последующего использования этот оператор сравнивает операнды так же, как и оператор ==, но вдобавок проверяет совпадение типов этот оператор сравнивает две ссылки и выдает true, если они указывают на один и тот же объект это устаревший оператор для сравнения строк
Как производится сравнение в инструкции switch?
сравнение производится только для числовых типов сравнение производится при помощи оператора === сравнение производится при помощи оператора ==
Что делает цикл for...in?
перебирает поля объекта перебирает элементы массива перебирает кадры клипа
Сколько времени "живет" точка останова?
точки останова действительны для всех сессий отладки точки останова действительны только для одной сессии отладки можно сделать точку останова обоих вышеуказанных типов
Можно ли управлять тем, включать файл или нет, если инструкция включения файла уже присутствует?
да, при помощи обычного if нет да, при помощи условного подключения да, при помощи директивы условной компиляции
Для чего используются блоки во Флэш МХ?
блоки допустимы только в инструкциях, требующих составного оператора (а также для определения функций) блоки имеют смысл только в инструкциях, требующих составного оператора (а также для определения функций) для обозначения области видимости локальных переменных
Для перехода между разными сценами можно использовать
и то, и другое соответствующие Actions соответствующие методы класса MovieClip
Какие из перечисленных ниже записей годятся для получения значения поля field объекта obj (объект obj размещен в корневом клипе) из кода, выполняющегося в кадре корневого клипа?
Какими из приведенных ниже инструментов можно создать новую переменную?
оператором set квадратными скобками и оператором присваивания оператором eval
Какие из приведенных утверждений верны:
исполнение команд переходов между кадрами откладывается до того момента, когда внутренний таймер Флэш скомандует переключать кадры если клип состоит из одного кадра, этот кадр проигрывается только один раз невозможно загрузить клип на место клипа, нарисованного вручную сцены можно создавать только в корневом клипе
Команда перехода на другой кадр исполняется
сразу после ее подачи в тот момент, когда таймер скомандует менять кадры во всех клипах после того, как будут выполнены все остальные операторы (за исключением команд переходов)
Для перехода между разными кадрами можно использовать
соответствующие Actions и то, и другое соответствующие методы класса MovieClip
Отметьте свойства клипов, которые доступны для записи:
_url _name _target _x _xmouse
Может ли клип с номером уровня 10 быть расположен поверх клипа с номером уровня 20?
да, если они находятся в одном родительском клипе только в том случае, если они находятся в разных роликах да, номера уровней не имеют к этому отношения только в том случае, если один их клипов создан динамически, а другой - статически да, если они находятся в разных родительских клипах
Можно ли создать динамический клип с отрицательным номером уровня?
да, точно так же, как и с положительным номером уровня нет только путем обмена уровнями статического и динамического клипов только если он будет расположен выше всех статически созданных клипов
Что нужно сделать для того, чтобы использовать встроенную систему сообщений Flash MX для посылки своих собственных сообщений?
вызвать метод initialize объекта ASBroadcaster, передав ему в качестве аргумента тот объект, который вы хотите использовать в качестве публикатора сообщений вопрос некорректен - с помощью встроенной системы сообщений Flash MX посылать собственные сообщения невозможно завести новый объект типа ASBroadcaster
Что нужно сделать, чтобы клип по имени clip получал сообщения о нажатии кнопок на клавиатуре?
нужно вызвать метод addListener(clip) у глобального объекта Key нужно вызвать метод subscribe у клипа нужно создать собственный публикатор сообщений, который будет посылать сообщения о нажатии кнопок, а на его сообщения подписать наш клип не нужно делать ничего
Какие варианты содержимого свойства _target правильны (могут встретиться в реальности)?
_root/clip_a _level1\clip\x /a/b
Какие из приведенных ниже утверждений верны?
не нужно предпринимать специальных действий, чтобы получать в клипе сообщения от клавиатуры не нужно предпринимать специальных действий, чтобы получать в клипе сообщения от мыши когда клип загрузился, ему приходит сообщение onData
Реакцию на изменение предопределенных свойств клипа _x и _у можно настроить
при помощи метода аddProperty при помощи любого из перечисленных методов при помощи метода setProperty при помощи функции watch при помощи второго и третьего метода ни одним из перечисленных методов
Какая из областей видимости имеет преимущество перед всеми остальными:
поля объекта _global поля текущего клипа локальные переменные
На что будет указывать ссылка arr в результате выполнения следующего кода:
arr = [1, 2, 3][2];? на двумерный массив 3*2 на число 3 на двумерный массив 3*1 на массив из чисел 1, 2, 3 на массив, единственным элементом которого является число 3
В каком виде функция Array.toString выводит в строку многомерный массив?
все элементы перечисляются через запятую, субмассивы никак не отделяются друг от друга каждый субмассив печатается в квадратных скобках, элементы перечисляются через запятую субмассивы разделяются символом перевода строки, элементы перечисляются через запятую
Какие из приведенных ниже выражений корректно определяют двумерный массив 2*2 по имени arr?
arr = new Array([2, 2], [2, 2]); arr = new Array[2][2]; arr = new [2][2]; arr = [[2, 2], [2, 2]]; arr = [2][2]; arr = new Array(2, 2); arr = [2, 2][2, 2];
Каким образом данные хранятся в массиве?
данные хранятся в безымянных полях дочернего (по отношению к объекту типа Array) объекта по имени data данные хранятся в безымянных полях объекта типа Array этого нельзя узнать, поскольку Array - встроенный объект, а хранилище данных не видно через ActionScript данные хранятся в полях объекта типа Array, причем имена полей являются числами
Какие из указанных функций можно передать в метод sort для сортировки массива по убыванию?
function(a, b){return b - a;} function(a, b){return a - b;} function(a, b){return a > b ? -1 : (a < b ? 1 : 0) ;} function(a, b){return a < b ? -1 : (a > b ? 1 : 0) ;}
Какие из приведенных ниже утверждений будут верны, если считать, что массив arr сформирован при помощи следующего кода: arr = [2, 4, 11]; arr[1.5] = 7;?
это можно сделать только сортировкой при помощи передаваемой пользователем функции сравнения для этого существует специальный параметр в обычном методе сортировки эта задача ничем не отличается от сортировки любого другого массива для этого существует специальный метод
Какое высказывание о методах массива slice и splice является верным:
slice выделяет из массива один кусок, splice может разбивать массив на несколько кусков обе эти функции могут разбивать массив на несколько кусков splice выделяет из массива один кусок, а slice может разбивать массив на несколько кусков slice выделяет из массива один кусок, splice – тоже
Какие методы массива пригодны для эмуляции стека?
пара push и unshift или пара pop и shift пара push и pop или пара shift и unshift только пара push и pop пара push и shift или пара pop и unshift
Какие методы массива пригодны для эмуляции очереди?
пара push и unshift или пара pop и shift пара push и pop или пара shift и unshift пара push и shift или пара pop и unshift только пара push и pop
Какой из методов строки эквивалентен устаревшей глобальной функции substring?
slice substr substring
Какой из методов строки может отсчитывать символы от конца строки, если второй аргумент отрицателен?
substring substr slice
Какое минимальное количество вызовов функций (методов) необходимо для того, чтобы произвести замену подстроки в строке?
один три пять четыре зависит от количества необходимых замен два
В какой из методов строки передается длина выделяемой подстроки?
slice substr substring
Какой из методов строки всегда выдает подстроку, находящуюся между первым и вторым аргументом?
substr slice substring
Рассмотрите следующий код
function gen(){ var x = 0; return function(){ trace(++x); } } f1 = gen(); f2 = gen(); f1(); f2();
и определите, что именно он выводит в консоль? (В приведенных ниже вариантах ответа мы будем писать [перевод строки] вместо настоящего перевода строки.)
function gen(){ var x = 0; f1 = function(){ trace(++x); } f2 = function(){ trace(++x); } } gen(); f1(); f2();
и определите, что именно он выводит в консоль? (В приведенных ниже вариантах ответа мы будем писать [перевод строки] вместо настоящего перевода строки.)
function iter_n(n, func){ return function(x){ var result = x; for (var i=0; i<n; i++){ result = func(result); } return result; } } function func_multiply_ten(x){ return 10*x; } f = func_multiply_ten; t = iter_n(iter_n(2, f)(2), f)(2); trace(t);
function iter_n(n, func){ return function(x){ var result = x; for (var i=0; i<n; i++){ result = func(result); } return result; } } function func_inc(x){ return ++x; } f = func_inc; y = iter_n(iter_n(2, f)(2), f)(2); trace(y);
и определите, что именно он выводит в консоль?
4 3 5 8 16 6
Рассмотрите следующий код
function iter_n(n, func){ return function(x){ var result = x; for (var i=0; i<n; i++){ result = func(result); } return result; } } function func_twice(x){ return 2*x; } f = func_twice; z = iter_n(iter_n(2, f)(2), f)(2); trace(z);
и определите, что именно он выводит в консоль?
512 64 8 1024 4 256
Доступны ли локальные переменные некоторой функции после выхода из нее?
нет да, как и любые другие переменные доступны только через функцию, определенную в данной
В какой момент становятся доступны (не локальные) функции, определенные способом function name()?
после определения только в следующем кадре в начале кадра
Откуда доступны локальные переменные?
из данной функции и функций, созданных внутри нее из данной функции и всех функций того же клипа только из данной функции (где они определены) из данной функции и методов объекта, которому она принадлежит из данной функции и функций, вызванных из нее
В какой момент становятся доступны (не локальные) функции, определенные способом name = function ()?
только в следующем кадре в начале кадра после определения
В какой момент теряется последняя ссылка на контекст вызова функции (что приводит к его разрушению), если не предпринимать явных действий по сохранению ссылки на этот контекст?
сразу после выхода из функции после того, как будут потеряны ссылки на все функции, определенные при вызове данной после того, как будут потеряны ссылки на все функции, определенные при вызове данной, а также ссылки на все контексты их вызова после выхода из кадра, в котором была вызвана функция
Как получить объект контекста вызова?
с помощью локальной функции, возвращающей this завести локальную переменную this через arguments
На какой объект указывает ссылка arguments.caller?
на контекст вызова той функции, которая вызвала исполняемую в данный момент на функцию-объект, из которой произошел вызов выполняемой в данный момент функции на контекст вызова выполняемой в данный момент функции на вызванную функцию-объект на объект arguments функции, вызвавшей данную
Какой способ не годится для параметризации функций, передаваемых в другие функции для последующего вызова?
дополнительные аргументы функции - генераторы функций поля объектов-функций
Как обратиться к полям объекта-функции из самой этой функции?
через arguments.caller через this получив сначала объект контекста вызова через arguments.callee
Класс во Флэш МХ задается:
конструктором, к которому прикреплен прототип прототипом, к которому прикреплен конструктор только конструктором только прототипом
Может ли произвольный объект быть прототипом класса?
только объект типа function да нет только если в объекте есть поле constructor
Оператор MyClass() выполнится корректно, если MyClass является
любым объектом конструктором, к которому прикреплен прототип прототипом, к которому прикреплен конструктор любой функцией
Может ли произвольная функция использоваться в качестве конструктора класса?
да только если к ней по ссылке __proto__ прикреплен прототип нет только если к ней по ссылке prototype прикреплен прототип
Если в конструкторе заводится поле а при помощи записи this.а = 5, то это поле появится
в кадре, внутри которого определен конструктор в прототипе в создаваемом объекте в кадре, внутри которого вызван new
Если в конструкторе заводится поле а при помощи записи а = 5 (без использования this), то это поле появится
в кадре, внутри которого вызван new в кадре, внутри которого определен конструктор в прототипе в создаваемом объекте
Ссылка constructor указывает на
объект-прототип класса конструктор класса конструктор прототипа
Как завести новые методы в прототипе готового класса, имея ссылку cnstr, указывающую на конструктор этого класса?
через ссылку cnstr.__proto__ через ссылку cnstr.prototype ссылки cnstr недостаточно, нужно иметь ссылку на сам прототип
Какие из приведенных ниже строчек кода, вызванных внутри функции-конструктора, позволят завести поле a в прототипе (в момент вызова конструктора)?
конструктор класса объект-прототип класса конструктор прототипа
Какова доступность в объекте поля, имеющегося в прототипе?
это поле доступно абсолютно так же, как и поле, заведенное непосредственно в объекте это поле недоступно в объекте это поле доступно, но при попытке записи в объекте создается перекрывающее его поле это поле ведет себя как доступное только для чтения
Ссылка __proto__ указывает на
конструктор прототипа объект-прототип класса конструктор класса
Почему для полноценной эмуляции статических свойств необходима специальная функция?
потому что надо обеспечить место для хранения данных потому что надо обеспечить доступ к свойству как через объект, так и через класс потому что надо обеспечить доступность статических свойств только из объектов данного класса
Какой механизм позволяет эмулировать приватные свойства?
использование принципа сохранения контекста вызова функции использование специальных возможностей функции setProperty использование недокументированной функции ASSetPropFlags
Как из метода, вызванного для объекта класса, завести поле, к которому могут получить доступ все объекты класса (но при этом не лежащее в прототипе)?
это можно сделать через ссылку constructor этого сделать нельзя это можно сделать только для встроенных объектов, имеющих специальный метод это можно сделать, если не указывать явно объект, поле которого мы заводим это можно сделать через ссылку this
Для чего используется ссылка __constructor__
с ее помощью вызывается через super() конструктор базового класса с ее помощью вызываются через super методы базового класса с ее помощью вызывается конструктор данного класса
Отметьте все причины, по которым объект с динамически установленным __proto__ может не являться адекватной заменой объекта, созданного при помощи new (так, что ссылки __proto__ у обоих объектов будут одинаковы)?
если не приложены специальные усилия, то в его функциях нельзя будет вызвать функции базового класса через super если у рассматриваемого класса есть нетривиальный конструктор, нужно дополнительно позаботиться о том, чтобы его вызвать для данного объекта если не приложены специальные усилия, то в рассматриваемом объекте не будут видны поля и методы базового класса
Отметьте все варианты, в которых ссылка а после выполнения приведенного ниже кода не будет указывать ни на объект класса Array, ни на объект класса x
(a = {f:10, __proto__: String.prototype}).__proto__ = Array.prototype (a = [2,3]).__proto__ = x (a = [2,3]).__proto__ = x.prototype (a = {f:10, __proto__: Array.prototype}) (a = {f:10}).__proto__ = Array.prototype (a = [2,3, __proto__: x]) (a = [2,3, __proto__: Array.prototype]) (a = [2,3, __proto__: x.prototype]) (a = [2,3,__proto__ = String.prototype]).__proto__ = x.__proto__ (a = [2,3, __proto__: Array.prototype]).__proto__= x.prototype
Отметьте все варианты, в которых ссылка а после выполнения приведенного ниже кода будет указывать на объект класса Array
(a = [2,3, __proto__: Array.prototype]).__proto__= x.prototype;/1 (a = [2,3, __proto__: Array.prototype]); (a = {f:10, __proto__: Array.prototype}); (a = {f:10}).__proto__ = Array.prototype; (a = {f:10, __proto__: String.prototype}).__proto__ = Array.prototype;
Отметьте все варианты, в которых ссылка а после выполнения приведенного ниже кода будет указывать на объект класса x
(a = [2,3, __proto__: x]) (a = [2,3]).__proto__ = x.prototype (a = [2,3,__proto__ = String.prototype]).__proto__ = x.__proto__ (a = [2,3]).__proto__ = x (a = [2,3, __proto__: x.prototype]) (a = [2,3, __proto__: Array.prototype]).__proto__= x.prototype
Если объекту изменить ссылку __proto__ динамически, то:
ничего не произойдет объект станет вести себя как объект другого класса это проявится только при наследовании
Конструктор базового класса записан
в ссылке __constructor__ в ссылке constructor в ссылке super
Каким образом в класс-наследник попадают поля базового класса?
копируются в конструкторе доступ без копирования происходит при записи в поле копируются при создании класса-наследника доступ без копирования происходит при обращении к полю
Проверить, к какому классу относится данный объект, можно
только вручную с помощью оператора instanceof с помощью оператора typeof
Альтернативное наследование решает проблему
вызова конструктора базового класса через super() вызова методов базового класса через super наследуемых свойств устранения двойных вызовов базовых конструкторов
Если изменить (добавить) какие-либо методы базового класса, то в производных классах
эти изменения не проявятся эти изменения проявятся немедленно эти изменения проявятся только при наследовании
Что делает запись var __proto__ = this?
эта запись некорректна, будет выдана ошибка компиляции она делает объект, вызвавший текущую функцию, объектом класса, методом которого данная функция является она делает контекст вызова текущей функции объектом класса, методом которого данная функция является она временно изменяет класс данного объекта
Зачем может быть нужно добавлять функции в класс Object?
это позволяет сделать свои функции доступными в качестве "константных" (вызываемых через объект-конструктор) методов любого класса это позволяет сделать свои функции доступными в качестве методов любого объекта это лучший способ спрятать свои функции от посторонних глаз это способ сделать их глобальными - то же самое, что добавить в _global
Зачем может быть нужно добавлять функции в класс Function?
это способ сделать их глобальными - то же самое, что добавить в _global это позволяет сделать свои функции доступными в качестве "константных" (вызываемых через объект-конструктор) методов любого класса это лучший способ спрятать свои функции от посторонних глаз это позволяет сделать свои функции доступными в качестве методов любого объекта
Рассмотрите следующий код
o = Object; _global.Object = Parent; Child = function () {}; _global.Object = o; delete o;
и определите, какие высказывания по его поводу являются справедливыми.
этот код обеспечивает корректный вызов базового конструктора через super() без специальной установки поля __constructor__ этот код обеспечивает наследование без лишнего вызова конструктора этот код обеспечивает то, что класс Child становится наследником класса Parent
Какую строчку из приведенных ниже следует вставить в описанную далее функцию superCon
Object.prototype.superCon = function(){ // вот здесь надо вставить строку кода }
на место, указанное в комментарии, чтобы ее (функцию superCon) можно было вызывать вместо super() в конструкторе (для вызова конструктора базового класса)?
o = Object; _global.Object = Parent; Child = function () {}; _global.Object = o; delete o;
обеспечивает то, что класс Child становится наследником класса Parent?
за счет того, что в этом случае не работает стандартный механизм наследования с использованием __proto__ за счет того, что теперь все классы стали наследниками Parent за счет того, что в prototype создается объект, того класса, который записан в _global.Object
Для реализации виртуальных базовых классов в функции multipleInherit используется
указание виртуальных базовых классов как обычных базовых плюс указание их же в качестве стоп-классов для ряда других базовых классов двойное указание класса в качестве базового, что автоматически интерпретируется как команда создать виртуальный базовый класс указание виртуальных базовых классов как специальных аргументов
В нашей реализации множественного наследования цепочки __proto__ базовых классов выстраиваются
упраздняются, а все нужные поля копируются прямо в создаваемый класс последовательно (после копирования) параллельно (после копирования) последовательно (без копирования) параллельно (без копирования)
Для каких целей может служить код такого вида:
func = function(someArgsArray){ // Количество аргументов в данном случае выбрано произвольно super(someArgsArray[0], someArgsArray[1]); } class_x = function(argClass, otherArgsArray){ this.__proto__.__constructor__ = argClass; func.apply(this, [otherArgsArray]); }
для вызова через apply конструктора любого базового класса, кроме системных этот код некорректен и выполняться не будет для вызова конструктора любого базового класса через apply
Зачем в нашей реализации множественного наследования применяется динамическая замена ссылки __constructor__ в процессе работы конструктора?
для корректного вызова базовых конструкторов после того, как конструктор субцепочки вызван через apply для запоминания информации о том, какой класс в субцепочке является следующим для вызова конструкторов системных базовых классов через apply
Почему в нашей реализации множественного наследования для корректного наследования от класса Array (или String) надо указывать его как системный базовый?
потому что не копируются поля, в которых хранятся данные контейнера потому что системные классы невозможно корректно скопировать потому что конструктор Array (как и конструктор String) работает как функция преобразования типа, если вызвать его через apply
В нашей реализации множественного наследования виртуальный базовый класс
ставится в цепочке __proto__ позади всех классов, которые являются его наследниками к нему ведут две альтернативные цепочки __proto__ повторяется дважды в цепочке __proto__ повторяется трижды в цепочке __proto__
Обрыв цепочки __proto__ после стоп-класса используется
при наследовании с виртуальными базовыми классами от "множественного наследника" при любом наследовании с виртуальными базовыми классами при любом наследовании от "множественного наследника"
Обрыв цепочки __proto__ перед стоп-классом используется
при любом наследовании с виртуальными базовыми классами при наследовании с виртуальными базовыми классами от "множественного наследника" при любом наследовании от "множественного наследника"
Какая техника не применяется в общеполезной отладочной утилите dumpObj?
раскрытие скрытых полей при помощи недокументированной функции ASSetProtFlags копирование открытых полей во вспомогательный объект "отцепление" цепочки __proto__ использование специальных отладочных полей в объектах, передаваемых в эту функцию
Что такое стоп-классы?
это классы, перед которыми обрывается цепочка __proto__ верны оба указанных варианта это классы, после которых обрывается цепочка __proto__
Что делают дополнительные утилиты для наследования с виртуальными базовыми классами от "множественного наследника"?
помогают сформировать корректные массивы аргументов для multipleInherit распознают, является ли какой-то класс сделанной в процессе выполнения multipleInherit копией другого копируют цепочку __proto__, останавливаясь на тех классах, которые помечены как виртуальные
Внимание ! Вопросы к тесту выложены исключительно в ознакомительных целях: количество вопросов может не совпадать с действительным, актуальность не поддерживается,- за решением теста Welcome to the cashier! Почему нужны дополнительные утилиты для наследования с виртуальными базовыми классами от "множественного наследника"?
этого требует наша реализация виртуальных базовых классов этого требует специфика виртуальных базовых классов они нужны, потому что в нашей реализации множественного наследования цепочки __proto__ копируются
Зачем нужно регистрировать классы?
чтобы обеспечить правильный порядок инициализации чтобы связать класс с существующим клипом чтобы создать для класса клип
При вызове attachMovie
конструктор вызывается без аргументов конструктор вызывается как обычно, аргументы конструктора берутся из initObject конструктор не вызывается
Когда на сцене появляется изображение, соответствующее зарегистрированному классу (если не вытаскивать клип на сцену вручную в процессе редактирования)?
после вызова специального метода после создания объекта с помощью new после вызова new, а затем - вызова специального метода сразу после регистрации
Что такое initObject?
инициализационный объект, который надо передавать в regiestrClass экземпляр клипа, который надо дублировать инициализационный объект, который надо передавать в конструктор инициализационный объект, который надо передавать в attachMovie
Могут ли совпадать номера блоков #initclip?
да только если экземпляры соответствующих клипов не присутствуют на сцене одновременно нет
Зачем нужны блоки #initclip?
registerClass можно вызывать только внутри такого блока если конструктор класса определен вне этого блока, registerClass не сработает блоки #initclip нужны для управления порядком выполнения фрагментов кода, представляющих собой описания классов
Можно ли применить swapDepths к клипам, которые не лежат внутри одного и того же клипа?
нет только если они созданы при помощи attachMovie да
В каком порядке выполняются блоки #initclip?
номера блоков #initclip не имеют отношения к порядку их выполнения сначала выполняются блоки с большими номерами, потом - с меньшими сначала выполняются блоки с меньшими номерами, потом - с большими
Можно ли при помощи attachMovie создать клип с отрицательным значением depth?
нет только если еще не существует клипа с этим значением depth да только если уже существует клип с этим значением depth
Происходит ли перерисовка при вызове setInterval?
да нет только если из callback-функции вызывается специальный метод
Можно ли при помощи метода swapDepths переставить объекты типов MovieClip и Button соответственно?
да, независимо от того, у каков тип объекта, у которого вызван swapDepths нет да, если swapDepths вызван у Button да, если swapDepths вызван у MovieClip
Можно ли применить swapDepths к двум клипам, которые расположены один на положительной глубине, а другой - на отрицательной?
только если они созданы динамически (например, при помощи attachMovie) да нет
Может ли вызов callback-функции, запланированный при помощи setInterval, прерывать исполнение кода в кадре?
да нет, вызов произойдет, когда исполнение кода в кадре будет завершено нет, вызов произойдет параллельно в другом потоке операционной системы будет прерывать только в том случае, если частота вызовов, назначенная в setInterval, больше, чем частота кадров
Может ли SetInterval обеспечить вызов callback-функции с частотой большей, чем частота смены кадров?
да только если функция не меняет изображение на экране только если частота смены кадров меньше 12 раз в секунду нет
В чем разница между setProperty и addWatch?
их функциональность практически одинакова, различна лишь форма область применимости addWatch шире область применимости setProperty шире есть ситуации, в которых можно пользоваться только setProperty, а есть - в которых годится только addWatch
Сколько контрольных точек имеет кривая Безье третьего порядка?
одну три две шесть четыре
Каково соотношение программно определяемых значений ширины клипов для двух клипов, в каждый из которых вставлена единственная горизонтальная линия (линии одинаковой длины и толщины), если в первом клипе линия нарисована в среде Флэш МХ, а во втором - программно?
шире тот клип, в котором линия нарисована вручную ширины одинаковы шире тот клип, в котором линия нарисована программно
Каковы максимальные порядки кривых Безье, которые можно нарисовать программно (одним вызовом метода curveTo) и при помощи среды Флэш МХ (одним графическим примитивом) соответственно?
3 и 3 2 и 3 3 и 2 2 и 2
Каково полное число цветов, которое используется в динамической градиентной заливке?
8 128 16 64 256
Какая часть клипа обновляется при программном добавлении одного отрезка?
только минимальный прямоугольник (ориентированный так, что его стороны горизонтальны и вертикальны), содержащий данный отрезок только сам отрезок весь клип
Какие строки можно передавать в качестве первого аргумента (описывающего тип градиента) в метод beginGradientFill?
radial box linear circular eliptic
Может ли наряду с опорными цветами для метода beginGradientFill задаваться массив опорных коэффициентов прозрачности?
нет только для линейного градиента да только для эллиптического градиента
Сколько аргументов метода beginGradientFill описывает параметры опорных точек градиента?
два пять четыре три один
Какое максимальное количество опорных цветов может быть задано при рисовании градиента?
восемь девять три два градиент может использовать любое количество опорных цветов пятнадцать пять шестнадцат
Сколько независимых друг от друга параметров задают матрицу преобразования градиента (как обычного, так и типа "box")?
шесть пять восемь три девять
Сколько параметров должно быть обязательно указано в матрице преобразования обычного типа (не "box"), передаваемой в метод beginGradientFill, чтобы градиент корректно отрисовался?
девять пять восемь шесть три
Почему эллиптический градиент с преобразованием "box" всегда имеет строго вертикально и горизонтально ориентированные оси эллипса?
потому что поворот делается после растяжения потому что в его матрице не заложена возможность поворота потому что поворот делается до растяжения
Какой из типов градиента не может быть повернут под углом к горизонтали (вертикали), если матрица преобразования имеет тип "box"?
оба эллиптический линейный
Как сделать градиент крестообразной формы?
наложением линейного градиента на эллиптический наложением двух эллиптических градиентов для этого существует встроенный метод наложением двух линейных градиентов
В каком виде задается матрица преобразования для градиента?
в виде одномерного массива в виде объекта с определенным образом поименованными полями в виде двумерного массива
Какую функцию нужно вызвать у объекта, задающего формат, чтобы в компонентах, подписанных на изменения этого формата, эти изменения проявились?
applyChanges() addListener() update()
Каким образом при вызове setStyleProperty компонент определяет, передана ли ему информация о цвете элемента скина, или о параметрах текста?
проверяется, начинается ли имя устанавливаемого свойства скина со слова text об этом сообщает дополнительный аргумент функции setStyleProperty анализируется переданная информация о новом значении свойства и определяется, содержит ли она сведения о цвете или о формате текста
Какие существуют способы вызвать изменить определенное свойство скина для некоторого компонента?
подписать на сообщения об изменении свойств некоторого объекта класса FStyleFormat, которому изменить соответствующее свойство и вызвать applyChanges вызвать у компонента метод setStyleProperty изменить у компонента свойство с соответствующим именем
Какие объекты по умолчанию подписаны на события об изменении globalStyleFormat?
как стандартные, так и "самодельные" компоненты все стандартные компоненты только наследники FLabel
На события об изменении каких стилей форматирования стандартные контролы-компоненты нужно подписывать специально?
на все, кроме globalStyleFormat только на globalStyleFormat ни на какие на все
Наследниками каких классов являются стандартные компоненты?
все, кроме панели и скроллера - наследники FLabel, а панель и скроллер - наследники FUIComponent все являются наследниками FUIComponent все являются наследниками FLabel
Каков рекомендуемый способ замены скинов (если скинов много и их надо быстро менять) в библиотеке компонентов, сделанных из стандартных компонентов Flash MX?
использовать runtime sharing использовать author time sharing использовать loadMovie
Для передачи информации из чего: из CustomUI или live preview (или того и другого) - используется клип xch?
из того и другого только из live preview только из CustomUI
Какое качество является основным признаком компонента?
он является элементом управления (контролом) он имеет параметры, настраиваемые во время редактирования *.fla-файла он имеет live preview он доступен из панели Components он является наследником FUIComponents он имеет custom user interface
Какой объект xch, относящийся к CustomUI или к live preview (или же и тот и другой) сохраняется во *.fla-файле?
xch, относящийся к live preview и тот, и другой xch, относящийся к CustomUI
Когда среда Flash MX проверяет, были ли внесены какие-то изменения в параметры компонента?
только при выделении компонента пользователем каждый кадр каждую секунду
Какой из факторов работает против принятия решения об использовании embedded (встроенного во *.fla-файл) CustomUI?
желательно удобное перемещение исходников вашего флэш-ролика вместе с UI желательна высокая скорость загрузки UI желательно быстрое обновление UI при обновлении используемых версий компонентов
Охарактеризуйте соотношение между live preview и CustomUI
верно указанное в первом пункте, но только если используется передача данных через xch они независимы друг от друга eсли есть CustomUI, обязательно должен быть live preview eсли есть live preview, обязательно должен быть CustomUI
Когда вызывается функция onUpdate для live preview (не считая случая инициализации компонента)?
при обновлении любого параметра функция onUpdate должна быть вызвана вручную из CustomUI каждую секунду каждый кадр при выделении компонента пользователем
Для чего в случае CustomUI используется объект xch (отметить все верные ответы)?
для передачи параметров в live preview для передачи параметров в компонент для сохранения состояния CustomUI при переключении на другой компонент
На какие из упомянутых ниже вариантов идентификаторов будет выдаваться контекстная подсказка (если она не была специально доопределена)?
Какой из тегов отвечает за контекстную подсказку по методам объекта (в Expert mode)?
<codehints> <typeinfo> <codehint>
Может ли в online-документации использоваться кириллица?
да только в перечне объектов и функций, предназначенных для использования при редактировании в Normal mode только в Reference
Какие из перечисленных атрибутов тегa "string" применяются для работы левой части панели Actions в Expert mode?
Tiptext Name Type Text
Какой из атрибутов тега "string" отвечает за всплывающую подсказку по аргументам функции (в Expert mode)?
type text name tiptext
Для чего используется тег <string>?
для отображения информации в левой части панели Actions для вывода контекстных подсказок вида "выпадающее меню" для работы в Normal mode для вывода контекстных подсказок вида "тип" (tooltip)
Какого рода функции (методы) содержит папка CustomActions в левой части панели Actions (Objects / Authoring / CustomActions)?
функции, определенные пользователем и описанные в online-документации функции, которые можно использовать в режиме редактирования Normal mode функции, предназначенные для установки дополнительной online-документации
Чтобы установить дополнительную online-документацию прямо из среды Flash MX нужно воспользоваться методом
С точки зрения пользователя дополнительная online-документация выглядит как специально отведенные области Reference и левой части панели Actions
часть общего дерева как в Reference, так и в левой части панели Actions специальный раздел html-справки отдельная html-справка специально отведенная для этого область Reference часть общего дерева Reference
Можно ли произвести установку документации, просто разложив нужные файлы по нужным каталогам?
так можно установить все, кроме Reference так можно установить только Reference нет да
Каким образом создается дерево папок для References?
при помощи атрибута path при помощи тегов "reference", вложенных в тег "folder" при помощи вложения тегов "reference" друг в друга это дерево определяется деревом, созданным тегами "folder" для левой части панели Actions при помощи тегов "folder", вложенных в тег "reference"
Какие из перечисленных ниже возможностей среды могут быть доопределены?
цвета раскраски ключевых слов и идентификаторов включение-выключение чувствительности к регистру (case sensitivity) допустимый диапазон Unicode-символов в редакторе контекстная подсказка
Могут ли быть доопределены списки известных среде идентификаторов и ключевых слов (для маркировки их цветом)?
только список идентификаторов только список ключевых слов да нет
Какие из перечисленных возможностей настраиваются при помощи средств документирования Flash MX?
лексемы, подсвечиваемые как идентификаторы цвета, которыми подсвечиваются ключевые слова и идентификаторы информация по использованию классов и методов в Normal Mode контекстная подсказка лексемы, подсвечиваемые как ключевые слова
Можно ли задать путь для runtime sharing с помощью author time sharing?
да только для клипов, являющихся компонентами только для клипов, не являющихся компонентами нет
Какой из типов sharing требует перекомпиляции для обновления готовой симуляции?
author time sharing runtime sharing оба ни тот, ни другой
Можно ли задать путь для runtime sharing из ActionScript?
да только для клипов, являющихся компонентами нет только для клипов, не являющихся компонентами
Для чего применяется комбинация runtime sharing и author time sharing?
для того, чтобы работал счетчик загруженных модулей для того, чтобы заменять runtime sharing на author time sharing, когда это возможно для того, чтобы можно было легко добавлять новые runtime-загрузчики
Для чего удобно применять runtime sharing (отметьте все верные ответы)?
для подгрузки дополнительных компонентов для загрузки только одного клипа из большого ролика (чтобы повысить скорость выкачивания) для изменения скинов для того, чтобы все остальные клипы проигрывались, пока качается runtime shared клип
Почему шаблон ролика надо вручную сохранять из среды Флэш МХ в рабочую директорию дизайнера?
иначе при работе author time sharing в библиотеке (Library) ролика появятся лишние клипы и папки иначе пути author time sharing не будут правильно модифицированы иначе пути runtime sharing не будут правильно модифицированы
По какой причине мы рекомендуем хранить библиотечные файлы на подключаемом (например, сетевом) логическом диске?
это позволяет не меняя множества путей в файлах разработчика переключаться между различными версиями библиотеки это упрощает процесс отладки библиотек это позволяет оптимизировать скорость компиляции
Каков рекомендуемый способ использования системы контроля версий для одновременного обновления частично пересекающихся наборов файлов в двух разных папках на диске?
ссылки (links) в системе контроля версий и hard links в файловой системе теневая папка (shadow folder) в системе контроля версий и hard links в файловой системе ссылки (links) и теневые папки (shadow folders) в системе контроля версий
Каким образом Флэш получает информацию об изменении HTML-шаблонов в директории FirstRun?
Флэш копирует файлы из этой директории в profile при каждом открывании диалога Publish Settings Флэш копирует файлы из этой директории в profile при первом запуске после перезагрузки компьютера именно из этой директории Флэш берет шаблоны, отображаемые в диалоге Publish Settings Флэш копирует файлы из этой директории в profile при каждом запуске
Какие варианты записей в HTML-шаблоне правильным образом задают имя файла флэш-ролика?
$MO $TI.swf $TT.swf
Какие теги в HTML-шаблоне помечают служебную информацию, которая не попадет в окончательный HTML-файл?
$TI $TT $DF $DS $MO
Какие из тегов в HTML-шаблоне можно использовать, чтобы установить параметры, устанавливаемые также тегами $PO и $PE?
$MO $HE $BG $DF $WI $QU $TT $DS
Можно ли создать корректный HTML-шаблон, не имеющий одного из тегов <OBJECT> или <EMBED>?
да да, но тогда флэш-ролик будет показываться или только на Internet Explorer, или только на Mozilla (Netscape, Firefox) нет
Для чего бывает удобно использовать hard links?
для обновления файлов в системе контроля версий для автоматического обновления библиотечных файлов в личных каталогах у разработчиков для сохранения резервных копий
Как устроен "компилятор флэш-файлов"?
он использует возможности OLE-Automation (предшественник COM), присущие среде Флэш МХ он использует скриптовый язык среды Флэш МХ он использует инструменты командной строки для работы с *.fla-файлами он использует специальные ключи для запуска среды Флэш МХ из командной строки он имитирует действия пользователя, посылая сообщения в окно среды Флэш МХ
Какие из приведенных ниже утверждений верны?
при вызове getURL из-под встроенного плеера переменные всегда посылаются методом GET если при вызове loadVariables неверно указан путь к клипу, в который будут загружаться переменные, то функция вовсе не будет вызвана если переменные в запросе loadMovie не посылаются (нечего слать), то, независимо от указанного пользователем метода запроса, посылается запрос GET
Переменные какого объекта пересылает на сервер глобальная функция loadVariables?
пересылаются переменные _root пересылаются переменные клипа, в кадре которого вызвана функция пересылаются переменные того клипа, который указан в качестве целевого для загрузки переменных
Если клип, у которого вызван метод loadVariables не встроен в дерево клипов (создан при помощи new вместо attachMovie и т.п.), то посылаться на сервер будут
переменные _global переменные этого клипа переменные клипа, в кадре которого вызван метод переменные _root
Какая из глобальных функций аналогична методу LoadVars.send?
loadVariables getURL loadMovie
Какие из перечисленных ниже объектов загружают информацию по HTTP?
LoadVars XML XMLSocket
В какой объект загружает переменные метод LoadVars.sendAndLoad?
в _root в клип, путь к которому передан в качестве аргумента в клип, в кадре которого вызван метод в объект LoadVars, ссылка на который передана в качестве аргумента в тот объект, у которого вызван метод
Какой из механизмов предварительной загрузки является наиболее универсальным (может использоваться для загрузки максимально разнообразного содержимого)?
предварительная сцена, которая грузит скины author time shared клип с предзагрузчиками runtime-shared роликов предварительная сцена, которая грузит все runtime-shared клипы отдельный ролик, загружающий в себя другой ролик
Предварительный загрузчик нужен
для того, чтобы не было пауз при использовании runtime-shared клипов для того, чтобы обеспечить возможность всегда обращаться к клипам основного ролика через _level0 для того, чтобы сообщить пользователю, что у него старая версия плеера, если такое случится для того, чтобы не нужна была перекомпиляция после изменения библиотеки для того, чтобы не было паузы перед показом строк, загруженных через ini-файлы для того, чтобы ускорить процесс загрузки клипа
Что нужно сделать для того, чтобы корректно загрузить файл с переменными, значения которых являются русским текстом? Отметьте все возможные варианты.
файл должен быть сохранен в Unicode файл должен быть сохранен в UTF-8 русский текст должен быть url-кодированным в конце строк должны стоять значки амперсанда
Что такое Shared Objects?
это объекты, с помощью которых передается информация только между разными роликами, загруженными в один главный ролик это объекты, с помощью которых только два одновременно запущенных (возможно, в разных плеерах) ролика могут обмениваться данными это объекты, с помощью которых могут обмениваться данными даже клипы, запускаемые по очереди.
Какой из способов получения данных пригоден для загрузки данных не только с веб-сервера, но и с локального диска?
NetConnection LoadVars XMLSocket
Какой из механизмов, перечисленных ниже, нельзя применить для вызова функций (JavaScript или VBScript) в браузере?
LocalConnection fscommand getURL
Для полноценной удаленной отладки не требуется
использовать отладочную версию плеера размещать на веб-сервере *.swd-файл рядом с *.swf запускать среду Flash МХ в той же операционной системе, что и плеер разрешать отладку при компиляции ролика разрешать удаленную отладку в среде Flash МХ
Удаленную отладку можно производить, если
плеер, веб-сервер и среда Flash МХ могут быть запущены на трех различных машинах плеер и среда Flash МХ запущены на одной машине плеер и веб-сервер запущены на одной машине веб-сервер и среда Flash МХ запущены на одной машине
Как отследить и вывести процент загрузки большого runtime-shared клипа?
с помощью getBytesLoaded и обычного клипа, демонстрирующего прогресс загрузки с помощью getBytesLoaded и setInterval это невозможно
Вы можете обратится к нам напрямую, через:
По Skype: molodoyberkut По Telegram: @MolodoyBerkut По ICQ: 657089516