Loading:


    Karuzela 3d w ActionScript 2.0 + XML - wersja zaawansowana

    7. Posumowanie kodu

     

    Cały kod, dla łatwości, został spisany w jednym miejscu.



    Dalsza czê¶æ: 1 2 3 4 5 6 7
    Napisz Artyku³

    Listing


    /////////////////////////////////////////////
    //////////// KONTROLER SKRYPTU /////////////
    ///////////////////////////////////////////
    //Określ dostęp do pliku XML /////////////
    //////////////////////////////////////////
    var sciezka_do_pliku_XML = "obrazki.xml";
    ///////////////////////////////////////////
    //Określ parametry dla karuzeli ///////////
    //////////////////////////////////////////
    var szerokoscKaruzeli:Number = 230; //////
    var wysokoscKaruzeli:Number = 55; ///////
    var predkosc:Number = 0.05;  ////////////
    var perspektywa:Number = 130; //////////
    var przyspieszenie:Number = 1500; //////
    //skrypt pobrany ze strony: http://Funkcje.net

    //////////////NIE DO EDYCJI /////////////////
    import mx.utils.Delegate;
    import mx.transitions.Tween;
    import mx.transitions.easing.*;

    var iloscProduktow:Number;
    var centrumX:Number = Stage.width / 2;
    var centrumY:Number = Stage.height / 2;
    var home:MovieClip = this;
    var procent:Number;
    var wew_procent:Number;
    var i:Number = 0;
    paragraf_txt._alpha = 0;

    var opis_mc:MovieClip = this.attachMovie("opis", "opis", 10000);
    opis_mc._alpha = 0;

    var xml:XML = new XML();
    xml.ignoreWhite = true;

    xml.onLoad = function() {
            var produkty = this.firstChild.childNodes;
            iloscProduktow = produkty.length;
           
            for(var i=0; i<iloscProduktow; i++) {
                    var produkt = home.attachMovie("ikona","ikona"+i,i+1);
                    produkt.kat = i * ((Math.PI*2)/iloscProduktow); //kąt
                    produkt.onEnterFrame = poruszanie;
                    produkt.opisText = produkty[i].attributes.opis;
                    produkt.ikona_mc.szablon_mc.loadMovie(produkty[i].attributes.adres);
                    produkt.odbicie_mc.szablon_mc.loadMovie(produkty[i].attributes.adres);
                   
                    produkt.odnosnik = produkty[i].attributes.odnosnik;
                   
                    produkt.ikona_mc.onRollOver = najechanie;
                    produkt.ikona_mc.onRollOut = zjechanie;
                    produkt.ikona_mc.onRelease = klikniecie;
                   
            }
    }

    function najechanie() {
            home.opis_mc.opis_txt.text = this._parent.opisText;
            home.opis_mc._x = this._parent._x;
            home.opis_mc._y = this._parent._y - this._parent._height/2;
            home.opis_mc.onEnterFrame = Delegate.create(this, loop);
            home.opis_mc._alpha = 100;
    }

    function zjechanie() {
            delete home.opis_mc.onEnterFrame;
            home.opis_mc._alpha = 0;
    }

    function klikniecie() {
            for (var i=0; i<iloscProduktow; i++) {
                    var produkt:MovieClip = home["ikona"+i];
                    produkt._xPozycja = produkt._x;
                    produkt._yPozycja = produkt._y;
                    produkt.skala = produkt._xscale;
                   
                    delete produkt.ikona_mc.onRollOver;
                    delete produkt.ikona_mc.onRollOut;
                    delete produkt.ikona_mc.onRelease;
                    delete produkt.onEnterFrame;
                    if(produkt != this._parent) {
                            var tw:Tween = new Tween(produkt, "_xscale", Strong.easeOut, produkt._xscale, 0, 1, true);
                            var tw2:Tween = new Tween(produkt, "_yscale", Strong.easeOut, produkt._yscale, 0, 1, true);
                            var tw3:Tween = new Tween(produkt, "_alpha", Strong.easeOut, 100, 0, 1, true);
                    } else {
                            var tw:Tween = new Tween(produkt, "_xscale", Strong.easeOut, produkt._xscale, 100, 1, true);
                            var tw2:Tween = new Tween(produkt, "_yscale", Strong.easeOut, produkt._yscale, 100, 1, true);
                            var tw3:Tween = new Tween(produkt, "_x", Strong.easeOut, produkt._x, 100, 1, true);
                            var tw4:Tween = new Tween(produkt, "_y", Strong.easeOut, produkt._y, 220, 1, true);
                            var tw5:Tween = new Tween(paragraf_txt, "_alpha", Strong.easeOut, 0, 100, 1, true);
                            paragraf_txt.text = produkt.odnosnik;
                            var s:Object = this;
                            tw.onMotionStopped = function() {
                                    s.onRelease = powrotDoKaruzeli;
                            }
                    }
            }
    }

    function loop() {
            home.opis._x = this._parent._x;
            home.opis._y = this._parent._y - this._parent._height/2;
    }

    xml.load(sciezka_do_pliku_XML);

    function poruszanie() {
           
            if (procent != 100) {
                    procent = int(xml.getBytesLoaded() / xml.getBytesTotal() * 100);
            } else {
                    loading_mc._visible = false;
            }
           
            this._x = Math.cos(this.kat) * szerokoscKaruzeli + centrumX;
            this._y = Math.sin(this.kat) * wysokoscKaruzeli + centrumY;
            var skala:Number = (this._y - perspektywa) / (centrumY + wysokoscKaruzeli - perspektywa);
            this._xscale = this._yscale = skala * 100;
            this.kat += this._parent.predkosc;
            this.swapDepths(Math.round(this._xscale) + 100);
    }

    function powrotDoKaruzeli() {
            delete this.onRelease;
            var tw:Tween = new Tween(paragraf_txt, "_alpha", Strong.easeOut, 100, 0, 0.5, true);
            for (var i=0; i<iloscProduktow; i++) {
                    var produkt:MovieClip = home["ikona"+i];
                    if(produkt != this._parent) {
                            var tw:Tween = new Tween(produkt, "_xscale", Strong.easeOut, 0, produkt.skala, 1, true);
                            var tw2:Tween = new Tween(produkt, "_yscale", Strong.easeOut, 0, produkt.skala, 1, true);
                            var tw3:Tween = new Tween(produkt, "_alpha", Strong.easeOut, 0, 100, 1, true);
                    } else {
                            var tw:Tween = new Tween(produkt, "_xscale", Strong.easeOut, 100, produkt.skala, 1, true);
                            var tw2:Tween = new Tween(produkt, "_yscale", Strong.easeOut, 100, produkt.skala, 1, true);
                            var tw3:Tween = new Tween(produkt, "_x", Strong.easeOut, produkt._x, produkt._xPozycja, 1, true);
                            var tw4:Tween = new Tween(produkt, "_y", Strong.easeOut, produkt._y, produkt._yPozycja, 1, true);
                           
                            tw.onMotionStopped = function() {
                                    for (var i=0; i<iloscProduktow; i++) {
                                            var produkt:MovieClip = home["ikona"+i];
                                            produkt.ikona_mc.onRollOver = Delegate.create(produkt.ikona_mc,najechanie);
                                            produkt.ikona_mc.onRollOut = Delegate.create(produkt.ikona_mc,zjechanie);
                                            produkt.ikona_mc.onRelease = Delegate.create(produkt.ikona_mc,klikniecie);
                                            produkt.onEnterFrame = poruszanie;
                                    }
                            }
                    }
            }
    }

    this.onMouseMove = function() {
            predkosc = (this._xmouse-centrumX)/przyspieszenie;
    }




    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