Categoria ‘Actionscript 3.0’


Argomenti variabili e di default in Javascript, Actionscript e PHP

Chi sviluppa sa bene che una delle caratteristiche delle funzioni (function () ) è quella di avere o meno degli argomenti di input. Può capitare, a volte, di dover scrivere una funzione che, in base ai parametri di input, si comporta in modo differente (in programmazione OO troviamo questo comportamento indicato come poliformismo). I parametri variabili (varargs), introdotti già all’epoca del C e presenti di default nella classica dichiarazione del main:

1
int main(int argc, char *argv[]);

Continua...

Papervision3D: gestire le Bitmap come in FIVe3D

Partendo dall’esempio mostrato in FIVe3D: trattare le Bitmap, vediamo come realizzare il medesimo effetto utilizzando Papervision3D 2.0 (Great White), così da proseguire ad analizzare il funzionamento di questa beta Great White.

Loading Flash Player...

Continua...

FIVe3D: trattare le Bitmap

Con la release 2.1 di FIVe3D è possibile manipolare anche oggetti Bitmap, in modo da superare l’iniziale limite di questa libreria del solo vettoriale. Se inseriamo una Bitmap in libreria e la esprotiamo in modo da poterne creare un’instanza dinamica tramite Actionscript, diventa facile creare un oggetto Bitmap3D e ruotarlo a nostro piacimento:

Loading Flash Player...

Continua...

FIVe3D: core 3D per Actionscript 3.0

FIVe3D (Flash Intercative Vector-based) è un’interessante progetto reazlizzato da Mathieu Badimon. Ne avevo preso visione già qualche tempo fa, quando Actionscript 3.0 ancora non era disponibile. È di questi giorni, invece, un aggiornamento del package alla versione 2.1.

Loading Flash Player...

Continua...

Flash 10 Astro: 3D nativo vs Papervision3D

Adobe ha annunciato da tempo alcune nuove features (Hydra per i filtri grafici evoluti e una migliore gestione del testo) che saranno presenti nella prossima release di Flash. In particolare ha destato interesse l’introduzione del 3D (l’asse Z), la capacità quindi di Flash di manipolare oggetti in un mondo tridimensionale. La stessa Adobe precisa che si tratta in realtà di un 2.5D, come spesso viene indicato, una specie di “simulazione” di un vero e proprio mondo tridimensionale. Infatti si può ruotare un simbolo Flash introno all’asse z ma, nonostante questo, il simbolo rimane piatto nello spazio tridimensionale! Un po’ quello che accade quando si distorce una bitmap in Photoshop! Tutto questo, quindi, non ha niente a che fare con progetti come Papervision3D, Away3D, Sandy e molti altri, che contengono tutta una serie di features (camera, scene, texture, etc…) assenti “nell’Astro nascente”. In sostanza Adobe non vuole assolutamente sovrapporsi a progetti 3D di terze parti ma solo fornire uno strato nativo per migliorare le prestazioni di librerie 3D già esistenti.

Comunque sia la cosa importante è che Adobe sembrerebbe orientata ad introdurre queste funzionalità tridimensionale ad un alto livello, non aiutando affatto librerie complete e complesse come Paparevision3D. Da tempo, infatti, si usano sostanzialmente due tecniche per espandere le funzionalità di Flash: API di basso livello e API di alto livello.

Le API di basso livello vengono normalmente scritte in C/C++ e fanno parte del core di Flash, compilate quindi all’interno del Player. Questo metodo se da un lato garantisce una maggiore velocità di esecuzione, dall’altro aumenta le dimesioni del Player Flash.

