Главная / Action Script 3
Пакетflash.display
Классpublic class ShaderJob
НаследованиеShaderJob Inheritance EventDispatcher Inheritance Object

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

Экземпляр ShaderJob используется для выполнения операций затенения в автономном режиме. Выполняется операция затенения, и возвращаются результирующие данные. Задачей разработчика является определение способа использования результата.

Существует две основные причины использования затенения в автономном режиме:

Свойство shader (или параметр конструктора) определяет экземпляр Shader, представляющий используемое в данной операции затенение. Параметры и входы, используемые затенением, настраиваются с помощью связанных экземпляров ShaderParameter или ShaderInput.

Перед выполнением операции ShaderJob необходимо указать объект, в который записывается результат, путем его настройки в качестве значения свойства target. По завершении операции затенения результат записывается в объект target.

Чтобы начать операцию фонового затенения, вызовите метод start(). По завершении операции затенения результат записывается в объект target. В этот момент экземпляр ShaderJob отправляет событие complete, уведомляя прослушивателей о наличии готового результата.

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

См. также

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
  
start(waitForCompletion:Boolean = false):void
Запуск операции затенения в синхронном или асинхронном режиме в соответствии со значением параметра waitForCompletion.
ShaderJob
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
 Inherited
Проверяет, зарегистрирован ли прослушиватель событий в объекте EventDispatcher или в любом из его предков для получения уведомлений о событиях определенного типа.
EventDispatcher
События
 Событие Сводка Определено
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player перемещается в фокус операционной системы и становится активным.EventDispatcher
  Отправка по завершении обработки данных с использованием затенения заданием ShaderJob, которое выполняется асинхронно.ShaderJob
 Inherited[многоадресное событие] Отправляется, когда проигрыватель 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:ShaderEvent — Выполнение отправки по завершении операции, если метод 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
Версии среды выполнения:  10, 1.5

Отправка по завершении обработки данных с использованием затенения заданием ShaderJob, которое выполняется асинхронно. Экземпляр ShaderJob выполняется асинхронно при вызове метода start() со значением false для параметра waitForCompletion.

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

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

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