how to avoid flikering button problem on Flash

From the earliest versions of Flash sometime we experienced this simple problem: - using MovieClips as Buttons and scaling them as rollover/rollout effect we got that ugly flickering effect.-
Today I read a very long tread about designers in serarch of some solution for this old issue. Since I didn't found an answer that satisfies me and since is really easy avoiding this problem I wrote this simple function:
function addButtonEvent(btn:DisplayObject):void {
 MovieClip(btn).buttonMode = true;
 MovieClip(btn).mouseChildren = false;
 var square:Sprite = new Sprite();
 square.graphics.beginFill(0x000000);
 var p = btn.getRect(btn.parent);
 square.graphics.drawRect(p.x, p.y, p.width, p.height);
 btn.parent.addChild(square);
 square.visible = false;
 MovieClip(btn).hitArea = square;
   
 btn.addEventListener (MouseEvent.MOUSE_OVER, blinkOver);
 btn.addEventListener (MouseEvent.MOUSE_OUT, blinkOut);
}
  
function blinkOver(e:MouseEvent = null) {
 Tweener.addTween(e.target, { scaleX:1.08, scaleY:1.08,time:.3 } );
}
  
private function blinkOut(e:MouseEvent  = null) {
 Tweener.addTween(e.target, {scaleX:1, scaleY:1,time:.1 } );
}

As you can see the tip is to create a static rectangle over the MovieClip and using it as hitArea.
You just need to call the addButtonEvent function in this way:

addButtonEvent(myMovieclip);

(super simple!!!) Note that for the scaling easing I used Caurina tweener

Allowed characters number and disabling textfield scrolling

How can we do if we have an "input" textfield and we wish to bind the max characters without making our textfield scrolling?
Think for example that we've only 4 visible lines for a textField t. How to prevent that users will write or just paste more text overfolwing on line 5?

below the solution I adopted:

1 I add a custom textfield with some height;
the first trouble is how many line the textfield is if this text is empty? (i just add a recursive function for understand this) check at getLastVisibleLine.
2 I slice each character under the last visible line.
package
{
    import flash.text.TextField;
    import flash.text.TextFieldType;
    import flash.text.TextFormat;
    import flash.events.Event;
    import flash.events.TextEvent;
    
    public class TextFieldUtil extends Sprite {
        
        public function TextFieldUtil()    { }
        
        //undestand how many lines we can insert in a textField without scrolling
        public static function getLastVisibleLine(t:TextField):int {
            t.type = TextFieldType.INPUT;
            var current_string:String = t.text;
            t.text = "";
            var l:int = 0;
            var scrld:Boolean = false;
            t.addEventListener(Event.SCROLL, checkScrl);
            function checkScrl(e:Event) {
                e.target.scrollV = 0;
                t.text = current_string;
                scrld = true;
            }
            while (scrld == false) {
                l++
                t.appendText("\n");
            }
            t.removeEventListener(Event.SCROLL, checkScrl);
            return l;
        }
        
        public static function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField {
            var t:TextField = new TextField();
            t.type = TextFieldType.INPUT;
            t.mouseWheelEnabled = false
            t.wordWrap = true;
            t.multiline = true;
            t.x = x;
            t.y = y;
            t.width = width;
            t.height = height;
            //t.background = true;
            //t.border = true;
            var visiblesLines:int = getLastVisibleLine(t);
            
            t.addEventListener(Event.CHANGE, function (e:Event) { // lock text insertion and delete exceeding characters.
                var t:TextField = e.target as TextField;
                if (t.numLines > visiblesLines)    {
                    t.type = "dynamic";
                }
                while (t.numLines > visiblesLines){
                    var current_string:String = t.text;
                    t.text = current_string.slice(0, -1);
                }
                t.type = "input"; 
            });
            
            return t;
        }
    }
}
I wrote also a version with styles and special textFormat. Maybe I'll post in the future.

Jingle bells - Disney Advent Calendar


