XAML per Silverlight - Seconda parte

5 pagine in totale: <<Indietro 1 2 [3] 4 5 Avanti >>

In generale gli oggetti di trasformazione possono essere combinati tra loro attraverso TransformGroup elencando nel corrispondente nodo le dichiarazioni degli oggetti:

<Rectangle.RenderTransform>
    <TransformGroup>
        <ScaleTransform ScaleX="1" ScaleY="2"/>
        <SkewTransform AngleX="0" AngleY="0"/>
        <RotateTransform Angle="12"/>
        <TranslateTransform X="22" Y="0"/>
    </TransformGroup>
</Rectangle.RenderTransform>

Oggetti multimediali

Silverlight è stato sviluppato con grande attenzione alla gestione dei contenuti multimediali, l'oggetto MediaElement consente la riproduzione di filmati video Windows Media Video (WMV) e di suoni nei formati Windows Media Audio (WMA) e MP3; con MediaElement è possibile riprodurre anche contenuti distribuiti in streaming attraverso Windows Media Server.

L'oggetto è molto flessibile mettendo a disposizione molte proprietà ed eventi per la gestione delle fasi di riproduzione, attraverso l'evento BufferingProgressChanged e le proprietà BufferingProgress e BufferingTime è possibile controllare lo stato del buffer che viene utilizzato durante il download progressivo, cioè nel caso in cui il contenuto multimediale sia una risorsa remota che debba essere scaricata e riprodotta, impostando BufferingTime ad un tempo proporzionato alla durata del video ed al suo FrameRate è possibile iniziare la riproduzione prima del completo download del file.

Inoltre con l'evento CurrentStateChanged è possibile controllare lo stato di riproduzione attraverso la proprietà CurrentState , che può assumere i seguenti valori:

  • Buffering: il contenuto multimediale è in fase di scaricamento;
  • Closed:  MediaElement non ha nessun contenuto da riprodurre;
  • Error: nel caso si sia verificato un errore durante la riproduzione;
  • Opening: durante l'apertura e la validazione dell'indirizzo del contenuto;
  • Paused: se la riproduzione è stata sospesa con una azione dell'utente;
  • Playing: durante la riproduzione;
  • Stopped: se la riproduzione è ferma.

La proprietà Position restituisce il tempo trascorso dall'inizio della riproduzione, confrontandolo con la proprietà NaturalDuration è possibile monitorare lo stato di avanzamento e creare un sistema di back/ forward.

MediaElement annovera tra le proprietà anche i markers come collezione di segnaposti nell'arco temporale del contenuto. I Markers possono essere creati durante l'encoding del video o dell'audio e possono essere creati e modificati anche da codice subito dopo l'evento MediaOpened attraverso opportune configurazioni; sfruttando l'evento MarkerReached è possibile realizzare effetti video, montaggi, loop ed altro sia audio che video.

La gestione degli eventi di riproduzione deve essere eseguita con Javascript e pertanto sarà oggetto di successiva analisi.

Oggetti per animazioni

Silverlight gestisce gli oggetti grafici come strutture di dati vettoriali, pertanto il concetto generale di una animazione consiste nella variazione di una o più caratteristiche di un oggetto durante un arco di tempo, tale variazione crea l'animazione per effetto della sequenziale renderizzazione a video dell'oggetto negli stati intermedi , definiti dall'utente oppure calcolati dal plugin per interpolazione lineare.

L'adozione della grafica vettoriale e la sue animazioni sono alcuni dei punti di rivoluzione di WPF (e di riflesso di Silverlight) per la realizzazione di interfacce grafiche con maggiore impatto sull'utente; nonostante i vantaggi della gestione della grafica vettoriale, storicamente la sua adozione era stata confinata a ristretti ambiti a causa soprattutto del consumo di risorse macchina, con il costante aumento delle capacità di calcolo dei moderni personal computer casalinghi anche Microsoft ha deciso di sfruttarne le potenzialità addirittura nel sistema operativo Vista, creando XAML e basandoci il framework di WPF .

Per rispondere ai principi base per i quali è nato Silverlight, i programmatori hanno fatto una grande attenzione agli oggetti per le animazioni ed alla logica implementativa in modo da abbattere i limiti delle attuali tecnologie disponibili. Gli oggetti principali con i quali realizzare animazioni lineari sono:

  • DoubleAnimation
    Il suffisso Double del nome dell'oggetto sottintende all'animazione di una proprietà il cui valore può essere di tipo decimale; ad esempio, con DoubleAnimation si possono variare nel tempo grandezze, posizioni ed altro.
  • ColorAnimation
    Analogamente a DoubleAnimation, l'oggetto ColorAnimation è specifico per la gestione di quelle proprietà valorizzabili con un colore come Fill, Foreground, ecc..
  • PointAnimation
    PointAnimation
    è utilizzabile per l'animazione di quelle proprietà il cui valore corrisponde ad un oggetto Point rappresentabile con una coppia di coordinate X e Y. Con PointAnimation si possono gestire le proprietà come Center, i vertici di una PolyLineSegment ecc..

Questi oggetti possono essere utilizzati attraverso la proprietà Triggers ed il relativo oggetto EventTrigger , essi creano un legame tra un evento dell'oggetto da animare e l'animazione stessa.

In Silverlight l'unico evento disponibile è Loaded, che si verifica al termine del caricamento e del parsing di un oggetto, attraverso la proprietà RoutedEvent di EventTrigger è possibile attivare una animazione appena un oggetto è pronto per essere renderizzato.

5 pagine in totale: <<Indietro 1 2 [3] 4 5 Avanti >>

Attenzione: Questo articolo contiene un allegato

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.



TUTORIALS


IN EVIDENZA
MISC