Flash Video Player

Di sicuro vi sarà capitato di dover ridimensionare le misure di un SWF.

Non tutti sanno che è possibile cambiare la dimensione di un SWF in tempo reale, a runtime.

Quando uscì Flash CS3 molti di noi speravano che la nuova versione di Actionscript permettesse di impostare le dimensioni dello stage in modo da poter cambiare le dimensioni dell’ SWF inserito in una pagina html.

Pensavamo si potesse agire sulle proprietà stage.stageWidth e stage.stageHeight
ma sbagliavamo in quanto tali proprietà sono di sola lettura, non scrivibili.

Quindi, come cambiare le dimensioni dell’ SWF ?

Questo è possibile utilizzando Actionscript e Javascript.

Ho trovato una classe Actionscript davvero ottima che ci permette di farlo.

L’ autore è Noel Billig.

Ho creato un esempio, vediamolo…

Leggi tutto

Share This Post Tags: , , , , ,

Articoli correlati

{ 0 commenti }

Abbiamo visto che la classe MovieClip di Flash CS4 ha la nuova proprietà z.

Vedremo anche come creare animazioni con tale proprietà ma oggi voglio scrivere su altre 2 nuove proprietà:

  • rotationX
  • rotationY

Queste due nuove proprietà gesticono le rotazioni sulle assi X, Y e si possono creare delle animazioni decisamente nuove rispetto alle versioni precedenti di Flash.

Il loro valore si estende da -180 a 180.

Valori negativi indicano il senso antiorario mentre i positivi il senso orario.

Tutti i valori al di fuori di questo range vengono aggiunti o sottratti da 360 per ottenere un valore entro il range.

Vediamo alcuni esempi.

Leggi tutto

Share This Post Tags: , , , , , ,

Articoli correlati

{ 0 commenti }

Qual’ è la prima cosa che mi salta all’ occhio guardando la reference della classe MovieClip di Flash CS4 ?

Naturalmente la proprietà z !

Con Flash CS3 abbiamo visto come simularla:

La grossa novità di Flash CS4 è che non dobbiamo più addentrarci in codici matematici alquanto difficili e che sicuramente ci frenavano dal continuare a creare animazioni che simulassero la terza dimensione.

La famosa asse z è stata implementata nella versione Actionscript 3.0 di Flash CS4 ed è semplice da utilizzare.

Questo è il primo semplice tutorial che mostra come utilizzare la proprietà z.

Leggi tutto

Share This Post Tags: , , , , , , ,

Articoli correlati

{ 0 commenti }

Alle volte capita di dover stampare il contenuto del nostro SWF su carta o su PDF.

la classe PrintJob di Actionscript 3.0

La classe giusta di Actionscript 3.0 è la PrintJob !

Mi è capitato proprio ieri con un cliente al quale ho realizzato una piccola applicazione.

Questa applicazione mostra delle immagini con delle descrizioni ed il cliente mi ha chiesto di aggiungere un’opzione, la quale permettesse all’ utente di stampare su carta o PDF ( qualora avesse Adobe Acrobat Pro ) l’ immagine e la descrizione.

Dato che ho ritenuto potrebbe servire ad altri, ecco che pubblico un semplice tutorial su come usare la classe PrintJob di Actionscript 3.0 .