Advent Calendar
Here some screenshot of the latest job I did in Disney. It's an Advent calendar, that kind of Christmas gadgets... For each day you'll find something. It's made using papervision and the performance optimization was a terrible activity. We localized it for Italy, Spain, France and United Kingdom. I hope you'll enjoy it. My favorite days are 6 and 19 December, but you have to wait for see what I mean!
Ho catturato qualche schermata dell'ultimo progetto che ho concluso. Il classico calendario dell'avvento, costruito come un ancora più classico carosello. Ogni giorno si clicca e si trova qualcosa. Regali, sconti, e tutto quello che siamo riusciti a strappare ai nostri colleghi dell'area publishing, film e videogames. L'ho sviluppato usando Papervision. L'ottimizzazione è stata un'attività ostica come al solito. Qualsiasi cosa fai ed inevitabilmente fonderai la cpu del tuo computer. Alla fine però mi ritengo abbastanza soddisfatto del lavoro. Ovviamente i sorgenti delle classi principali sono a disposizione.
Vai al calendario

TESSILE OFFICINA - another job is over


Sfrutto ancora questo spazio per segnalare un altro lavoro concluso durante il mio tempo "libero". Questa volta si tratta di Tessile Officina, ovvero un laboratorio che produce tessuti unici di altissima qualità.
http://www.tessileofficina.it/
Questo progetto andrà ancora rimaneggiato e sistemato in alcune parti, ma nel complesso posso ritenermi soddisfatto. Le soluzioni tecniche più interessanti risiedono nel passaggio fra video secondari e video primario, il cui caricamento prosegue in ogni momento durante la visualizzazione del sito, la gallery abbastanza carina in cui ho imitato i movimenti meccanici del telaio, e il "layout liquido" su tutte le pagine, che m'è costato non poca fatica.
Dopo una lunghissima assenza su queste pagine, rieccomi a "spammare" l'ultima mia "fatica" per gli amici della Disney. Questa volta si tratta di una gallery avventurosa sviluppata per l'uscita di UP, il nuovo film Disney Pixar.

burloni, false notizie e mancate smentite.

Some days ago I got an interesting article. An older Nokia 1100 has been bought from hackers, because this telephone has the elusive ability to clone a SIM remotely, which were then used to steal bank codes TAN, (that’s sort of temporary password for access to current accounts). The news is that this phone was sold at $ 25,000, and… I already have this old phone, So that, I thought... bang!!! Now I sell it and I buy a car. Needless to say, the news is the newest hoax running on the web.
Here you can see something about...
Do you Remember I-Doser? The virtual sound drug? Obviously this was a hoax, but this hoax diddles our “Guardia di Finanza”, (the Italian customs officer)... really a bad impression for our police!!!
And what about Bonsai kittens? "Ok better don’t say more about ... Ah, the mobile phones that baked the popcorn ... Perhaps there is still someone that believe on this.
Maybe it works only with nokia 1100 ...
These stories are 'ridiculous', 'plausible and not', and sometimes harmless, but these stories are quite danger, however, that aura of non-official gives an irrational truth, as we see amateur video of phones cooking popcorn. It seems so amateur that it seems real. In addition to, the unofficial news may not match official denial, so credulous people will never understand.
Qualche giorno fa mi sono imbattuto in una notizia interessante. Ovvero che un vecchio modello di Nokia 1100 è diventato ricercatissimo da alcuni pirati informatici, per la fantomatica capacità di clonare SIM a distanza, che poi venivano usate per rubare i codici TAN bancari, sorta di password provvisorie per l'accesso ai conti correnti. La notizia sta nel fatto che il cellulare veniva venduto anche a 25.000 dollari, e dato che io possiedo proprio questo obsoleto telefonino ho pensato... che colpaccio adesso me lo vendo e mi compro una macchina. Inutile dire che la notizia è l'ennesima bufala che gira nel web.
eccola qua
Vi ricordate I-doser? Una fantomatica droga sonora virtuale su cui si erano pronunciate le più alte sfere della Guardia di Finanza, mettendoci in guardia dai terribili "toni binaurali"... Ovviamente anche questa era una bufala, il bello è che ci sono cascati anche i paladini dell'antifrode, -che figura da gonzi!-
Vogliamo parlare poi dei gatti in bottiglia? -Ma possiamo pure evitarlo...- Se per qualche assurda ragione non sapete di che parlo, andate a vedere qui.
Ah, già i telefonini che cuocevano i popcorn... Forse c'è ancora qualcuno che ci crede.
Forse funziona solo con i nokia 1100...
Ho visto che gli americani hanno trovato una parola anche per queste bufale, un po' ridicole, un po' innocue, un po' verosimili e un po' no, le chiamano HOAX.
Un pericolo queste notizie ce l'hanno però, ovvero che l'aura di non ufficialità della notizia ne conferisce una irrazionale veridicità; lo vediamo molto bene nei video dei telefonini col raggio della morte, e della cottura del popcorn. Sembrano così amatoriali che paiono veri. Inoltre a notizia non ufficiale non può corrispondere smentita ufficiale, quindi i creduloni, non avranno mai modo di ricredersi.

