Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Flash & ActionScript
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti

Flash & ActionScript Animazione web e linguaggio di programmazione

Hey Amico Visitatore,
Condividi con noi le tue idee e la tua conoscenza Aprendo una nuova discussione nella sezione Flash & ActionScript


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 23-08-10, 15:29   #1 (permalink)
Ve
User
 
Data di registrazione: Jun 2010
Messaggi: 30
Problema con fisheye menu

Ciao a tutti, ho un problema (probabilmente stupidissimo), ma che per me sembra quasi insormontabile, data la mia (purtroppo) scarsa dimestichezza con flash.

Sto sistemando un menu fisheye preso da un sito (se vi serve il link ve lo mando in pm, perchè non posso ancora linkare), tutto ok fino a quando non supero il numero di simboli che ci sono nel file da modificare.
Premetto, che i simboli da visualizzare, vengono richiamati tramite action script.
I simboli in questione sono 7, io però devo aggiungerne due in più e questo mi crea qualche problema, perchè appena aggiungo un'ottavo simbolo (creato da zero), questo non mi viene visualizzato nell'animazione finale. La cosa curiosa è che, se invece io nel codice richiamo due volte uno degli altri, si aggiunge tranquillamente un simbolo in più. Volevo quindi sapere, se c'è un'anima pia che riesce a spiegarmi dove sbaglio.

Allego il codice as2 e, se vi serve, vi mando il file zippato in pm

Codice:
    
    /*
    *    A Fish Eye Menu in Actionscript 2
    *   converted by James Ford
    *
    *    based on A Fish Eye Menu in Actionscript 3
    *    from shinedraw.com
    */    
    
        var IMAGES:Array = [ "image2", "image4", "image6", "image1", "image3", "image5", "image7", "image8" ];    // images
        var APP_WIDTH : Number = 670;    // Width of this movieclip
        var APP_HEIGHT : Number = 212;    // Height of this movieclip
        var MARGIN:Number = 0;            // Margin between images
        var IMAGE_WIDTH: Number = 95;    // Image width
        var IMAGE_HEIGHT : Number = 181;    // Image height
        var MAX_SCALE:Number = 1.4;        // Max scale 
        var MULTIPLIER:Number = 60;        // Control the effectiveness of the mouse
        
        var _images :  Array = new Array();        // Store the added images

        /////////////////////////////////////////////////////        
        // Handlers 
        /////////////////////////////////////////////////////    
        
        function on_added_to_stage():Void{
            // add the images to the stage
            addImages();
            
            // start the mouse event handler
            //stage.addEventListener(MouseEvent.MOUSE_MOVE, on_mouse_move);
        }
        
        // because we've got no document class, we need
        // to start things in a more simple way
        on_added_to_stage()

        // mouse event handler
        //function on_mouse_move():Void{
        this.onMouseMove = function():Void {
            //trace("on_mouse_move")
            for(var i:Number = 0 ; i < _images.length; i++){
                var image : MovieClip = _images[i] //as MovieClip;    
                
                // compute the scale of each image according to the mouse position
                var imageScale:Number = MAX_SCALE - Math.min(MAX_SCALE - 1, Math.abs(this._xmouse - (image._x + image._width / 2)) / MULTIPLIER);
                // resize the image
                resizeImage(image, IMAGE_WIDTH * imageScale, IMAGE_HEIGHT * imageScale, i, IMAGES.length);
            }
            
            // sort the children according to the _yscale
            sortChildren(this, "_yscale");
        }
        
        /////////////////////////////////////////////////////        
        // Public Methods 
        /////////////////////////////////////////////////////    
        
        /////////////////////////////////////////////////////        
        // Private Methods 
        /////////////////////////////////////////////////////    
        
        // add the images to the stage
        function addImages():Void{
            for(var i:Number = 0; i < IMAGES.length; i++){
                // we can't attach  bitmaps in AS2 like we do in AS3, so the bitmaps have been
                // converted to movieclips and attached that way
                var imageClass : String = IMAGES[i];
                var image : MovieClip = this.attachMovie(imageClass, imageClass, this.getNextHighestDepth())
                    image.cacheAsBitmap = true;
                // resize the image
                resizeImage(image, IMAGE_WIDTH, IMAGE_HEIGHT, i, IMAGES.length);
                
                _images.push(image);
            }    
        }
        
        // resize the image
        function resizeImage(image : MovieClip, imageWidth:Number, imageHeight:Number, index:Number, total : Number):Void{
            image._width = imageWidth;
            image._height = imageHeight;        
            image._y = APP_HEIGHT/2  - image._height/2;
            image._x = APP_WIDTH/ 2 + (index - (total - 1) / 2) * (MARGIN + IMAGE_WIDTH)  - image._width / 2;
        }
        
        // Sort the objects according to the image width        
        function sortChildren(container, criteria:String) : Void {
            
            var _numChildren:Number = IMAGES.length//container._numChildren;
            //no need to sort (zero or one child)
            if( _numChildren < 2 ) return ;
            
            //create an Array to sort children
            var children:Array = new Array( _numChildren );
            var i:Number = -1;
            while( ++i < _numChildren )
            {
                children[ i ] = {mc:container.getInstanceAtDepth( i ), num:container.getInstanceAtDepth( i )._yscale};
            }
            
            //sort by children by the criteria
            children.sortOn( "num", Array.NUMERIC );
            
            var child : MovieClip;
            i = -1;
            while( ++i < children.length )
            {
                child = MovieClip( children[ i ].mc );
                //only set new depth if necessary
                if( i != container.getInstanceAtDepth(i) )
                {
                    //set their new position
                    child.swapDepths(container.getInstanceAtDepth(i))
                }
                
            }
        }
