Loading:


    Animowana oraz powiększana galeria zdjęć w ActionScript 3.0

    Skrypt tworzy galerię obrazków, animowaną po naciśnięciu przycisku od 1 do 6, dla każdego obrazka. Galeria jest w pełni obrotowa wobec ułożenia pozycji myszki.

     

    Wersja On-line:

     

     

    Aby skrypt zadziałał potrzebujemy 6 klipów filmowych o nazwach foto1_mc .... foto6_mc, które znajdują się w klipie o nazwie pojemnik_mc. Każdy z klipów osobnego zdjęcia powinien posiadać klip filmowy o nazwie powiększ_mc.

     

    Kod dla pliku FotoPanel.AS jest ukazany na dole, należy zaimportować ten plik do pliku FLA.

     

    Ten przykład wykorzystuje biblioteke Tween Lite Basic, którą można pobrać tutaj: [ pobierz ]



    Napisz Artyku³

    Listing

    package
    {
            import flash.display.*;
            import flash.events.*;
            import gs.*;
            import gs.easing.*;
           
            public class FotoPanel extends MovieClip
            {
                    private var zaznaczony:MovieClip;
                   
                    public function FotoPanel():void
                    {
                            inicjalizacja();
                            addEventListener(Event.ENTER_FRAME, nawigacja);
                    }
                   
                    private function inicjalizacja():void
                    {
                            var ilosc:int = pojemnik_mc.numChildren;
                            for (var i:int = 0; i<ilosc; i++)
                            {
                                    var aktualny:MovieClip = MovieClip(pojemnik_mc.getChildAt(i));
                                    aktualny.buttonMode = true;
                                    aktualny.lokalizacja = [aktualny.x, aktualny.y];
                                    aktualny.addEventListener(MouseEvent.ROLL_OVER, onOver);
                                    aktualny.addEventListener(MouseEvent.ROLL_OUT, onOut);
                                    aktualny.addEventListener(MouseEvent.CLICK, onClick);
                            }
                    }
                   
                    private function onOver(e:MouseEvent):void
                    {
                            var aktualny:MovieClip = MovieClip(e.currentTarget);
                           
                            if (aktualny != zaznaczony) {
                                    TweenLite.to(aktualny.powieksz_mc, 0.2, {
                                                                                    alpha:1
                                                             });
                            }
                    }
                   
                    private function onOut(e:MouseEvent):void
                    {
                            var aktualny:MovieClip = MovieClip(e.currentTarget);
                           
                            TweenLite.to(aktualny.powieksz_mc, 0.2, {
                                                                                            alpha:0
                                                                     });
                    }
                   
                    private function onClick(e:MouseEvent):void
                    {
                            var aktualny:MovieClip = MovieClip(e.currentTarget);

                            if(zaznaczony == null)
                            {
                                    powieksz(aktualny);
                            }
                            //nacisniecie powiększonego juz zdjęcia
                            //czyli pomnijeszenie go
                            else if(zaznaczony == aktualny)
                            {
                                    TweenLite.to(aktualny, 0.5, {
                                                                    scaleX:1,
                                                                    scaleY:1,
                                                                    x:zaznaczony.lokalizacja[0],
                                                                    y:zaznaczony.lokalizacja[1],
                                                                    ease:Expo.easeInOut,
                                                                    onComplete:function(){zaznaczony=null;}
                                                     });
                            }
                            //klikniecie na inny obrazek podczas gdy już mamy
                            //otwarty jeden obraz
                            else
                            {
                                    TweenLite.to(zaznaczony, 0.5, {
                                                                    scaleX:1,
                                                                    scaleY:1,
                                                                    x:zaznaczony.lokalizacja[0],
                                                                    y:zaznaczony.lokalizacja[1],
                                                                    ease:Expo.easeInOut,
                                                                    onComplete:powieksz,
                                                                    onCompleteParams:[aktualny]
                                                     });
                            }
                    }
                   
                    private function powieksz(aktualny:MovieClip):void
                    {
                            zaznaczony = aktualny;
                            pojemnik_mc.addChild(aktualny);
                            //aktualny.enlarge.alpha = 0;
                            TweenLite.to(aktualny, 0.5, {
                                                                    scaleX:2,
                                                                    scaleY:2,
                                                                    x:0,
                                                                    y:0,
                                                                    ease:Expo.easeInOut
                                                     });
                    }
                   
                    private function nawigacja(e:Event):void
                    {
                            //pobieranie procentowej nawigacji myszki do sceny głównej
                            var dystansX:Number = mouseX / 450;
                            var dystansY:Number = mouseY / 300;
                           
                            //określa mc, czas, rotacje maksymalną pomiędzy -70 a 70 stopni
                            TweenLite.to(pojemnik_mc, 2, {
                                                                                    rotationY:-70+(140*dystansX),
                                                                                    rotationX:70-(140*dystansY),
                                                                                    ease:Expo.easeOut
                                                     });
                    }
            }
    }
     




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