È possibile descrivere un'interpolazione di movimento mediante il codice XML e le classi ActionScript nel pacchetto fl.motion. Adobe Flash CS3 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, vedere fl.motion. Gli elementi del codice XML di supporto corrispondono alle classi e proprietà della Guida di riferimento del linguaggio e dei componenti ActionScript 3.0.

Vedere gli esempi.

La gerarchia degli elementi XML è la seguente:

<Motion> <source> <Source> <dimensions> <geom:Rectangle /> </dimensions> <transformationPoint> <geom:Point /> </transformationPoint> </Source> </source> <Keyframe> <color> <Color /> </color> <tweens> <SimpleEase /> <CustomEase> <geom:Point /> </CustomEase> </tweens> <filters> <filters /> </filters> </Keyframe> </Motion>

La tabella seguente descrive in breve gli elementi e gli attributi XML che possono essere assegnati a un oggetto Motion. Per ulteriori dettagli su ciascun elemento, vedere le 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. Vedere la classe fl.motion.Motion.
  duration Number Numero di fotogrammi dell'interpolazione di movimento selezionata. Vedere la proprietà fl.motion.Motion.duration.
source     Tag principale richiesto per l'elemento Source. Questo tag non ha attributi, ma è richiesto dal compilatore per elaborare l'elemento Source e i relativi attributi.
Source     Contiene le proprietà dell'oggetto visivo originale associato al movimento. Vedere la classe fl.motion.Source.
  frameRate Number Il numero di fotogrammi al secondo (f/s) del file SWF contenente l'animazione originale copiata da Flash CS3. Questo valore non ha effetto sull'implementazione ActionScript di in un file SWF diverso. Vedere 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 CS3.
  y Number La coordinata y del punto di trasformazione dell'istanza di simbolo all'inizio dell'interpolazione di movimento originale copiata da Flash CS3.
  scaleX Number La percentuale della scala orizzontale, sotto forma di valore decimale. {\f1 Il valore è spesso compreso tra 0 e 1, ma può anche essere maggiore di 1 o minore di 0. Ad esempio, è possibile impostare }scaleX {\f2 }{\f1 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. {\f1 Il valore è spesso compreso tra 0 e 1, ma può anche essere maggiore di 1 o minore di 0. Ad esempio, è possibile impostare }scaleY {\f2 }{\f1 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 CS3, se esiste (l'oggetto visivo originale potrebbe non essere un'istanza di simbolo).
dimensions     Contiene un tag che utilizza lo spazio dei nomi geom per descrivere il riquadro di delimitazione del simbolo interpolato.
geom:Rectangle   Un oggetto del pacchetto flash.geom. Definisce il riquadro di delimitazione. È 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).

transformationPoint     Contiene un tag che utilizza lo spazio dei nomi geom per descrivere il punto di trasformazione del simbolo interpolato.
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") o 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 CS3. Se il valore viene omesso dal codice XML, l'impostazione predefinita è true.
  tweenSnap Boolean Attiva ("true") o 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 CS3. 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. {\f1 Il valore è spesso compreso tra 0 e 1, ma può anche essere maggiore di 1 o minore di 0. Ad esempio, è possibile impostare }scaleX {\f2 }{\f1 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. {\f1 Il valore è spesso compreso tra 0 e 1, ma può anche essere maggiore di 1 o minore di 0. Ad esempio, è possibile impostare }scaleY {\f2 }{\f1 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 uint Aggiunge una rotazione all'oggetto interpolato, oltre all'eventuale rotazione esistente. Questa rotazione dipende dal valore dell'attributo rotateDirection, che deve essere impostato su "cw" o su "ccw". Il valore rotateTimes deve essere un numero intero uguale o maggiore di zero. Vedere la proprietà fl.motion.Keyframe.rotateTimes.
  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     Tag principale richiesto per l'elemento Color. Questo tag non ha attributi, ma è richiesto dal compilatore per elaborare l'elemento Color e i relativi attributi.
color     Contiene le impostazioni per le variazioni di colore. Le istanze di simbolo in Flash hanno cinque modalità di colore: nonealphatintbrightness e advanced.

Per non applicare alcuna trasformazione (none), il tag Color deve rimanere vuoto, a indicare l'aspetto normale.

Per trasformazioni alpha, impostare gli attributi alphaMultiplier e alphaOffset.

Per trasformazioni tint, impostare gli attributi tintColor e tintMultiplier.

Per trasformazioni brightness, utilizzare l'attributo brightness.

Per trasformazioni advanced, utilizzare gli attributi redMultiplier, greenMultiplier, blueMultiplier, alphaMultiplier, redOffset, greenOffset, blueOffsete 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 Esadecimale 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 di applicazione 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 del 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 CS3, lo strumento di creazione genera codice XML che non include un attributo target per l'elemento SimpleEase perché Flash CS3 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, vedere la 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 CS3, 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.

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 specificato. flash.filters. 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" />

Vedere il pacchetto flash.filters.

L'esempio seguente mostra codice ActionScript con codice XML inline, che descrive l'interpolazione di movimento di un'istanza moveShape MovieClip per il simbolo myShape: il modo in cui ruota, si sposta, utilizza un'impostazione di andamento personalizzata e modifica 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="140.35" y="142.35" scaleX="1" scaleY="1" rotation="0" elementType="movie clip" instanceName="moveShape" symbolName="myShape"> <dimensions> <geom:Rectangle left="13" top="5" width="125.5" height="125.5"/> </dimensions> <transformationPoint> <geom:Point x="0.5" y="0.5"/> </transformationPoint> </Source> </source> <Keyframe index="0" rotateDirection="cw" rotateTimes="1" tweenSnap="false" scaleX="1" scaleY="1" rotation="0"> <color> <Color alphaMultiplier="0.4"/> </color> <tweens> <CustomEase target="position"> <geom:Point x="0.09500906065407433" y="0.09500906065407433"/> <geom:Point x="0.460384258177029" y="0.11105020134567312"/> <geom:Point x="0.5441860465116279" y="0.22916666666666663"/> <geom:Point x="0.685859138879818" y="0.42885124660440044"/> <geom:Point x="0.5417057701316985" y="0.7393801887363497"/> <geom:Point x="0.7023255813953488" y="0.8999999999999999"/> <geom:Point x="0.7800300428109576" y="0.9777044614156086"/> <geom:Point x="0.9222955385843912" y="0.9222955385843913"/> </CustomEase> <CustomEase target="scale"> <geom:Point x="0.3333333333333333" y="0.3333333333333333"/> <geom:Point x="0.6666666666666666" y="0.6666666666666666"/> </CustomEase> <CustomEase target="rotation"> <geom:Point x="0.19132280349731443" y="0.19132280349731445"/> <geom:Point x="0.4753438631693523" y="0.13159386316935218"/> <geom:Point x="0.6666666666666667" y="0.32291666666666663"/> <geom:Point x="0.8086771965026857" y="0.46492719650268555"/> <geom:Point x="0.8579894701639811" y="0.8579894701639811"/> </CustomEase> <CustomEase target="color"> <geom:Point x="0.3333333333333333" y="0.3333333333333333"/> <geom:Point x="0.6666666666666666" y="0.6666666666666666"/> </CustomEase> <CustomEase target="filters"> <geom:Point x="0.3333333333333333" y="0.3333333333333333"/> <geom:Point x="0.6666666666666666" y="0.6666666666666666"/> </CustomEase> </tweens> </Keyframe> <Keyframe index="9" x="304.95" y="122"> <color> <Color/> </color> </Keyframe> </Motion>; var moveShape_animator:Animator = new Animator(moveShape_xml, moveShape); moveShape_animator.play();

L'esempio seguente mostra un'interpolazione di movimento più semplice con l'aggiunta di un evento della classe fl.motion.MotionEvent per visualizzare un messaggio quando l'animazione dell'istanza di simbolo abox è terminata:

import fl.motion.Animator; import fl.motion.MotionEvent; var abox_xml:XML = <Motion duration="10" xmlns="fl.motion.*" xmlns:geom="flash.geom.*" xmlns:filters="flash.filters.*"> <source> <Source frameRate="12" x="186.45" y="120.45" scaleX="1" scaleY="1" rotation="0" elementType="movie clip" symbolName="Symbol 1"> <dimensions> <geom:Rectangle left="0" top="0" width="86.95" height="86.95"/> </dimensions> <transformationPoint> <geom:Point x="0.49971247843588273" y="0.49971247843588273"/> </transformationPoint> </Source> </source> <Keyframe index="0" rotateDirection="cw" rotateTimes="1"> <tweens> <SimpleEase ease="0.8"/> </tweens> </Keyframe> <Keyframe index="9" x="198" y="123"/> </Motion>; var abox_animator:Animator = new Animator(abox_xml, abox); abox_animator.play(); abox_animator.addEventListener(MotionEvent.MOTION_END,afterMotion); function afterMotion(e:MotionEvent) { trace("animation complete!"); }

 

Inviami un messaggio e-mail quando vengono aggiunti dei commenti a questa | Rapporto sui commenti

Pagina corrente: http://livedocs.adobe.com/flash/9.0_it/ActionScriptLangRefV3/motionXSD.html