| Пакет | flash.display |
| Класс | public class ShaderJob |
| Наследование | ShaderJob EventDispatcher Object |
| Язык версии : | ActionScript 3.0 |
| Версии среды выполнения: | 10, 1.5 |
Существует две основные причины использования затенения в автономном режиме:
Свойство shader (или параметр конструктора) определяет экземпляр Shader, представляющий используемое в данной операции затенение. Параметры и входы, используемые затенением, настраиваются с помощью связанных экземпляров ShaderParameter или ShaderInput.
Перед выполнением операции ShaderJob необходимо указать объект, в который записывается результат, путем его настройки в качестве значения свойства target. По завершении операции затенения результат записывается в объект target.
Чтобы начать операцию фонового затенения, вызовите метод start(). По завершении операции затенения результат записывается в объект target. В этот момент экземпляр ShaderJob отправляет событие complete, уведомляя прослушивателей о наличии готового результата.
Для синхронного выполнения затенения (то есть не в фоновом режиме) вызовите метод start() и передайте значение true в качестве аргумента. Затенение выполняется в основном потоке выполнения, и выполнение кода приостанавливается до завершения операции. После выполнения операции результаты сохраняются в объекте target. В этой точке приложение продолжает выполнение следующей строки кода.
См. также
| Свойство | Определено | ||
|---|---|---|---|
![]() | constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | |
| height : int
Высота результирующих данных в целевом объекте, если аргументом является ByteArray или Vector.Экземпляр <Number>. | ShaderJob | ||
| progress : Number [только для чтения]
Прогресс выполнения запущенной операции затенения. | ShaderJob | ||
![]() | prototype : Object [статические]
Ссылка на модель объекта класса или функции. | Object | |
| shader : Shader
Используемое в операции затенение. | ShaderJob | ||
| target : Object
Объект, в который сохраняется результат вычисления операции затенения. | ShaderJob | ||
| width : int
Ширина результирующих данных в целевом объекте, если аргументом является ByteArray или Vector.Экземпляр <Number>. | ShaderJob | ||
| Метод | Определено | ||
|---|---|---|---|
| ShaderJob | |||
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события в объекте EventDispatcher, в результате чего прослушиватель будет получать уведомления о событиях. | EventDispatcher | |
Отменяет текущую запущенную операцию затенения. | ShaderJob | ||
![]() |
Передает событие в поток событий. | EventDispatcher | |
![]() |
Проверяет наличие у объекта EventDispatcher прослушивателей событий, которые зарегистрированы для получения уведомлений о событиях определенного типа. | EventDispatcher | |
![]() |
Показывает, определено ли заданное свойство для объекта. | Object | |
![]() |
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | |
![]() |
Показывает наличие заданного свойства и его перечисляемость. | Object | |
![]() |
Удаляет прослушиватель из объекта EventDispatcher. | EventDispatcher | |
![]() |
Задает доступность динамического свойства для операций цикла. | Object | |
Запуск операции затенения в синхронном или асинхронном режиме в соответствии со значением параметра waitForCompletion. | ShaderJob | ||
![]() |
Возвращает строковое представление заданного объекта. | Object | |
![]() |
Возвращает элементарное значение заданного объекта. | Object | |
![]() |
Проверяет, зарегистрирован ли прослушиватель событий в объекте EventDispatcher или в любом из его предков для получения уведомлений о событиях определенного типа. | EventDispatcher | |
| Событие | Сводка | Определено | ||
|---|---|---|---|---|
![]() | [многоадресное событие] Отправляется, когда проигрыватель Flash Player перемещается в фокус операционной системы и становится активным. | EventDispatcher | ||
| Отправка по завершении обработки данных с использованием затенения заданием ShaderJob, которое выполняется асинхронно. | ShaderJob | |||
![]() | [многоадресное событие] Отправляется, когда проигрыватель Flash Player покидает фокус операционной системы и становится неактивным. | EventDispatcher | ||
| height | свойство |
height:int [чтение и запись] | Язык версии : | ActionScript 3.0 |
| Версии среды выполнения: | 10, 1.5 |
Высота результирующих данных в target, если аргументом является ByteArray или Vector.Экземпляр <Number>. Размер ByteArray или Vector.При необходимости происходит расширение экземпляра <Number>, а существующие данные перезаписываются.
public function get height():int public function set height(value:int):void| progress | свойство |
progress:Number [только для чтения] | Язык версии : | ActionScript 3.0 |
| Версии среды выполнения: | 10, 1.5 |
Прогресс выполнения запущенной операции затенения. Значение находится в диапазоне от 0 до 1. В значении "0" прогресс выполнения находится на отметке 0%. Значение "1" указывает на завершение операции.
При вызове метода cancel() значение этого свойства становится undefined и уже не отображает реального значения прогресса при повторном запуске операции.
public function get progress():Number| shader | свойство |
shader:Shader [чтение и запись] | Язык версии : | ActionScript 3.0 |
| Версии среды выполнения: | 10, 1.5 |
Используемое в операции затенение. Все параметры и вводы для операции затенения задаются в свойствах data экземпляра Shader, а именно ShaderInput или ShaderParameter. Ввод задается соответствующим свойством ShaderInput, даже если он совпадает с объектом target.
Для обработки массива ByteArray, данные в котором расположены линейно (в отличии от данных изображения), задайте параметры соответствующего экземпляра ShaderInput следующим образом: для height установите значение 1, для width — число 32-разрядных значений с плавающей запятой в массиве ByteArray. В этом случае значение ввода затенения должно принадлежать типу данных image1.
public function get shader():Shader public function set shader(value:Shader):voidСм. также
| target | свойство |
target:Object [чтение и запись] | Язык версии : | ActionScript 3.0 |
| Версии среды выполнения: | 10, 1.5 |
Объект, в который сохраняется результат вычисления операции затенения. Этот объект может быть объектом BitmapData, ByteArray или Vector.Экземпляр <Number>.
public function get target():Object public function set target(value:Object):void| width | свойство |
width:int [чтение и запись] | Язык версии : | ActionScript 3.0 |
| Версии среды выполнения: | 10, 1.5 |
Ширина результирующих данных в target, если аргументом является ByteArray или Vector.Экземпляр <Number>. Размер ByteArray или Vector.При необходимости происходит расширение экземпляра <Number>, а существующие данные перезаписываются.
public function get width():int public function set width(value:int):void| ShaderJob | () | Конструктор |
public function ShaderJob(shader:Shader = null, target:Object = null, width:int = 0, height:int = 0)| Язык версии : | ActionScript 3.0 |
| Версии среды выполнения: | 10, 1.5 |
Параметры
shader:Shader (default = null) — Используемое в операции затенение.
| |
target:Object (default = null) — Объект, в который сохраняется результат вычисления операции затенения. Аргументом может быть объект BitmapData, ByteArray или Vector.Экземпляр <Number>.
| |
width:int (default = 0) — Ширина результирующих данных в target, если аргументом является ByteArray или Vector.Экземпляр <Number>. Размер ByteArray или Vector.При необходимости происходит расширение экземпляра <Number>, а существующие данные перезаписываются.
| |
height:int (default = 0) — Высота результирующих данных в target, если аргументом является ByteArray или Vector.Экземпляр <Number>. Размер ByteArray или Vector.При необходимости происходит расширение экземпляра <Number>, а существующие данные перезаписываются.
|
| cancel | () | метод |
public function cancel():void| Язык версии : | ActionScript 3.0 |
| Версии среды выполнения: | 10, 1.5 |
Отменяет текущую запущенную операцию затенения. Все полученные в результате вычислений данные игнорируются. Событие complete не отправляется.
Многократный вызов метода cancel() не действует.
| start | () | метод |
public function start(waitForCompletion:Boolean = false):void| Язык версии : | ActionScript 3.0 |
| Версии среды выполнения: | 10, 1.5 |
Запуск операции затенения в синхронном или асинхронном режиме в соответствии со значением параметра waitForCompletion.
В асинхронном режиме (если для параметра waitForCompletion задано значение false), который является режимом по умолчанию, выполнение ShaderJob осуществляется в фоновом режиме. Операция затенения не влияет на быстроту реакции отображения или других операций. В асинхронном режиме вызов метода start() происходит немедленно и в программе продолжается выполнение следующей строки кода. По завершении выполнения операции затенения в фоновом режиме доступен результат и выполняется отправка события complete.
Одновременно может выполняться только одна фоновая операция ShaderJob. Все операции затенения помещаются в очередь и выполняются последовательно. При вызове метода start() во время выполнения операции затенения еще одна операция добавляется в конец очереди. Впоследствии, когда наступает очередь, она выполняется.
Чтобы выполнить операцию затенения в синхронном режиме, вызовите метод start() со значением true для параметра waitForCompletion (единственный параметр). Выполнение кода приостанавливается в точке вызова метода start() до завершения операции затенения. В этой точке доступен результат, и продолжается выполнение следующей строки кода.
При вызове метода start() происходит копирование на внутреннем уровне экземпляра Shader в свойстве shader. При выполнении операции затенения используется эта копия, а не ссылка на исходное затенение. Изменения параметров затенения (изменение значения параметра, ввода или байт-кода) не влияют на используемую для обработки затенения копию затенения. Для внедрения изменений в операцию затенения произведите вызов метода cancel() (при необходимости) и повторно вызовите метод start(), чтобы запустить операцию обработки затенения.
На время выполнения операции затенения значение объекта target остается неизменным. По завершении операции (и выполнения отправки события complete в асинхронном режиме) все результаты одновременно записываются в объект target. Если объект target является экземпляром BitmapData и его метод dispose() вызывается до завершения операции, отправка события complete выполняется в асинхронном режиме. В таком случае, данные в объект BitmapData не сохраняются, так как его не существует.
Параметры
waitForCompletion:Boolean (default = false) — Определение необходимости выполнения затенения в фоновом режиме (по умолчанию false) или в основном потоке выполнения программы (true).
|
complete: — Выполнение отправки по завершении операции, если метод start() вызывается со значением true аргумента waitForCompletion. |
ArgumentError — Если свойство target принимает значение null или не является BitmapData, ByteArray или Vector.Экземпляр <Number>.
| |
ArgumentError — Если затенение задает неподдерживаемое входное изображение.
| |
ArgumentError — Если объект ByteArray или Vector.В качестве ввода используется экземпляр <Number>, а свойства width и height для ShaderInput не указаны, либо указанные значения не соответствуют количеству данных во входном объекте. Дополнительные сведения см. в описании ShaderInput.input.
|
| complete | Событие |
flash.events.ShaderEventflash.events.ShaderEvent.COMPLETE| Язык версии : | ActionScript 3.0 |
| Версии среды выполнения: | 10, 1.5 |
Отправка по завершении обработки данных с использованием затенения заданием ShaderJob, которое выполняется асинхронно. Экземпляр ShaderJob выполняется асинхронно при вызове метода start() со значением false для параметра waitForCompletion.
type для объекта события complete.
Данное событие имеет следующие свойства.
| Свойство | Значение |
|---|---|
bubbles | false |
bitmapData | Объект BitmapData, содержащий результаты выполненной операции (или null, если целевым объектом не являлся объект BitmapData). |
byteArray | Объект ByteArray, содержащий результаты выполненной операции (или null, если целевым объектом не являлся объект ByteArray). |
cancelable | false; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Объект ShaderJob, сообщающий о завершении выполнения задачи. |
vector | Объект Vector.Экземпляр <Number>, содержащий результаты выполненной операции (или null, если целевым объектом не являлся объект Vectorэкземпляра <Number>). |