Mamy matrycę tekstu wyglądającą w taki sposób:

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:

  1. <div style="position: relative; top: -2px; font-family: Tahoma; font-size: 11px; color: #1a1714; line-height: 12px;">
  2. <div id="cyfry_gorne_linia_1">
  3. <span>1</span><span>0</span><span>0</span><span>1</span><span>1</span><span>1</span>
  4. </div>
  5. <div id="cyfry_gorne_linia_2">
  6. <span>0</span><span>1</span><span>0</span><span>0</span><span>0</span><span>1</span>
  7. </div>
  8. <div id="cyfry_gorne_linia_3">
  9. <span>0</span><span>0</span><span>1</span><span>1</span><span>0</span><span>1</span>
  10. </div>
  11. <div id="cyfry_gorne_linia_4">
  12. <span>1</span><span>0</span><span>1</span><span>0</span><span>0</span><span>1</span>
  13. </div>
  14. <div id="cyfry_gorne_linia_5">
  15. <span>0</span><span>1</span><span>0</span><span>1</span><span>0</span><span>1</span>
  16. </div>
  17. </div>
  18.  
  19. <script type="text/javascript">
  20.  
  21. var pozycja_poziomo = new Array();
  22. var pozycja_pionowo = new Array();
  23.  
  24. var ilosc_paskow = 5;
  25.  
  26. function pozycja ( )
  27. {ldelim}
  28. for ( i = 0; i < ilosc_paskow ; i++ )
  29. {ldelim}
  30. if ( pozycja_pionowo[i] > 5 || pozycja_pionowo[i] == 0 || pozycja_pionowo[i] == undefined )
  31. {ldelim}
  32. var los_poziomo = Math.round(Math.random()*(20));
  33. var los_predkosc = i*1000;
  34.  
  35. pozycja_pionowo[i] = 1;
  36. pozycja_poziomo[i] = los_poziomo;
  37. {rdelim}
  38.  
  39. $('#cyfry_gorne_linia_' + pozycja_pionowo[i]).find('span').eq(pozycja_poziomo[i]).animate({ldelim}
  40. "color": "#bfb7ae"
  41. {rdelim}, 50, 'easeInOutSine', function ( ) {ldelim} $(this).animate({ldelim} "color": "#1a1714" {rdelim}, 3000, 'easeInOutSine'); return true; {rdelim});
  42.  
  43. pozycja_pionowo[i] = pozycja_pionowo[i]+1;
  44. {rdelim}
  45.  
  46. setTimeout('pozycja ()', 50);
  47. {rdelim}
  48.  
  49. pozycja ( 0 );
  50.  
  51. </script>


Przy użyciu frameworka jquery.

Dokładnie ten sam efekt chce uzyskac we flashu.