The 11Th Independent Games Festival

Ho sempre sognato di sviluppare un progetto di videogame indipendente; qualche anno fa ci ho anche provato...

Purtroppo la mia nazionalità e i miei limiti intellettivi mi hanno provvisoriamente lasciato al palo, e quando vedo che oltreoceano si possono realizzare idee innovative senza grosse risorse economiche non posso far altro che inchinarmi e dire:
-non credevo fosse possibile-

In Italia non c'è una comunità di sviluppatori indipendenti, né scuole o corsi, né un mercato locale... Ecco che ci si spiega perché i pochi sviluppatori italiani producono esclusivamente giochini per iPhone e iPod che distribuiscono con iTunes. Non vorrei generalizzare, perché qualche eccezione c'è, ad esempio all'IGN del 2008 c'era Bloody Monkey un gruppo di 3 ragazzi scoperto casualmente:

http://www.bloodymonkey.com/

Non li conosco ancora personalmente, ma mi piacerebbe allacciare un contatto.

Tornando al discorso iniziale, in America, qualche canale di promozione per gli sviluppatori indipendenti c'è; canale condiviso e sfruttato anche da società europee, ne ho scovata anche una di Zurigo, che sarebbe a due passi... Ma noi italiani siamo quasi assenti.

Già un mese si è concluso dall ultimo IGN (Independent Games Festival) 2009, il sito ufficiale della manifestazione è:

http://www.igf.com/

Ovviamente io non ero lì (a San Francisco), purtroppo, non so nulla della California, so solo che da lì arrivano un mucchio di nuove idee, e che la Silicon Valley, assomiglia alla nostra bigia Brianza, anzi, guardando le foto su Google Earth, assmomiglia ad una gigantesca Brianza nel cuore della Sicilia.

Il festival, prodotto da Game Developer magazine, Gamasutra.com e da Game Developers Conference, nasce nel 1998 per promuovere innovazione e per individuare e far incontrare i migliori game developers indipendenti.

I giochi, per quanto ho potuto vedere sono quasi tutti dei casualgame, realizzati da team ridottissimi, mediamente composti da 3-4 persone, dove elementi di innovazione, arte visionaria e nostalgia per gli albori dei videogames da "cassone" si fondono assieme in esperimenti, a volte interessanti.

Il gioco più carino su cui ho appena messo le mani si chiama Cortex Command scaricabile gratuitamente dal sito della Data Realms, società che lo sviluppa.

Ho appena iniziato a giocarci, e non c'ho capito quasi nulla, quindi, un commento sul gameplay, al momento è impossibile. La cosa che mi colpisce maggiormente è la resa della fisica 2D, che sembra influenzare tutto: proiettili, schizzi di sangue, fumo, polvere, sabbia, insomma qualsiasi cosa. Il tutto inserito in una grafica che ricorda un po' il mitico Metal Slug. In più c'è la promessa di avere uno scenario "fully destructible", così da realizzare quella catarsi che cerchiamo quando bestemmiamo su avventure o giochi nei quali è necessario risolvere rompicapi impossibili per aprire porte o passaggi bloccati. In Cortex Command, in queste situazioni sembra sufficiente usare missili più potenti di qualche megatone.

Qua sotto metto qualche animazione presa direttamente dal sito.