| Пакет | flash.display |
| Класс | public class ShaderJob |
| Наследование | ShaderJob EventDispatcher Object |
| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Существует две основные причины использования затенения в автономном режиме.
- Обработка данных, отличных от изображений: при использовании экземпляра ShaderJob можно управлять входными значениями и способами использования результатов затенения. Операция затенения может возвращать результаты в виде двоичных данных или числовых данных вместо данных изображений.
- Фоновая обработка: некоторые операции затенения являются достаточно сложными, и на их выполнение требуется много времени. Выполнение сложной операции затенения в основном потоке выполнения приложения может замедлить другие части приложения, например, реакцию на действия пользователя или обновление экрана. С помощью экземпляра ShaderJob можно выполнить операцию затенения в фоновом режиме. Таким способом операция затенения выполняется отдельно от основного потока приложения.
Свойство shader (или параметр конструктора) определяет экземпляр Shader, представляющий используемое в данной операции затенение. Параметры и входы, используемые затенением, настраиваются с помощью связанных экземпляров ShaderParameter или ShaderInput.
Перед выполнением операции ShaderJob необходимо указать объект, в который записывается результат, путем его настройки в качестве значения свойства target. По завершении операции затенения результат записывается в объект target.
Чтобы начать операцию фонового затенения, вызовите метод start(). По завершении операции затенения результат записывается в объект target. В этот момент экземпляр ShaderJob отправляет событие complete, уведомляя прослушивателей о наличии готового результата.
Для синхронного выполнения затенения (то есть не в фоновом режиме) вызовите метод start() и передайте значение true в качестве аргумента. Затенение выполняется в основном потоке выполнения, и выполнение кода приостанавливается до завершения операции. После выполнения операции результаты сохраняются в объекте target. В этой точке приложение продолжает выполнение следующей строки кода.
Связанные элементы API
| Свойство | Определено | ||
|---|---|---|---|
![]() | constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | |
| height : int
Высота результирующих данных в target, если аргументом является экземпляр ByteArray или Vector.<Number>. | ShaderJob | ||
| progress : Number [только для чтения]
Прогресс выполнения запущенной операции затенения. | ShaderJob | ||
| shader : Shader
Используемое в операции затенение. | ShaderJob | ||
| target : Object
Объект, в который сохраняется результат вычисления операции затенения. | ShaderJob | ||
| width : int
Ширина данных результата в target, если он является экземпляром 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 | |
![]() |
Возвращает элементарное значение заданного объекта. | Object | |
![]() |
Проверяет, зарегистрирован ли прослушиватель события для указанного типа события с данным объектом EventDispatcher или любым его предшественником. | EventDispatcher | |
| Событие | Сводка | Определено | ||
|---|---|---|---|---|
![]() | [многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR перемещается в фокус операционной системы и становится активным. | EventDispatcher | ||
| Отправка по завершении обработки данных с использованием затенения заданием ShaderJob, которое выполняется асинхронно. | ShaderJob | |||
![]() | [многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR теряет фокус системы и становится неактивным. | EventDispatcher | ||
height | свойство |
height:int| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Высота результирующих данных в target, если аргументом является экземпляр ByteArray или Vector.<Number>. Размер экземпляра ByteArray или Vector.<Number> при необходимости расширяется, а существующие данные перезаписываются.
Реализация
public function get height():int public function set height(value:int):voidprogress | свойство |
progress:Number [только для чтения] | Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Прогресс выполнения запущенной операции затенения. Значение находится в диапазоне от 0 до 1. В значении 0 прогресс выполнения находится на отметке 0%. Значение 1 указывает на завершение операции.
При вызове метода cancel() значение этого свойства становится undefined и уже не отображает реального значения прогресса при повторном запуске операции.
Реализация
public function get progress():Numbershader | свойство |
shader:Shader| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | Flash Player 10, AIR 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Связанные элементы API
target | свойство |
target:Object| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Объект, в который сохраняется результат вычисления операции затенения. Этот объект может быть экземпляром BitmapData, ByteArray или Vector.<Number>.
Реализация
public function get target():Object public function set target(value:Object):voidwidth | свойство |
width:int| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Ширина результирующих данных в target, если экземпляром является ByteArray или Vector.<Number>. Размер экземпляра ByteArray или Vector.<Number> при необходимости расширяется, а существующие данные перезаписываются.
Реализация
public function get width():int public function set width(value:int):voidShaderJob | () | Конструктор |
public function ShaderJob(shader:Shader = null, target:Object = null, width:int = 0, height:int = 0)| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | Flash Player 10, AIR 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 |
| Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Отменяет текущую запущенную операцию затенения. Все полученные в результате вычислений данные игнорируются. Событие complete не отправляется.
Многократный вызов метода cancel() не действует.
start | () | метод |
public function start(waitForCompletion:Boolean = false):void| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | Flash Player 10, AIR 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.ShaderEventсвойство ShaderEvent.type =
flash.events.ShaderEvent.COMPLETE| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | Flash Player 10, AIR 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>). |
Tue Jun 12 2018, 11:34 AM Z
Скрыть унаследованные общедоступные свойства
Показать унаследованные общедоступные свойства