Loading:

Ferie zimowe - 3 za 2

Kołowy preloader w ActionScript 3.0

Opis

 

Skrypt tworzy kołowy preloader kręcący się wokół siebie. Preloader ma przezroczystość na końcu paska, który symuluje fading podczas obrotu.

 

Dostępne parametry

 

$thickness -  grubość paska

$color - kolor paska

$radius - wielkość koła

$clockwise - kierunek kręcenia się

$numCircles - ilość malych kółek z których jest zrobiony pasek

$speed - prędkość poruszania się

 

Przykład użycia


var a = new CirclePreloader(4, 0x1A8AD5, 20, true, 60);
a.x = 100;
a.y = 100;
addChild(a);



Napisz Artykuł

Listing

package
{
       
        import flash.display.Sprite;
        import flash.events.Event;

       
        /**
         * ...
         * @author
         */


        public class CirclePreloader extends Sprite
        {                              
                        private var container:Sprite
                        private var circles:Array;
                        private var speed:Number;
               
                public function CirclePreloader($thickness:uint=4,$color:uint=0xcccccc,$radius:uint=20,$clockwise:Boolean=true,$numCircles:uint=35,$speed:Number=0.05):void
                {
                        speed = $speed;
                        var i:uint
                        var radians:Number = (360 / $numCircles) * Math.PI / 180;
                         
                        container = new Sprite()
                        addChild (container)
                        container.cacheAsBitmap=true
                        circles = new Array();
                        for (i = 0; i < $numCircles; i++)
                        {
                                var circle=new Sprite()
                                container.addChild(circle)
                                circle.graphics.beginFill($color,1)
                                circle.graphics.drawCircle(0,0,$thickness)
                                circle.graphics.endFill()
                                circles.push(circle)
                                circle.x = Math.sin(radians * i) * $radius;
                                circle.y =  Math.cos(radians * i) * $radius;
                                circle.alpha = $clockwise?1 - i * (1 / $numCircles):i * (1 / $numCircles);
                                addEventListener(Event.ENTER_FRAME,onEnter)
                       
                        }
                }       
                private function onEnter(e:Event):void {
                        for each(var item in circles)   
                        {
                                if (item.alpha <= 0)
                                {
                                        item.alpha = 1;
                                }
                                item.alpha -= speed;
                        }
                }

                public function destroy():void {
                        removeEventListener(Event.ENTER_FRAME, onEnter)
                        while(container.numChildren)container.removeChildAt(0)
                        removeChild(container)
                        container=null
                }
        }
       
}
 


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=12&t=12523

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: divix
Ranga: Administrator serwisu Punktów: 38319
Komentarze użytkowników
    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-17 v.1.5 | design: diviXdesign & rainbowcolors