Flash i dynamiczna zmiana kolorów

Jak wykonać zmianę barw w danym klipie flashowym bez ingerencji w strukturę pliku graficznego? Najprościej oczywiście w ActionScript.
np. Mając osadzony element graficzny „element1” na ścieżce timline:

_root.klip1.klip2.element1

W tym przypadku element1 jest zagnieżdżony w klipie klip2, który z kolei siedzi sobie w klipie flashowym 1 który z kolei znajduje się na głównej ścieżce timeline „_root”.
Najprościej zrobić można to w sposób następujący:

_root.klip1.klip2.element.onRelease = function(){
 var newColor = new Color(_root.klip1.klip2.element1);
 newColor.setRGB(0x333333)
 }
<a href="http://linux.az.pl/wp-content/uploads/2011/08/as_setColor.jpg"><img class="aligncenter size-full wp-image-434" title="as_setRGB" src="http://linux.az.pl/wp-content/uploads/2011/08/as_setColor.jpg" alt="setRGB - set color to clip" width="600" height="306" /></a>

Cała funkcja wywoływana jest po najechaniu myszą na element1, dzięki zastosowaniu handlera onRollower. Taki zapis, umożliwia nam tworzenie skryptu na głównej listwie czasowej programu flash, bez konieczności przypisywania skryptów do poszczególnych elementów graficznych klipu. Daje nam to znacznie uproszczoną strukturę dokumentu, dzięki czemu tworzony kod jest bardziej przejrzysty.

new Color tworzy nowy obiekt color w oparciu o element „element1”, po czym na nowo utworzonym obiekcie newColor wywołana zostaje funkcja setRGB z parametrem 0x333333 który to nadaje mu kolor ciemnoszary…

 

A tak przy okazji, gdyby ktoś pytał w jaki sposób pobrać kolor danego klipu… całkiem podobnie…

 var newColor = new Color(_root.klip1.klip2.element1);
 newColor.getRGB();

Leave a Reply