1 0 1 0 0 1 0 1
0 0 1 0 1 0 1 1
1 1 0 0 1 1 0 1
0 0 1 1 0 0 1 1
0 0 1 1 1 0 1 0
0 1 1 0 1 0 0 1
Domyślnie każda z cyfr jest niewidoczna. Alfa ustawione na 0%.
Założenia animacji są następujące. Mamy mieć dowolną ilość spływajacych w dół pasków (efekt ala kod matrixa), które rozświetlają tekst. Przykład dla pierwszej kolumny. Rozświetla się najwyższa cyfra 1. Po chwili rozświetla się kolejna w dół cyfra 0 a ta pierwsza nieco zanika. Potem kolejna itd.
Wiem jak to zrobić klatka po klatce. Pytanie czy istnieje możliwość rozświetlania gradientalnego w inny sposób np. poprzez AS? Udało mi się to zrobić w javascript, ale jest to cholernie wolne, mało wydajne i mulące. Kod wygląda tak:
<div style="position: relative; top: -2px; font-family: Tahoma; font-size: 11px; color: #1a1714; line-height: 12px;"> <div id="cyfry_gorne_linia_1"> </div> <div id="cyfry_gorne_linia_2"> </div> <div id="cyfry_gorne_linia_3"> </div> <div id="cyfry_gorne_linia_4"> </div> <div id="cyfry_gorne_linia_5"> </div> </div> <script type="text/javascript"> var pozycja_poziomo = new Array(); var pozycja_pionowo = new Array(); var ilosc_paskow = 5; function pozycja ( ) {ldelim} for ( i = 0; i < ilosc_paskow ; i++ ) {ldelim} if ( pozycja_pionowo[i] > 5 || pozycja_pionowo[i] == 0 || pozycja_pionowo[i] == undefined ) {ldelim} var los_poziomo = Math.round(Math.random()*(20)); var los_predkosc = i*1000; pozycja_pionowo[i] = 1; pozycja_poziomo[i] = los_poziomo; {rdelim} $('#cyfry_gorne_linia_' + pozycja_pionowo[i]).find('span').eq(pozycja_poziomo[i]).animate({ldelim} "color": "#bfb7ae" {rdelim}, 50, 'easeInOutSine', function ( ) {ldelim} $(this).animate({ldelim} "color": "#1a1714" {rdelim}, 3000, 'easeInOutSine'); return true; {rdelim}); pozycja_pionowo[i] = pozycja_pionowo[i]+1; {rdelim} setTimeout('pozycja ()', 50); {rdelim} pozycja ( 0 ); </script>
Przy użyciu frameworka jquery.
Dokładnie ten sam efekt chce uzyskac we flashu.