• User Newbie

    ridimensionamento swf

    salve ragazzi, sto realizzando un sito in flash e fino ad ora non ho riscontrato grandi problemi tranne uno: inizialmente ho settato le dimensioni dello stage a 1024x768, dato che il template in psd l'avevo fatto di queste dimensioni; avendo la necessità di posizionare il logo e alcune scritte sempre sulla sinistra, setto lo scaleMode a "NO_SCALE", tuttavia qualcosa non torna: se io per necessità dovessi ridimensionare lo stage ad esempio a 900x700, sarebbe una grandezza visualizzata da quasi tutti gli utenti, ma da altri(con una risoluzione gia intorno al 1280x800) sarebbe troppo piccola e parte dello schermo risulterebbe vuoto...per questo vi chiedo se esiste una soluzione per questo problema, tale che adatti il filmato a qualsiasi risoluzione dello schermo(senza però settate lo scaleMode a "showAll")...magari un ridimensionamento che avvenga quando si apre il sito calcolando la risoluzione con uno script...grazie dell'aiuto 🙂

    ps: tra l'altro il filmato in 1024x768 non è visualizzabile gia da me(ke ho una risoluzione di 1280x800) perchè il browser con i suoi gadget e la taskbar riducono l'altezza effettiva a circa 675...


  • Super User

    Ciao Valerio92 quello che ti serve è la funzione onResize.

    
    Stage.align = "TL";
    Stage.scaleMode="noscale";
    _quality="BEST";
    // --
    _global.setStage = function() {
        slis = new Object();
        slis.onResize = function() {
            //imposto le coordinate del clip centro 
            centro._x=Stage.width/2
            centro._y=Stage.height/2
            //imposto le dimensioni del clipo sfondo al fine di adattarlo alla pagina
            
        header_mc._width = Stage.width;
      header_mc._x=0
       header_mc._y=0
        
        };
        Stage.addListener(slis);
        slis.onResize();
    };
    setStage();
    
    //Adatto l'immagine
    var rapp = foto._width/foto._height;
    var ecout = new Object();
    ecout.onResize = function() {
        bouge();
    };
    Stage.addListener(ecout);
    bouge = function () {
        foto._x = 0;
        foto._y = 0;
        
        foto._width = Stage.width;
        foto._height = Stage.width/rapp;
        if (foto._height<Stage.height) {
            foto._height = Stage.height;
            foto._width = Stage.height*rapp;
        
        }
        // end if           
    };
    bouge();
    stop();
    
    ```In questo script preso dal sito di Julius Design,  il movieclip centro è tenuto sempre al centro dello stage
    il clip header_mc assume la larghezza dello stage a tutte le risoluzioni, ed il clip foto mantiene sempre la proporzione tra h ed l a qualunque risoluzione.

  • User Newbie

    Ciao Nhatan, grazie per il prezioso aiuto, era ciò che mi serviva 🙂
    ancora grazie e alla prossima 🙂


  • User Newbie

    ciao nathan, come già detto il codice che mi hai postato va benissimo, ma provandolo ho notato che non fa esattamente al caso mio. in realtà io vorrei che il filmato si ridimensionasse solo all'avvio (ENTER_FRAME) in relazione allo spazio disponibile massimo...con questo nn intendo in base alla risoluzione ma in base allo spazio disponibile che c'è quando il browser è aperto al massimo (il che non è esattamente la risoluzione perchè ad esempio quando apro totalmente il browser io che ho risoluzione 1280x800, lo spazio disponibile mi diventa 1280x675 per via della taskbar e dei gadget del browser)....quindi vorrei sapere se esiste un modo o uno script in grado di calcolarti lo spazio disponibile quando il browser è aperto totalmente...attendo risposte, grazie ancora 🙂


  • Super User

    Sinceramente, anche se non mi sento di escluderlo al 100%, perchè con flash non si finisce mai d'imparare, non credo si possa calcolare la finestra di ogni browser a seconda di quante barre uno ha installato, perlomeno nella mia ormai lunga navigazione alla ricerca di script sorgenti vari e quanto più ne hai più ne metti non ho mai trovato riferimenti a questo problema ne in as2 ne in as3. No so cosa dirti, continua a cercare e se trovi qualcosa fammelo sapere, magari usando actionscript e javascript, ma usando solo actionscript non penso sia possibile.


  • User Newbie

    Si anch'io non ho trovato nulla quindi ho comnciato a scrivere uno script in js...a breve ti farò sapere se funziona 🙂