Справочник по ActionScript® 3.0 для платформы Adobe® Flash®
Домашняя страница  |  Скрыть список пакетов и классов |  Пакеты  |  Классы  |  Что нового  |  Указатель  |  Приложения  |  Почему по-английски?
Фильтры: Получение данных с сервера...
Получение данных с сервера...
flash.display 

ShaderJob  - AS3

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

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

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

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

  • Обработка данных, отличных от изображений: при использовании экземпляра ShaderJob можно управлять входными значениями и способами использования результатов затенения. Операция затенения может возвращать результаты в виде двоичных данных или числовых данных вместо данных изображений.
  • Фоновая обработка: некоторые операции затенения являются достаточно сложными, и на их выполнение требуется много времени. Выполнение сложной операции затенения в основном потоке выполнения приложения может замедлить другие части приложения, например, реакцию на действия пользователя или обновление экрана. С помощью экземпляра ShaderJob можно выполнить операцию затенения в фоновом режиме. Таким способом операция затенения выполняется отдельно от основного потока приложения.

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

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

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

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

Связанные элементы API



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

progress

свойство 
progress:Number  [только для чтения]

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

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

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



Реализация
    public function get progress():Number

shader

свойство 
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):void

width

свойство 
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):void
Сведения о конструкторе

ShaderJob

()Конструктор
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: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
Версии среды выполнения: Flash Player 10, AIR 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>).




[ X ]Почему по-английски?
Содержимое Справочника ActionScript 3.0 отображается на английском языке

Не все части Справочника ActionScript 3.0 переводятся на все языки. Если какой-то текстовый элемент не переведен, он отображается на английском языке. Например, компонент ga.controls.HelpBox не переведен ни на один из языков. Это значит, что в русской версии справки компонент ga.controls.HelpBox будет отображаться на английском языке.