DisplacementMapFilter (flash.filters.DisplacementMapFilter)
Object
|
+-flash.filters.BitmapFilter
|
+-flash.filters.DisplacementMapFilter
public class **DisplacementMapFilter**
extends BitmapFilter
La classe DisplacementMapFilter utilise les valeurs de pixels de l’objet BitmapData spécifié (intitulé image de mappage du déplacement) pour déplacer un objet situé sur la scène, telle qu’une occurrence MovieClip. Vous pouvez utiliser ce filtre pour obtenir un effet voilé ou de tacheté sur une occurrence BitmapData ou MovieClip.
L’utilisation de filtres dépend de l’objet auquel vous appliquez le filtre.
Pour appliquer des filtres aux clips lors de l’exécution, utilisez la propriété filters. Lorsque vous définissez la propriété filters d’un objet, celui-ci n’est pas modifié. En outre, vous pouvez l’annuler en supprimant la propriété filters.
Pour appliquer des filtres aux occurrences BitmapData, utilisez la méthode BitmapData.applyFilter(). L’appel applyFilter() sur un objet BitmapData modifie ce dernier et ne peut pas être annulé.
Vous pouvez également appliquer des effets de filtre aux images et aux données vidéo pendant la programmation. Pour plus d’informations, consultez la documentation relative à la programmation.
Si vous appliquez un filtre à un clip ou à un bouton, la propriété cacheAsBitmap du clip ou du bouton est définie sur true. Si vous supprimez tous les filtres, la valeur d’origine de cacheAsBitmap est restaurée.
Le filtre utilise la formule suivante :
dstPixel[x, y] = srcPixel[x + ((componentX(x, y) - 128) * scaleX) / 256, y + ((componentY(x, y) - 128) * scaleY) / 256]
où componentX(x, y) attribue la valeur de couleur componentX de la propriété mapBitmap à (x - mapPoint.x ,y - mapPoint.y).
L’image de mappage utilisée par le filtre est redimensionnée afin de correspondre au redimensionnement de la scène. Elle n’est en aucun cas redimensionnée lorsque l’objet l’est.
Ce filtre supporte le redimensionnement de la scène, mais pas le redimensionnement général, la rotation ni l’inclinaison. Si l’objet lui-même est redimensionné (si l’échelle x et l’échelle yne sont pas à 100 %), l’effet du filtre n’est pas redimensionné. Le redimensionnement est effectué uniquement en cas de zoom avant sur la scène.
Voici comment fonctionne la classe DisplacementMapFilter. Pour chaque pixel (x,y) dans la bitmap de destination, la classe DisplacementMapFilter effectue ce qui suit :
Elle acquiert la couleur de (x,y) dans le mappage de la bitmap
Elle calcule un décalage sur la base de cette couleur
Elle recherche cet emplacement de décalage (x+dx,y+dy) dans la bitmap source
Elle inscrit ce pixel à la destination (x,y), si les conditions de limites le permettent.
Un filtre ne peut s’appliquer si l’image résultante dépasse 2 880 pixels en largeur ou en hauteur. Par exemple, si vous faites un zoom avant sur un grand clip auquel un filtre est appliqué, le filtre est désactivé si l’image résultante dépasse la limite de 2 880 pixels.
Disponibilité : ActionScript 1.0 ; Flash Player 8
Partager