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

ShaderData  - AS3

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

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

В объекте ShaderData содержатся свойства, отвечающие за все параметры и входы ядра затенения, а также свойства, содержащие все метаданные, указанные для затенения.

Эти свойства применяются к объекту ShaderData при его создании. Имена свойств совпадают с именами, указанными в исходном коде затенения. Типы данных каждого свойства различаются в зависимости от представляемого свойством аспекта затенения. Например, свойства, представляющие параметры затенения, являются экземплярами ShaderParameter, свойства, представляющие изображения ввода, являются экземплярами ShaderInput, а свойства, представляющие метаданные затенения, относятся к классу ActionScript в зависимости от их типа данных (экземпляр String для метаданных в формате текста и uint для метаданных типа uint).

Рассмотрим пример затенения, который характеризуется одним изображением ввода (src), двумя параметрами (size и radius) и тремя значениями метаданных (nameSpace, version и description):

     <languageVersion : 1.0;>
     
     kernel DoNothing
     <
         namespace: "Adobe::Example";
         vendor: "Adobe examples";
         version: 1;
         description: "A shader that does nothing, but does it well.";
     >
     {
         input image4 src;
     
         output pixel4 dst;
         
         parameter float2 size
         <
             description: "The size of the image to which the kernel is applied";
             minValue: float2(0.0, 0.0);
             maxValue: float2(100.0, 100.0);
             defaultValue: float2(50.0, 50.0);
         >;
         
         parameter float radius
         <
             description: "The radius of the effect";
             minValue: 0.0;
             maxValue: 50.0;
             defaultValue: 25.0;
         >;
     
         void evaluatePixel()
         {
             float2 one = (radius / radius) ∗ (size / size);
             dst = sampleNearest(src, outCoord());
         }
     }
     

Если при создании экземпляра Shader использовался байт-код данного затенения, то в свойстве data экземпляра ShaderData будут содержаться следующие свойства:

СвойствоТип данныхЗначение
nameString"DoNothing"
nameSpaceString"Adobe::Example"
versionString"1"
descriptionString«Затенение, которое не оказывает никакого эффекта»
srcShaderInput [Экземпляр ShaderInput]
sizeShaderParameter [Экземпляр ShaderParameter, содержащий свойства метаданных параметра]
radiusShaderParameter [Экземпляр ShaderParameter, содержащий свойства метаданных параметра]

Обратите внимание на то, что каждое изображение ввода или параметр, определенные в исходном коде затенения, но не используемые в функции evaluatePixel() затенения, удаляются при компиляции затенения в байт-код. В этом случае соответствующие экземпляры ShaderInput или ShaderParameter к экземпляру ShaderData в качестве свойства не прибавляются.

Обычно, в коде разработчика создание экземпляра ShaderData не заложено. Экземпляр ShaderData, содержащий данные, параметры и вводы для затенения, доступен в качестве свойства data экземпляра Shader.

Посмотреть примеры

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



Общедоступные свойства
 СвойствоОпределено
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
Общедоступные методы
 МетодОпределено
  
Создает экземпляр ShaderData.
ShaderData
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Сведения о конструкторе

ShaderData

()Конструктор
public function ShaderData(byteCode:ByteArray)

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

Создает экземпляр ShaderData. Обычно в коде разработчика прямой вызов конструктора ShaderData не производится. Доступ к экземпляру ShaderData, содержащему данные, параметры и вводы для затенения, осуществляется через его свойство data.

Параметры
byteCode:ByteArray — Байт-код затенения.

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

ShaderDataExample.1.as

В следующем примере происходит загрузка затенения и перечисление экземпляра ShaderData в его свойстве data для отображения свойств ввода, параметров и метаданных данного затенения.

Обратите внимание, что в этом примере мы исходим из того, что существует файл байт-кодов с именем donothing.pbj, хранящийся в каталоге, который является выходным для приложения.

//
// Source code for the shader:
//
<languageVersion : 1.0;>

kernel DoNothing
<
    namespace: "Adobe::Example";
    vendor: "Adobe examples";
    version: 1;
    description: "A shader that does nothing, but does it well.";
>
{
    input image4 src;
    
    output pixel4 dst;
    
    parameter float2 size
    <
        description: "The size of the image to which the shader is applied";
        minValue: float2(0.0, 0.0);
        maxValue: float2(100.0, 100.0);
        defaultValue: float2(50.0, 50.0);
    >;
    
    parameter float radius
    <
        description: "The radius of the effect";
        minValue: float(0.0);
        maxValue: float(50.0);
        defaultValue: float(25.0);
    >;

    void evaluatePixel()
    {
        float2 one = (radius / radius) * (size / size);
        dst = sampleNearest(src, outCoord());
    }
}

//
// ActionScript source code:
//
package {
    import flash.display.Shader;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.net.URLLoader;
    import flash.net.URLLoaderDataFormat;
    import flash.net.URLRequest;

    public class ShaderDataExample extends Sprite {
        
        private var loader:URLLoader;
        
        public function ShaderDataExample() {
            loader = new URLLoader();
            loader.dataFormat = URLLoaderDataFormat.BINARY;
            loader.addEventListener(Event.COMPLETE, loadCompleteHandler);
            loader.load(new URLRequest("donothing.pbj"));
        }
        
        private function loadCompleteHandler(event:Event):void {
            var shader:Shader = new Shader();
            shader.byteCode = loader.data;
            
            for (var p:String in shader.data) {
                trace(p, ":", shader.data[p]);
                for (var d:String in shader.data[p]) {
                    trace("\t", d, ":", shader.data[p][d]);
                }
            }
        }
    }
}




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

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