Grazie mille in anticipo
Ve non in linea   Rispondi citando
Vecchio 23-08-10, 17:11   #2 (permalink)
Moderatore
 
Data di registrazione: May 2008
Messaggi: 2,551
Hai fatto il Concatenamento del nuovo simbolo?
__________________

Nhatan

Ultima modifica di Nhatan : 23-08-10 17:27.
Nhatan non in linea   Rispondi citando
Vecchio 23-08-10, 17:20   #3 (permalink)
Ve
User
 
Data di registrazione: Jun 2010
Messaggi: 30
Ciao Nhatan, e grazie per avermi risposto. Il menu è in as2 (ho preso questo, perchè di as3 ne capisco ancora meno ). Ecco, forse è proprio quello che mi sfugge: come faccio a fare il concatenamento? Io ho cercato di ricreare il simbolo seguendo lo stesso sistema di quelli già presenti: ho creato il nuovo simbolo image8, in cui ho inserito l'altro nuovo simbolo fl_btn8, se vuoi posso mandarti in pm il file zippato, così riesci a capire meglio quanto detto (perchè, mi rendo conto che detto così non si capisce poi granché).

Grazie ancora
Ve non in linea   Rispondi citando
Vecchio 23-08-10, 17:29   #4 (permalink)
Moderatore
 
Data di registrazione: May 2008
Messaggi: 2,551
Per fare il concatenamento tasto destro sul simbolo in libreria voce concatenamento spunta il cek esporta per actionscript.
__________________

Nhatan
Nhatan non in linea   Rispondi citando
Vecchio 24-08-10, 10:52   #5 (permalink)
Ve
User
 
Data di registrazione: Jun 2010
Messaggi: 30
Grazie mille Nhatan, sono riuscita ad aggiungere il simbolo in più! Sei stato molto gentile
Ve non in linea   Rispondi citando
Vecchio 24-08-10, 11:07   #6 (permalink)
Moderatore
 
Data di registrazione: May 2008
Messaggi: 2,551
Di niente ciao.
__________________

Nhatan
Nhatan non in linea   Rispondi citando
Rispondi


Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 06:35.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.