Pacchetto | flash.filters |
Classe | public class ShaderFilter |
Ereditarietà | ShaderFilter BitmapFilter Object |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Per creare un nuovo filtro, utilizzate la funzione di costruzione new ShaderFilter()
. L'uso dei filtri dipende dall'oggetto a cui il filtro viene applicato:
- per applicare i filtri a clip filmato, campi di testo, pulsanti e video, utilizzate la proprietà
filters
(ereditata da DisplayObject). L'impostazione della proprietàfilters
di un oggetto non modifica l'oggetto ed è possibile eliminare il filtro cancellando la proprietàfilters
. - Per applicare filtri a oggetti BitmapData, utilizzate il metodo
BitmapData.applyFilter()
. Quando si chiamaapplyFilter()
su un oggetto BitmapData, vengono acquisiti l'oggetto BitmapData di origine e l'oggetto filtro e viene generata un'immagine filtrata come risultato.
Se applicate un filtro a un oggetto di visualizzazione, il valore della proprietà cacheAsBitmap
dell'oggetto viene impostato su true. Se eliminate tutti i filtri, viene ripristinato il valore originale di cacheAsBitmap
.
Questo filtro supporta la modifica in scala sullo stage. ma non supporta operazioni generiche di modifica in scala, rotazione e inclinazione. Se l'oggetto stesso viene modificato in scala (se le proprietà scaleX
e scaleY
non sono impostate sul 100%), il filtro non viene modificato in scala. La modifica in scala avviene solo quando si ingrandisce lo stage.
Un filtro non viene applicato se l'immagine risultante supera le dimensioni massime. In AIR 1.5 e Flash Player 10, la dimensione massima è di 8.191 pixel in larghezza o altezza, mentre il numero totale di pixel non può essere superiore a 16.777.215, pertanto se un'immagine ha una larghezza di 8.191 pixel, può avere solo una lunghezza di 2.048 pixel. In Flash Player 9 e versioni precedenti e in AIR 1.1 e versioni precedenti, la limitazione è di 2.880 pixel in altezza e 2.880 pixel in larghezza. Se, ad esempio, ingrandite un clip filmato di grandi dimensioni quando il filtro è applicato, il filtro viene disattivato se l'immagine risultante supera le dimensioni massime.
Per specificare l'istanza Shader da utilizzare con il filtro, passate l'istanza Shader come argomento alla funzione di costruzione ShaderFilter()
oppure impostatela come valore della proprietà shader
.
Per consentire l'estensione dell'output dello shader oltre i limiti dell'oggetto filtrato, utilizzate le proprietà leftExtension
, rightExtension
, topExtension
e bottomExtension
.
Altri esempi
Elementi API correlati
flash.display.DisplayObject.cacheAsBitmap
flash.display.BitmapData.applyFilter()
flash.display.Shader
Proprietà | Definito da | ||
---|---|---|---|
bottomExtension : int
La crescita in pixel sul lato inferiore dell'oggetto target. | ShaderFilter | ||
constructor : Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto. | Object | ||
leftExtension : int
La crescita in pixel sul lato sinistro dell'oggetto target. | ShaderFilter | ||
rightExtension : int
La crescita in pixel sul lato destro dell'oggetto target. | ShaderFilter | ||
shader : Shader
Lo shader da utilizzare per questo filtro. | ShaderFilter | ||
topExtension : int
La crescita in pixel sul lato superiore dell'oggetto target. | ShaderFilter |
Metodo | Definito da | ||
---|---|---|---|
ShaderFilter(shader:Shader = null)
Crea un nuovo filtro shader. | ShaderFilter | ||
Restituisce un oggetto BitmapFilter che è la copia esatta dell'oggetto BitmapFilter originale. | BitmapFilter | ||
Indica se per un oggetto è definita una proprietà specifica. | Object | ||
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro. | Object | ||
Indica se la proprietà specificata esiste ed è enumerabile. | Object | ||
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche. | Object | ||
Restituisce la rappresentazione in formato stringa di questo oggetto, formattato in base alle convenzioni specifiche per le versioni localizzate. | Object | ||
Restituisce la rappresentazione in formato stringa dell'oggetto specificato. | Object | ||
Restituisce il valore di base dell'oggetto specificato. | Object |
bottomExtension | proprietà |
bottomExtension:int
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
La crescita in pixel sul lato inferiore dell'oggetto target.
La crescita nell'area oltre i limiti dell'oggetto target passato allo shader durante l'esecuzione. Durante l'esecuzione, Flash Player o AIR calcola i normali limiti di un clip filmato ed estende i limiti in base ai valori leftExtension
, rightExtension
, topExtension
e bottomExtension
.
Il valore predefinito è 0.
Implementazione
public function get bottomExtension():int
public function set bottomExtension(value:int):void
leftExtension | proprietà |
leftExtension:int
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
La crescita in pixel sul lato sinistro dell'oggetto target.
La crescita nell'area oltre i limiti dell'oggetto target passato allo shader durante l'esecuzione. Durante l'esecuzione, Flash Player o AIR calcola i normali limiti di un clip filmato ed estende i limiti in base ai valori leftExtension
, rightExtension
, topExtension
e bottomExtension
.
Il valore predefinito è 0.
Implementazione
public function get leftExtension():int
public function set leftExtension(value:int):void
rightExtension | proprietà |
rightExtension:int
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
La crescita in pixel sul lato destro dell'oggetto target.
La crescita nell'area oltre i limiti dell'oggetto target passato allo shader durante l'esecuzione. Durante l'esecuzione, Flash Player o AIR calcola i normali limiti di un clip filmato ed estende i limiti in base ai valori leftExtension
, rightExtension
, topExtension
e bottomExtension
.
Il valore predefinito è 0.
Implementazione
public function get rightExtension():int
public function set rightExtension(value:int):void
shader | proprietà |
shader:Shader
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Lo shader da utilizzare per questo filtro.
L'oggetto Shader assegnato alla proprietà shader
deve specificare almeno un input di tipo image4
. Non è necessario specificare l'input nel codice utilizzando la proprietà input
dell'oggetto ShaderInput associato. L'oggetto a cui viene applicato il filtro viene invece utilizzato automaticamente come primo input (l'input con index
0). Uno shader utilizzato come filtro può specificare più input, nel qual caso qualsiasi input aggiuntivo deve essere specificato mediante l'impostazione della relativa proprietà input
dell'istanza ShaderInput.
Quando assegnate un'istanza Shader a questa proprietà, lo shader viene copiato internamente e l'operazione di filtro usa quella copia interna, non un riferimento allo shader originale. Qualsiasi modifica apportata allo shader, ad esempio la modifica del valore di un parametro, dell'input o del codice byte, non verrà applicata alla copia dello shader usata per il filtro. Per fare in modo che le modifiche dello shader vengano incluse nell'output del filtro, dovete riassegnare l'istanza Shader alla proprietà shader
. Come accade con tutti i filtri, dovete anche riassegnare l'istanza ShaderFilter alla proprietà filters
dell'oggetto di visualizzazione per applicare le modifiche dei filtri.
Implementazione
public function get shader():Shader
public function set shader(value:Shader):void
topExtension | proprietà |
topExtension:int
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
La crescita in pixel sul lato superiore dell'oggetto target.
La crescita nell'area oltre i limiti dell'oggetto target passato allo shader durante l'esecuzione. Durante l'esecuzione, Flash Player o AIR calcola i normali limiti di un clip filmato ed estende i limiti in base ai valori leftExtension
, rightExtension
, topExtension
e bottomExtension
.
Il valore predefinito è 0.
Implementazione
public function get topExtension():int
public function set topExtension(value:int):void
ShaderFilter | () | Funzione di costruzione |
public function ShaderFilter(shader:Shader = null)
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Crea un nuovo filtro shader.
Parametrishader:Shader (default = null ) — Lo shader da utilizzare per questo filtro. Per informazioni dettagliate e limitazioni a cui lo shader deve essere conforme, fate riferimento alla descrizione della proprietà shader .
|
Elementi API correlati
shader
di ShaderFilter. Il codice disegna un cerchio in un'istanza Sprite e lo aggiunge allo stage. Quando viene caricato lo shader, il filtro shader viene applicato allo Sprite.
L'esempio seguente presuppone che sia disponibile un file di codice byte dello shader denominato "gradient.pbj" nella stessa directory di output dell'applicazione.
// // 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, 02:44 PM Z