Пакетflash.display
Классpublic class ShaderJob
НаследованиеShaderJob Inheritance EventDispatcher Inheritance Object

Язык версии : ActionScript 3.0
Версии среды выполнения: Flash Player 10

Экземпляр ShaderJob используется для выполнения операций затенения в фоне. Некоторые операции затенения являются достаточно сложными, и на их выполнение требуется много времени. Вычисление этих операций в основном потоке выполнения приложения может замедлить другие части приложения, например реакцию на действия пользователя или обновление экрана. Вместо этого можно запустить задачу выполнения операции затенения в фоне, использовав экземпляр ShaderJob. При использовании ShaderJob данная операция протекает отдельно от основного потока выполнения приложения.

Свойство shader (или параметр конструктора) определяет экземпляр Shader, представляющий используемое в данной операции затенение. Параметры и входы, используемые затенением, настраиваются с помощью связанных экземпляров ShaderParameter или ShaderInput. Для начала операции произведите вызов метода start(). После выполнения операции результаты сохраняются в объекте target. В этот момент экземпляр ShaderJob отправляет событие complete, уведомляя прослушивателей о наличии готового результата.

См. также

Shader
ShaderInput
ShaderParameter
ShaderEvent


Общедоступные свойства
 СвойствоОпределено
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  height : int
Высота результирующих данных в целевом объекте, если аргументом является ByteArray или Vector.Экземпляр <Number>.
ShaderJob
  progress : Number
[только для чтения] Прогресс выполнения запущенной операции затенения.
ShaderJob
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
  shader : Shader
Используемое в операции затенение.
ShaderJob
  target : Object
Объект, в который сохраняется результат вычисления операции затенения.
ShaderJob
  width : int
Ширина результирующих данных в целевом объекте, если аргументом является ByteArray или Vector.Экземпляр <Number>.
ShaderJob
Общедоступные методы
 МетодОпределено
  
ShaderJob(shader:Shader = null, target:Object = null, width:int = 0, height:int = 0)
ShaderJob
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события в объекте EventDispatcher, в результате чего прослушиватель будет получать уведомления о событиях.
EventDispatcher
  
Отменяет текущую запущенную операцию затенения.
ShaderJob
 Inherited
Передает событие в поток событий.
EventDispatcher
 Inherited
Проверяет наличие у объекта EventDispatcher прослушивателей событий, которые зарегистрированы для получения уведомлений о событиях определенного типа.
EventDispatcher
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Удаляет прослушиватель из объекта EventDispatcher.
EventDispatcher
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
  
Инициирует новую фоновую операцию затенения.
ShaderJob
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
 Inherited
Проверяет, зарегистрирован ли прослушиватель событий в объекте EventDispatcher или в любом из его предков для получения уведомлений о событиях определенного типа.
EventDispatcher
События
 Событие Сводка Определено
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player перемещается в фокус операционной системы и становится активным.EventDispatcher
  Отправляется экземпляром ShaderJob после завершения обработки данных с использованием затенения.ShaderJob
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player покидает фокус операционной системы и становится неактивным.EventDispatcher
Сведения о свойстве
heightсвойство
height:int  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: Flash Player 10

Высота результирующих данных в 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
Версии среды выполнения: Flash Player 10

Прогресс выполнения запущенной операции затенения. Значение находится в диапазоне от 0 до 1. В значении "0" прогресс выполнения находится на отметке 0%. Значение "1" указывает на завершение операции.

При вызове метода cancel() значение этого свойства становится undefined и уже не отображает реального значения прогресса при повторном запуске операции.


Реализация
    public function get progress():Number
shaderсвойство 
shader:Shader  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: Flash Player 10

Используемое в операции затенение. Все параметры и вводы для операции затенения задаются в свойствах 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
Версии среды выполнения: Flash Player 10

Объект, в который сохраняется результат вычисления операции затенения. Этот объект может быть объектом BitmapData, ByteArray или Vector.Экземпляр <Number>.


Реализация
    public function get target():Object
    public function set target(value:Object):void
widthсвойство 
width:int  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: Flash Player 10

Ширина результирующих данных в 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
Версии среды выполнения: Flash Player 10

Параметры
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

Отменяет текущую запущенную операцию затенения. Все полученные в результате вычислений данные игнорируются. Событие complete не отправляется.

Многократный вызов метода cancel() не действует.

start()метод 
public function start():void

Язык версии : ActionScript 3.0
Версии среды выполнения: Flash Player 10

Инициирует новую фоновую операцию затенения. В момент завершения операции отправляется событие complete.

Выполнение ShaderJob осуществляется в фоне и не замедляет работу других частей программы, например обновление экрана. Одновременно может выполняться только одна операция ShaderJob. Все операции затенения помещаются в очередь и выполняются последовательно. При вызове метода start() во время выполнения операции затенения еще одна операция добавляется в конец очереди и, когда наступает ее очередь, выполняется.

При вызове метода start() происходит копирование на внутреннем уровне экземпляра Shader в свойстве shader. При выполнении операции затенения используется эта копия, а не ссылка на исходное затенение. Изменения параметров затенения (изменение значения параметра, ввода или байт-кода) не влияют на используемую для обработки затенения копию затенения. Для внедрения изменений в операцию затенения произведите вызов метода cancel() (при необходимости) и повторно вызовите метод start(), чтобы запустить операцию обработки затенения.

На время выполнения операции затенения значение объекта target остается неизменным. В момент завершения операции отправляется событие complete, и результат сохраняется в объекте target. Событие complete все равно отправляется, даже если объект target является экземпляром BitmapData и вызывает метод dispose() до момента завершения операции. В таком случае, данные в объект BitmapData не сохраняются, так как его не существует.


События
complete:ShaderEvent — Отправляется по завершении операции.

Выдает
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

Отправляется экземпляром ShaderJob после завершения обработки данных с использованием затенения.

Задает значение свойства type для объекта события complete.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
bitmapDataОбъект BitmapData, содержащий результаты выполненной операции (или null, если целевым объектом не являлся объект BitmapData).
byteArrayОбъект ByteArray, содержащий результаты выполненной операции (или null, если целевым объектом не являлся объект ByteArray).
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetОбъект ShaderJob, сообщающий о завершении выполнения задачи.
vectorОбъект Vector.Экземпляр <Number>, содержащий результаты выполненной операции (или null, если целевым объектом не являлся объект Vectorэкземпляра <Number>).