Le API di alto livello sono invece scritte in Actionscript e non appartengono al core nativo. In altre parole sono del tutto simili a librerie che potremmo scrivere noi, con la differenza che vengono fornite direttamente da Adobe. Come accade con il rilascio di Flash 5, la prima introduzione dell’oggetto XML fu realizzata completamente in Actionscript, creando non pochi problemi di performance!
Il vantaggio è che librerie di questo tipo vengono compilate solo quando necessarie e scaricate quindi all’interno del file SWF. Come accade oggi con l’oggetto Tween (vedi fl.motion.* o fl.transition.*) interamente scritto in Actionscript (anche per questo sono nati progetti paralleli come Tweener (caurina.transitions.Tweener) o TweenerMax.
Proprio per questo motivo la comunità Papervision non è del tutto contenta della scelta di utilizzare API di alto livello, in pratica dello stesso “livello” di Papervision3D. Questo, infatti, potrebbe non influire sulle future performance di librerie 3D.

Comunque andrà a finire, la cosa importante è che Papervision3D non è morto, anzi!

Continua...

Flash CS3: template per la classe Documento

Questo è il template che uso per la classe Documento di un generico progetto Flash CS3:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package {
    /*
    ** @name        : MioDocumento.as
    ** @description : [descrizione]
    ** @author      : =undo=
    ** @web         : http://www.undolog.com
    ** @email       : g.fazioli@undolog.com - g (dot) fazioli (at) undolog (dot) com
    ** @ver         : 1.0
    */


    import flash.display.*;
    import flash.events.*;

    public class MioDocumento extends MovieClip {
        /*
        ** @private var
        */


        public function MainFive():void {
            addEventListener(Event.ADDED_TO_STAGE, init );
        }

        /*
        ** @name           : init()
        ** @description    : trigged when added to stage
        */

        protected function init(e:Event):void {
            // todo
        }
    } // constructor
} // package

Continua...

Piclens in Flash con Papervision3D 2.0

Piclens È possibile realizzare l’effetto dell’add-on di FireFox Piclens in Flash? Penso proprio di si! Grazie a Papervision3D è possibile avvicinarsi molto allo stesso effetto. Questo che presento è un prototipo di cui non posso – per ora – rendere disponibile il codice. Tuttavia è interessante notare quanto sia verosimile l’effetto. L’immagine che vedete ripetuta 100 volte è incapsulata all’interno del filmato SWF e le sue dimensioni sono di 256×256 (PNG 24bit trasparente). In alternativa è molto semplice leggere una lista di immagini da un file XML, cosa che ho già fatto in un altro demo. In questo prototipo ho utilizzato Adobe Flash CS3, Actionscript 3.0 e la versione 2.0 di Papervision3D (GreatWhite).

Loading Flash Player...

Continua...

Snipplr code 2.0: frammenti (snipp) di codice utile

Snipplr Era da tempo che volevo segnalare questo utilissimo servizio dedicato al mondo della programmazione. Snipplr (code 2.0) è un vero e proprio aggregatore o repository di frammenti di codice utili. È possibile registrarsi gratuitamente ed inviare le proprio porzioni di codice e, soprattutto, usufruire dei tantissimi snipp già presenti su sito. I linguaggi trattati sono tantissimi (Actionscript, ASP, C#, MatLab, PHP, Rails, SVN, etc…), tutti ben ordinati e catalogati. È possibile anche installare un comodo plugin per WordPress in grado di visualizzare sul nostro blog un snipp-code tramite il suo id univoco.

Continua...

Leggere parametri Namespace da un file XML in Actionscript 3.0

Immaginiamo di avere un file XML che ad un certo punto contiene la seguente riga:

1
2
...
<media :thumbnail url="thumbs/pic10.jpg" type="image/jpeg"/>

Come leggo, ad esempio, l’attributo url in Actionscript 3.0?

Se l’XML fosse stato questo:

1
2
...
<immagine url="thumbs/pic10.jpg" type="image/jpeg"/>

Ottenuto il puntatore a &lt;immagine/&gt; (imgptr) sarebbe stato sufficiente:

1
trace ( imgptr.@url );

Nel caso &lt;media:thumbnail/&gt;, invece, bisogna aggiungere:

1
2
var mediaNS:Namespace = myXML.namespace("media")
trace( myXML.mediaNS::thumbnail.@url );

Continua...

Actionscript 3.0: simulare l’evento onReleaseOutside

Con Flash CS3 e Actionscript 3.0 sono state riviste molte cose tra cui la presenza dell’evento onReleaseOutside. Quest’ultimo, come altre tante cosine, è stato eliminato senza una vera e propria ragione e senza una vera e propria alternativa. Nella documentazione ufficiale di Actiobscript 3.0, nella sezione Migrazione da ActionScript 2.0, cercando per onReleaseOutside viene indicato:

Continua...



Stop SOPA