È possibile descrivere un’interpolazione di movimento mediante il codice XML e le classi ActionScript nel pacchetto fl.motion. Adobe Flash Professional dispone di un comando "Copia movimento come ActionScript" che genera codice XML e ActionScript basato su un’interpolazione di movimento nella linea temporale, in modo che possa essere utilizzato in altri simboli o progetti. È possibile anche creare uno script personalizzato per l’interpolazione di movimento. A condizione che le classi fl.motion siano presenti nel percorso di classe in fase di compilazione, l’interpolazione viene applicata all’oggetto di visualizzazione specificato. Per ulteriori informazioni sulle classi motion, vedete il pacchetto fl.motion. Gli elementi del codice XML di supporto corrispondono alle classi e proprietà della Guida di riferimento di ActionScript 3.0.
© 2015 Adobe Systems Incorporated. All rights reserved.
Tue Jun 12 2018, 03:02 PM Z
La gerarchia degli elementi XML è la seguente:
<Motion> <Source> <dimensions/> <geom:Rectangle /> </dimensions> <transformationPoint> <geom:Point /> </transformationPoint> </Source> <Keyframe> <color> <Color /> </color> <tweens> <SimpleEase /> <CustomEase> <BezierControl /> <BezierNode /> </CustomEase> </tweens> <filters> <filters /> </filters> </Keyframe> </Motion>
Nella tabella seguente sono descritti in breve gli elementi e gli attributi XML che possono essere assegnati a un oggetto Motion. Per ulteriori dettagli su ciascun elemento, fate riferimento alle proprietà elencate nelle classi relative all’elemento:
Elemento | Attributo | Tipo | Descrizione |
---|---|---|---|
Motion | Definisce l’istanza Motion, in modo che possano esservi assegnate proprietà che caratterizzano l’interpolazione di movimento. Vedete la classe fl.motion.Motion. | ||
duration | Number | Numero di fotogrammi dell’interpolazione di movimento selezionata. Vedete la proprietà fl.motion.MotionBase.duration. | |
source | Contiene le proprietà dell’oggetto visivo originale associato al movimento. Vedete la classe fl.motion.Source. | ||
Source | frameRate | Number | Il numero di fotogrammi al secondo (f/s) del file SWF contenente l’animazione originale copiata da Flash Professional. Questo valore non ha effetto sull’implementazione di ActionScript in un file SWF diverso. Vedete la proprietà fl.motion.Source.frameRate. |
x | Number | La coordinata x del punto di trasformazione dell’istanza di simbolo all’inizio dell’interpolazione di movimento originale copiata da Flash Professional. | |
y | Number | La coordinata y del punto di trasformazione dell’istanza di simbolo all’inizio dell’interpolazione di movimento originale copiata da Flash Professional. | |
scaleX | Number | La percentuale della scala orizzontale, sotto forma di valore decimale. Il valore è spesso compreso tra 0 e 1, ma può anche essere maggiore di 1 o minore di 0. Potete, ad esempio, impostare scaleX su -1 per riflettere l’oggetto oppure su 3 per triplicare le dimensioni originali. | |
skewX | Number | L’angolo (in gradi) di inclinazione lungo l’asse orizzontale. Se i valori skewX e skewY sono uguali, vengono sostituiti dall’attributo rotation. | |
skewY | Number | L’angolo (in gradi) di inclinazione lungo l’asse verticale. Se i valori skewX e skewY sono uguali, vengono sostituiti dall’attributo rotation. | |
rotation | Number | Il grado di rotazione del fotogramma iniziale. | |
elementType | String | Il tipo di oggetto visivo utilizzato nell’interpolazione di movimento. I valori possibili sono: "movie clip", "button", "graphic", "rectangle object", "oval object", "drawing object", "group", "bitmap", "compiled clip", "video" o "text". | |
symbolName | String | Nome del simbolo nella libreria del documento di Adobe Flash Professional, se esiste (l’oggetto visivo originale potrebbe non essere un’istanza di simbolo). | |
dimensions | Contiene i tag che utilizzano lo spazio dei nomi geom per descrivere il riquadro di delimitazione e il punto di trasformazione del simbolo interpolato. | ||
geom:Rectangle | Un oggetto del pacchetto flash.geom. | È possibile aggiungere attributi che corrispondono alle proprietà dell’oggetto flash.geom.Rectangle. Ad esempio: <geom:Rectangle left="7" top="9" width="151.95" height="151.95" />I valori top e left sono relativi al punto di registrazione dell’oggetto principale (top e left sono definiti nello spazio di coordinate dell’oggetto principale). | |
geom:Point | Un oggetto del pacchetto flash.geom. | Le coordinate del punto di trasformazione sono definite come percentuale delle dimensioni del riquadro di delimitazione (valori dell’elemento geom:Rectangle). Se il punto di trasformazione è nell’angolo in alto a sinistra del riquadro di delimitazione, le coordinate sono (0, 0). Se il punto di trasformazione è nell’angolo in basso a destra del riquadro di delimitazione, le coordinate sono (1, 1). Questi valori consentono di applicare il punto di trasformazione in modo coerente a oggetti con proporzioni e punti di registrazione diversi. Il punto di trasformazione può trovarsi al di fuori del riquadro di delimitazione, in tal caso le coordinate possono essere inferiori a 0 o superiori a 1. | |
Keyframe | Contiene informazioni relative a un fotogramma chiave della linea temporale. | ||
blank | Boolean | Indica che il fotogramma chiave è vuoto. | |
index | Number | Numero intero univoco per il fotogramma chiave. Il valore di indice del primo fotogramma è sempre 0. I fotogrammi chiave nel codice XML devono essere specificati in ordine ascendente in base al valore di indice. | |
label | String | Una stringa opzionale che descrive il fotogramma chiave e corrisponde a un’etichetta di fotogramma nella linea temporale. | |
tweenSync | Boolean | Attiva ("true") e disattiva ("false") l’impostazione di sincronizzazione. La sincronizzazione ricalcola il numero di fotogrammi di un’interpolazione, in modo che corrisponda al numero di fotogrammi assegnato all’interpolazione nella linea temporale. Questo attributo non ha effetto sull’animazione ActionScript, in quanto ActionScript non è in grado di controllare i simboli grafici. L’attributo XML viene utilizzato solo dai comandi Copia movimento e Incolla movimento di Adobe Flash Professional. Se il valore viene omesso dal codice XML, l’impostazione predefinita è true. | |
tweenSnap | Boolean | Attiva ("true") e disattiva ("false") l’impostazione di aggancio. Questa impostazione aggancia un simbolo al tracciato del movimento per il punto di registrazione. Questo attributo non ha effetto sull’animazione ActionScript, in quanto ActionScript non è in grado di controllare i simboli grafici. L’attributo XML viene utilizzato solo dai comandi Copia movimento e Incolla movimento di Adobe Flash Professional. Se il valore viene omesso dal codice XML, l’impostazione predefinita è true. | |
x | Number | La coordinata x del punto centrale dell’istanza del simbolo nel fotogramma chiave corrente. | |
y | Number | La coordinata y del punto centrale dell’istanza del simbolo nel fotogramma chiave corrente. | |
scaleX | Number | La percentuale della scala orizzontale, sotto forma di valore decimale compreso tra 0 e 1. Il valore è spesso compreso tra 0 e 1, ma può anche essere maggiore di 1 o minore di 0. Potete, ad esempio, impostare scaleX su -1 per riflettere l’oggetto oppure su 3 per triplicare le dimensioni originali | |
scaleY | Number | La percentuale della scala verticale, sotto forma di valore decimale compreso tra 0 e 1. Il valore è spesso compreso tra 0 e 1, ma può anche essere maggiore di 1 o minore di 0. Potete, ad esempio, impostare scaleY su -1 per riflettere l’oggetto oppure su 3 per triplicare le dimensioni originali. | |
skewX | Number | L’angolo (in gradi) di inclinazione lungo l’asse orizzontale. Se i valori skewX e skewY sono uguali, vengono sostituiti dall’attributo rotation. | |
skewY | Number | L’angolo (in gradi) di inclinazione lungo l’asse verticale. Se i valori skewX e skewY sono uguali, vengono sostituiti dall’attributo rotation. | |
rotation | Number | Il grado di rotazione del fotogramma corrente. | |
rotateDirection | String | Specifica il modo in cui ruota l’elemento interpolato. I valori possibili sono "auto", "none", "cw", "ccw". Se il valore viene omesso dal codice XML, l’impostazione predefinita è "auto". | |
rotateTimes | Number | Specifica il numero di rotazioni effettuate dall’elemento interpolato nell’intervallo tra il fotogramma chiave iniziale e quello successivo, oltre alla normale rotazione. Adobe Flash Professional richiede valori interi uguali a o maggiori di 0, tuttavia le classi motion consentono valori decimali. | |
tweenScale | Boolean | Se false, impedisce che la scala venga modificata durante un’interpolazione. Se il valore viene omesso dal codice XML, l’impostazione predefinita è true. | |
cacheAsBitmap | Boolean | Se il valore viene omesso dal codice XML, l’impostazione predefinita è false. | |
blendMode | String | I valori possibili sono "normal", "layer", "multiply", "screen", "overlay", "hardlight", "lighten", "darken", "difference", "add", "subtract", "invert", "alpha" e "erase". Se il valore viene omesso dal codice XML, l’impostazione predefinita è "normal". | |
orientToPath | Boolean | Se il valore viene omesso dal codice XML, l’impostazione predefinita è false. | |
Color | Contiene le impostazioni per le variazioni di colore. Le istanze di simbolo in Flash hanno cinque modalità di colore: none, alpha, tint, brightness e advanced (Nessuno, Alfa, Tinta, Luminosità e Avanzate). Per non applicare alcuna trasformazione (none), il tag Color deve rimanere vuoto, a indicare l’aspetto normale. Per le trasformazioni alfa, impostate gli attributi alphaMultiplier e alphaOffset. Per le trasformazioni di tinta, impostate gli attributi tintColor e tintMultiplier.Per le trasformazioni di luminosità, utilizzate l’attributo brightness.Per le trasformazioni avanzate, utilizzate gli attributi redMultiplier, greenMultiplier, blueMultiplier, alphaMultiplier, redOffset, greenOffset, blueOffset e alphaOffset. | ||
brightness | Number | La percentuale di applicazione del canale di luminosità compresa tra -1 e 1, dove -1 indica un’immagine completamente nera e 1 un’immagine completamente bianca. | |
tintColor | Hexidecimal | Valore di colore esadecimale che rappresenta il colore da applicare. | |
alphaMultiplier | Number | La percentuale di applicazione del canale alfa, sotto forma di valore decimale compreso tra 0 e 1. | |
redMultiplier | Number | La percentuale di applicazione del colore, sotto forma di valore decimale compreso tra 0 e 1. | |
greenMultiplier | Number | La percentuale di applicazione del colore, sotto forma di valore decimale compreso tra 0 e 1. | |
blueMultiplier | Number | La percentuale di applicazione del colore, sotto forma di valore decimale compreso tra 0 e 1. | |
alphaMultiplier | Number | Un valore decimale compreso tra 0 e 1, che rappresenta la percentuale di applicazione del canale di trasparenza alfa. | |
tintMultiplier | Number | Un valore decimale compreso tra 0 e 1, che rappresenta la percentuale da applicare con il valore tintColor. | |
redOffset | Number | Un numero da -255 a 255 che viene aggiunto al valore del canale rosso dopo che questo è stato moltiplicato per il valore redMultiplier. | |
greenOffset | Number | Un numero da -255 a 255 che viene aggiunto al valore del canale verde dopo che questo è stato moltiplicato per il valore greenMultiplier. | |
blueOffset | Number | Un numero da -255 a 255 che viene aggiunto al valore del canale blu dopo che questo è stato moltiplicato per il valore blueMultiplier. | |
alphaOffset | Number | Un numero da -255 a 255 che viene aggiunto al valore di canale alfa dopo che questo è stato moltiplicato per il valore alphaMultiplier. | |
tweens | Contiene le impostazioni per le variazioni di andamento. | ||
SimpleEase | Definisce un’impostazione di andamento con un valore singolo nell’interpolazione di movimento per tutte le proprietà di andamento. | ||
ease | Number | Il valore di andamento da applicare a tutte le proprietà dell’interpolazione di movimento. L’attributo ease è un valore in percentuale compreso tra -1 (andamento in entrata o accelerazione al 100%) e 1 (andamento in uscita o decelerazione al 100%). Il valore predefinito è 0, che indica che l’interpolazione viene riprodotta a una velocità costante, senza accelerazione o decelerazione. | |
target | Number | Se si utilizzano i comandi Copia movimento e Incolla movimento di Adobe Flash Professional, lo strumento di creazione genera codice XML che non include un attributo target per l’elemento SimpleEase, perché Flash Professional applica lo stesso valore a tutte le proprietà di andamento. Tuttavia, le classi ActionScript 3.0 consentono di applicare diversi valori SimpleEase a proprietà singole contemporaneamente. I valori possibili per target sono uguali a quelli di CustomEase: "position", "scale", "rotation", "color", "filters", "x", "y", "scaleX", "scaleY", "skewX" e "skewY". | |
CustomEase | Definisce una curva di andamento personalizzata composta da curve di Bézier cubiche. È possibile applicare la stessa curva a tutte le proprietà contemporaneamente oppure definire curve diverse per proprietà diverse. Per ulteriori informazioni sulle curve che rappresentano proprietà di andamento personalizzate, potete fare riferimento alla classe CustomEase. | ||
target | Number | La proprietà a cui viene assegnato un valore personalizzato. Se si utilizzano i comandi Copia movimento e Incolla movimento di Adobe Flash Professional, lo strumento di creazione genera i seguenti valori possibili per target: "position", "scale", "rotation", "color", "filters". Le classi motion di ActionScript 3.0 sono ancora più flessibili e consentono di definire curve singole per: "x", "y", "scaleX", "scaleY", "skewX" e "skewY". Se l’attributo "target" viene omesso dal codice XML, a tutte le proprietà di andamento viene assegnato lo stesso valore target. Nota: il codice XML omette il primo e l’ultimo punto della curva di andamento personalizzata. Il primo punto deve essere sempre (0, 0) (il valore iniziale della proprietà interpolata) e l’ultimo punto deve essere (1, 1) (il valore finale della proprietà interpolata). Per mantenere il codice efficiente ed evitare possibili errori, questi valori vengono omessi dal codice XML e considerati impliciti. | |
BezierControl | Un punto relativo a una curva utilizzato per definire la curva. | ||
x | Number | La coordinata x del punto di definizione di una curva. | |
y | Number | La coordinata y del punto di definizione di una curva. | |
BezierNode | Un punto di una curva utilizzato per definire la curva. | ||
x | Number | La coordinata x del punto di una curva. | |
y | Number | La coordinata y del punto di una curva. | |
filters | Definisce un oggetto del pacchetto flash.filters da utilizzare come elemento (ad esempio: filters:GlowFilter). È possibile aggiungere attributi che corrispondono alle proprietà dell’oggetto flash.filters specificato. Ad esempio: <filters:DropShadowFilter quality="1" inner="false" knockout="false" hideObject="false" distance="0" angle="45" color="0x000000" alpha="1" blurX="0" blurY="0" strength="0" />. Vedete il pacchetto flash.filters. |
Nell’esempio seguente viene illustrato codice ActionScript con codice XML inline, che descrive l’interpolazione di movimento di un’istanza MovieClip moveShape per il simbolo myShape, il modo in cui ruota, si sposta, utilizza un’impostazione di andamento personalizzata e vengono modificati i valori alfa su dieci fotogrammi:
import fl.motion.Animator; var moveShape_xml:XML = <Motion duration="10" xmlns="fl.motion.*" xmlns:geom="flash.geom.*" xmlns:filters="flash.filters.*"> <source> <Source frameRate="12" x="41.35" y="91.35" scaleX="1" scaleY="1" rotation="0" elementType="movie clip" instanceName="moveShape" symbolName="myShape"> <dimensions> <geom:Rectangle left="-46.65" top="-61.95" width="133.05" height="133.95"/> </dimensions> <transformationPoint> <geom:Point x="0.49981210071401727" y="0.4998133631952222"/> </transformationPoint> </Source> </source> <Keyframe index="0" rotateTimes="2"> <tweens> <CustomEase> <BezierControl x="0.08650266979261687" y="0.14705453864744866"/> <BezierControl x="0.23675978562091857" y="0.28829454738109694"/> <BezierNode x="0.2689728109485753" y="0.49688733564952436"/> <BezierControl x="0.32093023255813957" y="0.8333333333333333"/> <BezierControl x="0.5988021982960045" y="1.034249160488573"/> <BezierNode x="0.7309082984924317" y="0.8685852488735627"/> <BezierControl x="0.8116279069767443" y="0.767361111111111"/> <BezierControl x="0.910302766164144" y="0.9730908298492431"/> </CustomEase> </tweens> </Keyframe> <Keyframe index="9" x="371.95" y="188"> <color> <Color alphaMultiplier="0.4" alphaOffset="0"/> </color> </Keyframe> </Motion>; var moveShape_animator:Animator = new Animator(moveShape_xml, moveShape); moveShape_animator.play();
Tue Jun 12 2018, 03:02 PM Z