Purtroppo però questa classe ha un bug ( https://bugs.adobe.com/jira/browse/FP-307 ) se utilizzata su MAC.

Funziona solo in locale, sul web non funziona.

Fate i vostri test e tenetemi al corrente dei vostri risultati !

Creo una FLA che salvo con nome “main.fla”.

Leggi tutto

Share This Post Tags: , , , , ,

Articoli correlati

{ 0 commenti }

Supponiamo di avere un Array di dati e che volessimo eliminarne gli elementi doppi che hanno lo stesso valore.

Ad esempio abbiamo recuperato da un DataBase dei dati riguardanti delle vendite di alcuni prodotti.
Questi prodotti sono diversi tra loro ed il cliente ci chiede di creare uno scroll che visualizza i prodotti più venduti.
Per fare ciò dobbiamo creare una funzione che controlla quali elementi dell’ Array sono uguali e quante volte sono presenti.

In pratica vogliamo ottenere un Array " puro " senza doppi valori.

Chi lavora con mySQL sà che potrebbe farlo benissimo con una query ma a noi serve farlo con Actionscript !

Come ?

Ho questo Array di valori che contiene ID di prodotti venduti recuperati dal DataBase:

1
var my_array:Array=new Array(45,23,23,3,76,5,3,23,5,8,8,8,8,12,12,3,4,9,10,12,13,19,23,5,6,2,2,2,2);

Creo la seguente funzione:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function getUniqueValues(originalArray:Array):Array
{
	var lookup:Array=new Array();
	var uniqueArr:Array=new Array();
	var num:int;
	for(var idx:int=0;idx < originalArray.length;idx++)
	{
		num=originalArray[idx];
		if(!lookup[num])
		{
			var obj:Object=new Object();
			obj.id=num;
			obj.count=0;
			uniqueArr.push(obj);
			lookup[num]=true;
		}
	}
	return(uniqueArr);
}

che mi restituisce un nuovo Array con elementi unici.

[Continua...]

Share This Post Tags: , , , ,

Articoli correlati

{ 0 commenti }

FlepStudio ha creato una nuova utilità gratuita per Flash CS3.

Si tratta di un semplice ” Dillo a un amico ” che permette di consigliare un url a conoscenti/amici dei vostri utenti.

Questa utilità invia una e-mail col nome dell’ utente ad un amico e conterrà l’ url della pagina in cui si trova l’ SWF e quindi avviserà il destinatario della mail di andare a quell’url in quanto consigliato.

In pratica, supponiamo che avete un blog, potete inserire l’ SWF a fine articolo e il gioco è fatto.

Provatela…

Leggi tutto

Share This Post Tags: , , ,

Articoli correlati

{ 0 commenti }

Zend è un framework PHP.

Zend Amf ci permette di comunicare da Flash al PHP senza dover utilizzare l’ XML.

Ad esempio, per interrogare un DataBase da Flash bisogna chiamare uno script PHP che esegue la query al DB e restituisce un output in formato XML.

Solo a quel punto Flash è in grado di visualizzare i dati del DB richiesti.

Invece, con Zend Amf si bypassa l’ XML.

In questo caso il PHP esegue la query al DB e restituisce i valori ( come ad esempio un Array ) direttamente a Flash.

Come ?

Usando la classe NetConnection di Actionscript 3.0 !

Questo tutorial mostrerà un semplice esempio di come interrogare un DataBase con Actionscript 3.0 e Zend.

Possiamo usare sia Flash CS3 sia Flash CS4.

Passo 1

Scaricare il framework Zend ( ZIP versione 1.7.0 ).

Requisiti necessari:

- PHP 5.1.4 o superiore

Leggi tutto

Share This Post Tags: , , , ,

Articoli correlati

{ 0 commenti }

E’ da un paio di giorni che sto utilizzando Flash CS4 e quindi esprimo quì le mie prime brevi considerazioni.

Premetto che il mio sistema operativo è MAC Leopard. 

La prima cosa che salta all’ occhio è l’ interfaccia in stile puramente Adobe, sembra di lavorare con Photoshop.

Mentre Flash CS3 secondo me aveva ancora qualche ricordo di Macromedia, Flash CS4 ha pannelli e colori tipicamente Adobe.

Selezioni e trascinamenti di pannelli sono molto più fluidi e naturali.

Interfaccia altamente personalizzabile.

Apprezzo molto il nuovo sistema di trascinamento per modificare i valori numerici.

Installando l’ Adobe Extension Manager mi ha importato automaticamente i componenti che avevo sulla versione precedente.

Una cosa che non mi piace è l’ Help che non si apre più in locale ma solo su web nel sito Adobe. Questo lo trovo alquanto lento per consultare la guida.

Nuovi componenti built-in ? No nessuno ( peccato ).

Possibilità di lavorare con Actionscript 2.0 ( che io sconsiglio ) e naturalmente Actionscript 3.0.

Inoltre possiamo salvare per versione Flash CS3 ma non per versione Flash 8.

Come templates built-in è rimasta solo la categoria Advertising.

Per quanto riguarda le Tween e animazioni su Timeline, Flash CS4 ha fatto sicuramente un passo avanti.

Infatti il Motion Editor e la nuova Timeline sono sicuramente le differenze sostanziali che spiccano rispetto alla versione CS3. 

Un Flash Designer apprezzerà molto queste nuove caratteristiche. 

Rimanete sintonizzati perchè ne vedremo delle belle !

Share This Post Tags: , , , ,

Articoli correlati

{ 3 commenti }

Quando una bitmap ( immagine ) viene ridimensionata usando i metodi scaleX e scaleY oppure width ed height, la stessa bitmap sembra aver cambiato le dimensioni ma realmente non è così.

Questo perchè la BitmapData dell’ immagine è rimasta tale, quindi il peso e la memoria sono i medesimi anche se avessimo rimpocciolito l’ immagine al 10% dell’ originale.

  

Per ridimensionarla realmente e quindi guadagnare in peso e memoria dobbiamo usare il metodo draw della classe BitmapData ( di cui abbiamo già visto un esempio ) e la classe Matrix.

Molto utile se dobbiamo crare delle anteprime alle immagini di una galleria.

I passi sono i seguenti:

  1. Recuperare la referente BitmapData della nostra Bitmap.
  2. Usare il metodo draw per creare una nuova BitmapData in versione scalata dalla BitmapData originale.
  3. Associare la nuova BitmapData alla Bitmap.

Ecco il codice:

1
2
3
4
5
6
7
8
9
var bitmapDataOriginale:BitmapData=bitmapOriginale.bitmapData;
var fattore:Number=0.5;
var nuovaLarghezza:Number=bitmapDataOriginale.width*fattore;
var nuovaAltezza:Number=bitmapDataOriginale.height*fattore;
var bitmapDataScalata:BitmapData=new BitmapData(nuovaLarghezza,nuovaAltezza,true,0xFFFFFFFF);
var matrice:Matrix=new Matrix();
matrice.scale(fattore,fattore);
bitmapDataScalata.draw(bitmapDataOriginale,matrice);
bitmapOriginale.bitmapData=bitmapDataScalata;
Share This Post Tags: , , , , ,

Articoli correlati

{ 0 commenti }

A volte ci capita di dover recuperare l’ url della pagina web in cui si trova il nostro SWF.
Actionscript 3.0 ci mette in grado di farlo con una semplice riga di codice.
Basta utilizzare la classe ExternalInterface che esegue un comando Javascript e recupera l’ URL della pagina.

Ecco il codice:

1
2
var pageURL:String=ExternalInterface.call('window.location.href.toString');
trace(pageURL);

DEMO

In questo caso ho chiamato la proprietà href della classe Location di Javascript con Actionscript.
Dato che la classe Location di Javascript ha altre proprietà, nella demo ho utilizzato anche hostname, pathname e protocol.

Inoltre ho recuperato anche i dati del browser dell’ utente tramite la classe Navigator di Javascript e le sue proprietà userAgent e platform.
Tutto questo con Actionscript 3 !

1
2
3
4
5
6
7
8
9
10
11
12
var pageURL:String=ExternalInterface.call('window.location.href.toString');
var pageHost:String=ExternalInterface.call('window.location.hostname.toString');
var pagePath:String=ExternalInterface.call('window.location.pathname.toString');
var pageProtocol:String=ExternalInterface.call('window.location.protocol.toString');
var userAgent:String=ExternalInterface.call('window.navigator.userAgent.toString');
var platform:String=ExternalInterface.call('window.navigator.platform.toString');
 
url_txt.text=pageURL;
hostname_txt.text=pageHost;
path_txt.text=pagePath;
protocol_txt.text=pageProtocol;
browser_txt.text=userAgent+"\n"+platform;

Share This Post Tags: , , , , ,

Articoli correlati

{ 0 commenti }