Package | flash.filters |
Classe | public class ShaderFilter |
Héritage | ShaderFilter BitmapFilter Object |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5 |
Pour créer un filtre, utilisez le constructeur new ShaderFilter()
. L’utilisation de filtres dépend de l’objet auquel vous appliquez le filtre.
- Pour appliquer des filtres aux clips, champs de texte, boutons et vidéo, utilisez la propriété
filters
(héritée de DisplayObject). Lorsque vous définissez la propriétéfilters
d’un objet, celui-ci n’est pas modifié. En outre, vous pouvez supprimer la propriétéfilters
pour enlever le filtre. - Pour appliquer des filtres aux objets BitmapData, utilisez la méthode
BitmapData.applyFilter()
. L’appel deapplyFilter()
pour un objet BitmapData génère une image filtrée à partir de l’objet BitmapData source et de l’objet filtre.
Si vous appliquez un filtre à un objet d’affichage, la valeur de la propriété cacheAsBitmap
de cet objet est définie sur true. Si vous supprimez tous les filtres, la valeur d’origine de cacheAsBitmap
est restaurée.
Ce filtre prend en charge le redimensionnement de la scène. Cependant, il ne prend pas en charge le redimensionnement général, la rotation ni l’inclinaison. Si l’objet lui-même est redimensionné (si les propriétés scaleX
et scaleY
ne sont pas définies sur 100 %), l’effet de filtre n’est pas redimensionné. Le redimensionnement est effectué uniquement en cas de zoom avant sur la scène.
Aucun filtre n’est appliqué si l’image obtenue dépasse les dimensions maximales. Dans AIR 1.5 et Flash Player 10, la taille maximale est de 8 191 pixels en largeur ou en hauteur, et le nombre total de pixels ne peut pas excéder 16 777 215 pixels (ainsi, si la largeur d’une image est de 8 191 pixels, sa hauteur maximale doit être de 2 048 pixels). Dans Flash Player 9 et les versions antérieures, ainsi que dans AIR 1.1 et les versions antérieures, la limite est de 2 880 pixels de haut sur 2 880 pixels de large. Par exemple, si vous effectuez un zoom avant sur un clip de grande taille auquel un filtre est appliqué, le filtre sera désactivé si l’image obtenue dépasse les dimensions maximales.
Pour spécifier l’occurrence Shader à utiliser avec le filtre, transmettez l’occurrence Shader en tant qu’argument au constructeur ShaderFilter()
ou définissez-la en tant que valeur de la propriété shader
.
Pour que le résultat du shader puisse s’étendre au-delà des limites de l’objet filtré, utilisez les propriétés leftExtension
, rightExtension
, topExtension
et bottomExtension
.
Plus d’exemples
Eléments de l’API associés
flash.display.DisplayObject.cacheAsBitmap
flash.display.BitmapData.applyFilter()
flash.display.Shader
Propriété | Défini par | ||
---|---|---|---|
bottomExtension : int
Croissance en pixels sur le bas de l’objet cible. | ShaderFilter | ||
constructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet. | Object | ||
leftExtension : int
Croissance en pixels sur le côté gauche de l’objet cible. | ShaderFilter | ||
rightExtension : int
Croissance en pixels sur le côté droit de l’objet cible. | ShaderFilter | ||
shader : Shader
Shader à utiliser pour ce filtre. | ShaderFilter | ||
topExtension : int
Croissance en pixels sur le haut de l’objet cible. | ShaderFilter |
Méthode | Défini par | ||
---|---|---|---|
ShaderFilter(shader:Shader = null)
Crée un nouveau filtre shader. | ShaderFilter | ||
Renvoie un objet BitmapFilter qui est une copie exacte de l’objet BitmapFilter d’origine. | BitmapFilter | ||
Indique si la propriété spécifiée d’un objet est définie. | Object | ||
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre. | Object | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur. | Object | ||
Renvoie la représentation sous forme de chaîne de l’objet spécifié. | Object | ||
Renvoie la valeur primitive de l’objet spécifié. | Object |
bottomExtension | propriété |
bottomExtension:int
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5 |
Croissance en pixels sur le bas de l’objet cible.
La croissance correspond à la zone située au-delà des limites de l’objet cible transmise au shader durant l’exécution. Au moment de l’exécution, Flash Player ou AIR calcule les limites normales du clip et les étend sur la base des valeurs leftExtension
, rightExtension
, topExtension
et bottomExtension
.
La valeur par défaut est 0.
Implémentation
public function get bottomExtension():int
public function set bottomExtension(value:int):void
leftExtension | propriété |
leftExtension:int
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5 |
Croissance en pixels sur le côté gauche de l’objet cible.
La croissance correspond à la zone située au-delà des limites de l’objet cible transmise au shader durant l’exécution. Au moment de l’exécution, Flash Player ou AIR calcule les limites normales du clip et les étend sur la base des valeurs leftExtension
, rightExtension
, topExtension
et bottomExtension
.
La valeur par défaut est 0.
Implémentation
public function get leftExtension():int
public function set leftExtension(value:int):void
rightExtension | propriété |
rightExtension:int
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5 |
Croissance en pixels sur le côté droit de l’objet cible.
La croissance correspond à la zone située au-delà des limites de l’objet cible transmise au shader durant l’exécution. Au moment de l’exécution, Flash Player ou AIR calcule les limites normales du clip et les étend sur la base des valeurs leftExtension
, rightExtension
, topExtension
et bottomExtension
.
La valeur par défaut est 0.
Implémentation
public function get rightExtension():int
public function set rightExtension(value:int):void
shader | propriété |
shader:Shader
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5 |
Shader à utiliser pour ce filtre.
Le Shader affecté à la propriété shader
doit spécifier au moins une entrée image4
. Il n’est pas nécessaire de spécifier l’entrée dans le code via la propriété input
de l’objet ShaderInput. L’objet auquel le filtre est appliqué est en fait automatiquement utilisé comme première entrée (entrée avec index
0). Un shader utilisé comme filtre peut spécifier plusieurs entrées, auquel cas toute entrée supplémentaire doit être spécifiée par la définition de la propriété input
de son occurrence ShaderInput.
Lorsque vous affectez une occurrence Shader à cette propriété, le shader est copié en interne et l’opération de filtrage utilise cette copie interne, et non une référence au shader d’origine. Toute modification apportée au shader, par exemple la modification de la valeur d’un paramètre, l’entrée ou le pseudo-code binaire, n’est pas appliquée au shader copié utilisé pour le filtre. Pour que les modifications apportées au shader soient prises en compte dans le résultat du filtre, vous devez réaffecter l’occurrence Shader à la propriété shader
. Comme pour tous les filtres, vous devez également réaffecter l’occurrence de ShaderFilter à la propriété filters
de l’objet d’affichage afin d’appliquer les modifications du filtre.
Implémentation
public function get shader():Shader
public function set shader(value:Shader):void
topExtension | propriété |
topExtension:int
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5 |
Croissance en pixels sur le haut de l’objet cible.
La croissance correspond à la zone située au-delà des limites de l’objet cible transmise au shader durant l’exécution. Au moment de l’exécution, Flash Player ou AIR calcule les limites normales du clip et les étend sur la base des valeurs leftExtension
, rightExtension
, topExtension
et bottomExtension
.
La valeur par défaut est 0.
Implémentation
public function get topExtension():int
public function set topExtension(value:int):void
ShaderFilter | () | Constructeur |
public function ShaderFilter(shader:Shader = null)
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5 |
Crée un nouveau filtre shader.
Paramètresshader:Shader (default = null ) — Shader à utiliser pour ce filtre. Pour plus d’informations et pour connaître les limites que le shader doit respecter, voir la description de la propriété shader .
|
Eléments de l’API associés
shader
d’un ShaderFilter. Le code trace un cercle dans une occurrence Sprite et l’ajoute sur la scène. Lorsque le shader est chargé, le filtre du shader est appliqué à cette occurrence Sprite.
Notez que cet exemple part du principe qu’un fichier de pseudo-code binaire du shader nommé « gradient.pbj » existe dans le répertoire de sortie de l’application.
// // Source code for the shader: // <languageVersion : 1.0;> kernel RedGradientFilter < namespace: "Adobe::Example"; vendor: "Adobe examples"; version: 1; description: "Applies a gradient across the red channel of the input image."; > { input image4 src; output pixel4 dst; parameter float width < description: "The width of the image to which the shader is applied."; minValue: 0.0; >; void evaluatePixel() { pixel4 temp = sampleNearest(src, outCoord()); temp.r = 1.0 - (outCoord().x * (1.0 / width)); dst = temp; } } // // ActionScript source code: // package { import flash.display.Shader; import flash.display.Sprite; import flash.events.Event; import flash.filters.ShaderFilter; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; public class ShaderFilterExample extends Sprite { private var loader:URLLoader; private var s:Sprite; public function ShaderFilterExample() { loader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, loadCompleteHandler); loader.load(new URLRequest("gradient.pbj")); s = new Sprite(); s.graphics.beginFill(0x009900); s.graphics.drawCircle(100, 100, 100); addChild(s); } private function loadCompleteHandler(event:Event):void { var shader:Shader = new Shader(loader.data); shader.data.width.value = [s.width]; var gradientFilter:ShaderFilter = new ShaderFilter(shader); s.filters = [gradientFilter]; } } }
Tue Jun 12 2018, 09:30 AM Z