Loading:


Efekt animacji łańcucha w ActionScript 3

Przykład ukazuje efekt animacji elementów w jednym łańcuchu, reagującej na pozycję kursora myszy.

 

Kod buduje łańcuch z trzech elementów, które odwołują się do swojego rodzica lub kursora myszki (w przyapdku 1 elementu).

 

Wersja On-line:

 



Napisz Artykuł

Listing

//Kod dla pliku Lancuch.as

package
{
        import flash.display.Sprite;
        import flash.events.Event;
       
        public class Lancuch extends Sprite
        {
                private var pilka0:Pilka;
                private var pilka1:Pilka;
                private var pilka2:Pilka;
                private var odbicie:Number = 0.1;
                private var tarcie:Number = 0.8;
                private var grawitacja:Number = 5;
               
                public function Lancuch()
                {
                        init();
                }
               
                private function init():void
                {
                        pilka0 = new Pilka(20);
                        addChild(pilka0);
                        pilka1 = new Pilka(20);
                        addChild(pilka1);
                        pilka2 = new Pilka(20);
                        addChild(pilka2);
                        addEventListener(Event.ENTER_FRAME, onEnterFrame);
                }

               
                private function onEnterFrame(event:Event):void
                {
                        movePilka(pilka0, mouseX, mouseY);
                        movePilka(pilka1, pilka0.x, pilka0.y);
                        movePilka(pilka2, pilka1.x, pilka1.y);
                       
                        graphics.clear();
                        graphics.lineStyle(1);
                        graphics.moveTo(mouseX, mouseY);
                        graphics.lineTo(pilka0.x, pilka0.y);
                        graphics.lineTo(pilka1.x, pilka1.y);
                        graphics.lineTo(pilka2.x, pilka2.y);
                }
               
                private function movePilka(pilka:Pilka, targetX:Number, targetY:Number):void
                {
                        pilka.vx += (targetX - pilka.x) * odbicie;
                        pilka.vy += (targetY - pilka.y) * odbicie;
                        pilka.vy += grawitacja;
                        pilka.vx *= tarcie;
                        pilka.vy *= tarcie;
                        pilka.x += pilka.vx;
                        pilka.y += pilka.vy;
                }
        }
}


//Kod dla pliku Pilka.as

package {
        import flash.display.Sprite;
       
        public class Pilka extends Sprite {
                private var promien:Number;
                private var kolor:uint;
               
                public function Pilka(promien:Number=40, kolor:uint=0xff0000) {
                        this.promien = promien;
                        this.kolor = kolor;
                        init();
                }
               
                public function init():void {
                        graphics.beginFill(kolor);
                        graphics.drawCircle(0,0, promien);
                        graphics.endFill();
                }
        }
}


kontakt w sprawie miejsca



Dodano przez: divix
Ranga: Administrator serwisu Punktów: 38423
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-19 v.1.5 | design: diviXdesign & rainbowcolors