Visualizzazione dei risultati da 1 a 6 su 6

Discussione: zoom in carousel3

  1. #1
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916

    zoom in carousel3

    riecchime...

    risolto il problema audio... almeno spero...

    pongo la prossima modifica che devo apporre... (e che ovviamente non so fare)

    dovrei far si che alla funzione over succedesse che si stoppasse il movimeto rotatorio, e l'immagine su cui sono sopra con il mouse facesse un pò di zoom.

    la funzione over è quella in red:



    codice:
    import mx.utils.Delegate;
    import mx.transitions.Tween;
    import mx.transitions.easing.*;
    
    var numOfItems:Number;
    var radiusX:Number = 300;
    var radiusY:Number = 75;
    var centerX:Number = Stage.width / 2;
    var centerY:Number = Stage.height / 2;
    var speed:Number = 0.05;
    var perspective:Number = 130;
    var home:MovieClip = this;
    theText._alpha = 0;
    
    var tooltip:MovieClip = this.attachMovie("tooltip","tooltip",10000);
    tooltip._alpha = 0;
    
    var xml:XML = new XML();
    xml.ignoreWhite = true;
    
    xml.onLoad = function()
    {
        var nodes = this.firstChild.childNodes;
        numOfItems = nodes.length;
        for(var i=0;i<numOfItems;i++)
        {
            var t = home.attachMovie("item","item"+i,i+1);
            t.angle = i * ((Math.PI*2)/numOfItems);
            t.onEnterFrame = mover;
            t.toolText = nodes[i].attributes.tooltip;
            t.content = nodes[i].attributes.content;
            t.icon.inner.loadMovie(nodes[i].attributes.image);
            t.r.inner.loadMovie(nodes[i].attributes.image);
            t.voice = nodes[i].attributes.audio;
            t.icon.onRollOver = over;
            t.icon.onRollOut = out;
            t.icon.onRelease = released;
        }
    }
    
    function over()
    {
        //BONUS Section
        var sou:Sound = new Sound();
        sou.attachSound("sover");
        sou.start();
        
        home.tooltip.tipText.text = this._parent.toolText;
        home.tooltip._x = this._parent._x;
        home.tooltip._y = this._parent._y - this._parent._height/2;
        home.tooltip.onEnterFrame = Delegate.create(this,moveTip);
        home.tooltip._alpha = 100;
    	trace("over");
    }
     
    function out()
    {
        delete home.tooltip.onEnterFrame;
        home.tooltip._alpha = 0;
    }
    
    function released()
    {
        //BONUS Section
        var sou:Sound = new Sound();
        sou.attachSound("sdown");
        sou.start();
        
        home.tooltip._alpha = 0;
        for(var i=0;i<numOfItems;i++)
        {
            var t:MovieClip = home["item"+i];
            t.xPos = t._x;
            t.yPos = t._y;
            t.theScale = t._xscale;
            delete t.icon.onRollOver;
            delete t.icon.onRollOut;
            delete t.icon.onRelease;
            delete t.onEnterFrame;
            if(t != this._parent)
            {
                var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,0,1,true);
                var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,0,1,true);
                var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,100,0,1,true);
            }
            else
            {
                var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,100,1,true);
                var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,100,1,true);
                var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,200,1,true);
                var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,320,1,true);
                var tw5:Tween = new Tween(theText,"_alpha",Strong.easeOut,0,100,1,true);
                theText.text = t.content;
                var s:Object = this;
                var gigi = t.voice;
                
    
    
                tw.onMotionStopped = function()
                {
                    s.onRelease = unReleased;
                    soundmio(gigi)
    				
                }
            }
        }
    }
    ///////////////codice audio
    function soundmio(file){
    var au = file;
    var esterno:String = au;
    trace(au);
    var suono:Sound = new Sound(this);
    suono.loadSound(esterno, true); // true indica che si tratta di streaming
    suono.onSoundComplete = function(){
    this.start(0, 1);
    }
    }
    ///////////////////////////////
    function unReleased()
    {
        //BONUS Section
        var sou:Sound = new Sound();
        sou.attachSound("sdown");
        sou.start();
        delete this.onRelease;
        var tw:Tween = new Tween(theText,"_alpha",Strong.easeOut,100,0,0.5,true);
        for(var i=0;i<numOfItems;i++)
        {
            var t:MovieClip = home["item"+i];
            if(t != this._parent)
            {
                var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,0,t.theScale,1,true);
                var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,0,t.theScale,1,true);
                var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,0,100,1,true);
            }
            else
            {
                var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,100,t.theScale,1,true);
                var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,100,t.theScale,1,true);
                var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,t.xPos,1,true);
                var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,t.yPos,1,true);
                tw.onMotionStopped = function()
                {
                    for(var i=0;i<numOfItems;i++)
                    {
                        var t:MovieClip = home["item"+i];
                        t.icon.onRollOver = Delegate.create(t.icon,over);
                        t.icon.onRollOut = Delegate.create(t.icon,out);
                        t.icon.onRelease = Delegate.create(t.icon,released);
                        t.onEnterFrame = mover;
                    }
                }
            }
        }
    }
    
    
    function moveTip()
    {
        home.tooltip._x = this._parent._x;
        home.tooltip._y = this._parent._y - this._parent._height/2;
    }
    
    xml.load("icons.xml");
    
    function mover()
    {
        this._x = Math.cos(this.angle) * radiusX + centerX;
        this._y = Math.sin(this.angle) * radiusY + centerY;
        var s = (this._y - perspective) /(centerY+radiusY-perspective);
        this._xscale = this._yscale = s*100;
        this.angle += this._parent.speed;
        this.swapDepths(Math.round(this._xscale) + 100);
    }
    
    this.onMouseMove = function()
    {
        speed = (this._xmouse-centerX)/10000;
    }
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  2. #2
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    ok, ho risolto lo zoom col prototype.zoom...

    avrei una domanda:

    visto che zummando l'immagine sgrana..come posso fare in modo che l'immagine zommata sia qualla a misura originale mentre l'immagine che gira sia ristretta?

    grazie!
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  3. #3
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    Originariamente inviato da yro
    ok, ho risolto lo zoom col prototype.zoom...

    avrei una domanda:

    visto che zummando l'immagine sgrana..come posso fare in modo che l'immagine zommata sia qualla a misura originale mentre l'immagine che gira sia ristretta?

    grazie!
    qualche idea?
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  4. #4
    posta il codice cha hai usato ora con lo zoom che poi si vede come fare..
    solo che in genere le img png quando si deformano(quindi ingrandiscono o rimpiccioliscono tendono sempre a sgranarsi un pochettino)

    ovviamente appena ho la possibilità di vederlo con il flash 8 che qui nn ho (ed un attimo di tranbquillità), al limite dovresti caricare le img ad es al 50% in scala e poi quando fai lo zoom farle arrivare al 100%

    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  5. #5
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    Originariamente inviato da crescenzo
    posta il codice cha hai usato ora con lo zoom che poi si vede come fare..
    solo che in genere le img png quando si deformano(quindi ingrandiscono o rimpiccioliscono tendono sempre a sgranarsi un pochettino)

    ovviamente appena ho la possibilità di vederlo con il flash 8 che qui nn ho (ed un attimo di tranbquillità), al limite dovresti caricare le img ad es al 50% in scala e poi quando fai lo zoom farle arrivare al 100%

    ottimo sarebbe fare come dici... ma non ho idea di come caricarle al 50%!

    ecco qua lo script:

    codice:
    import mx.utils.Delegate;
    import mx.transitions.Tween;
    import mx.transitions.easing.*;
    
    var numOfItems:Number;
    var radiusX:Number = 300;
    var radiusY:Number = 75;
    var centerX:Number = Stage.width / 2;
    var centerY:Number = Stage.height / 2;
    var speed:Number = 0.05;
    var perspective:Number = 130;
    var home:MovieClip = this;
    theText._alpha = 0;
    
    var tooltip:MovieClip = this.attachMovie("tooltip","tooltip",10000);
    tooltip._alpha = 0;
    
    var xml:XML = new XML();
    xml.ignoreWhite = true;
    
    xml.onLoad = function()
    {
        var nodes = this.firstChild.childNodes;
        numOfItems = nodes.length;
        for(var i=0;i<numOfItems;i++)
        {
            var t = home.attachMovie("item","item"+i,i+1);
            t.angle = i * ((Math.PI*2)/numOfItems);
            t.onEnterFrame = mover;
            t.toolText = nodes[i].attributes.tooltip;
            t.content = nodes[i].attributes.content;
            t.icon.inner.loadMovie(nodes[i].attributes.image);
            t.r.inner.loadMovie(nodes[i].attributes.image);
            t.voice = nodes[i].attributes.audio;
            t.icon.onRollOver = over;
            t.icon.onRollOut = out;
            t.icon.onRelease = released;
        }
    }
    
    //Prototype che muove un mc nella posizione x,y specificata
    //e lo scala del valore endScale passato in argomento
    MovieClip.prototype.zoom = function(endScale, speed) {
    	this.onEnterFrame = function() {
    		var offset = 0.5;
    		var rscale = Math.abs(endScale-this._xscale);
    		//Muovo il mc finche nn raggiunge la sua posizione finale e lo scalaggio desiderato
    		if (!rscale<=offset) {
    			(this._xscale<endScale) ? (this._xscale=this._yscale += rscale/speed) : (this._xscale=this._yscale -= rscale/speed);
    		} else {
    			//A spostamento completato e scalaggio desiderato elimino l'enterframe
    			delete this.onEnterFrame;
    		}
    	};
    };
    function over()
    {
        //BONUS Section
        var sou:Sound = new Sound();
        sou.attachSound("sover");
        sou.start();
        
        home.tooltip.tipText.text = this._parent.toolText;
        home.tooltip._x = this._parent._x;
        home.tooltip._y = this._parent._y - this._parent._height/2;
        home.tooltip.onEnterFrame = Delegate.create(this,moveTip);
        home.tooltip._alpha = 100;
    	//zoom
    	this.zoom(130, 9);
    }
    
    function out()
    {
        delete home.tooltip.onEnterFrame;
        home.tooltip._alpha = 0;
    	this.zoom(100, 9);
    }
    
    function released()
    {
        //BONUS Section
        var sou:Sound = new Sound();
        sou.attachSound("sdown");
        sou.start();
        
        home.tooltip._alpha = 0;
        for(var i=0;i<numOfItems;i++)
        {
            var t:MovieClip = home["item"+i];
            t.xPos = t._x;
            t.yPos = t._y;
            t.theScale = t._xscale;
            delete t.icon.onRollOver;
            delete t.icon.onRollOut;
            delete t.icon.onRelease;
            delete t.onEnterFrame;
            if(t != this._parent)
            {
                var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,0,1,true);
                var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,0,1,true);
                var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,100,0,1,true);
            }
            else
            {
                var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,100,1,true);
                var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,100,1,true);
                var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,200,1,true);
                var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,320,1,true);
                var tw5:Tween = new Tween(theText,"_alpha",Strong.easeOut,0,100,1,true);
                theText.text = t.content;
                var s:Object = this;
                var gigi = t.voice;
                
    
    
                tw.onMotionStopped = function()
                {
                    s.onRelease = unReleased;
                    soundmio(gigi)
    				
                }
            }
        }
    }
    ///////////////codice audio
    function soundmio(file){
    var au = file;
    var esterno:String = au;
    trace(au);
    var suono:Sound = new Sound(this);
    suono.loadSound(esterno, true); // true indica che si tratta di streaming
    suono.onSoundComplete = function(){
    this.start(0, 1);
    }
    }
    ///////////////////////////////
    function unReleased()
    {
        //BONUS Section
        var sou:Sound = new Sound();
        sou.attachSound("sdown");
        sou.start();
        delete this.onRelease;
        var tw:Tween = new Tween(theText,"_alpha",Strong.easeOut,100,0,0.5,true);
        for(var i=0;i<numOfItems;i++)
        {
            var t:MovieClip = home["item"+i];
            if(t != this._parent)
            {
                var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,0,t.theScale,1,true);
                var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,0,t.theScale,1,true);
                var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,0,100,1,true);
            }
            else
            {
                var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,100,t.theScale,1,true);
                var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,100,t.theScale,1,true);
                var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,t.xPos,1,true);
                var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,t.yPos,1,true);
                tw.onMotionStopped = function()
                {
                    for(var i=0;i<numOfItems;i++)
                    {
                        var t:MovieClip = home["item"+i];
                        t.icon.onRollOver = Delegate.create(t.icon,over);
                        t.icon.onRollOut = Delegate.create(t.icon,out);
                        t.icon.onRelease = Delegate.create(t.icon,released);
                        t.onEnterFrame = mover;
                    }
                }
            }
        }
    }
    
    
    function moveTip()
    {
        home.tooltip._x = this._parent._x;
        home.tooltip._y = this._parent._y - this._parent._height/2;
    }
    
    xml.load("icons.xml");
    
    function mover()
    {
        this._x = Math.cos(this.angle) * radiusX + centerX;
        this._y = Math.sin(this.angle) * radiusY + centerY;
        var s = (this._y - perspective) /(centerY+radiusY-perspective);
        this._xscale = this._yscale = s*100;
        this.angle += this._parent.speed;
        this.swapDepths(Math.round(this._xscale) + 100);
    }
    
    this.onMouseMove = function()
    {
        speed = (this._xmouse-centerX)/10000;
    }
    grazie!
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  6. #6
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    se non vi chiedo troppo..

    mi piacerebbe che ci sia un preload, visto che con una ventina di icone ci mette un po a caricarsi... figuriamoci se avessi la 56k...
    ma se metto un preload che mi verifica il 2° fotogramma diventa inesistente perche le immagini sono esterne...

    come si pò fare?
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.