Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26

Discussione: sito ridimensionabile

  1. #1

    sito ridimensionabile

    Salve ragazzi, ho un sito Flash che vorrei rendere adattabile a tutte le risoluzioni con il metodo noscale, ho trovato questo tutorial, http://flash.html.it/articoli/leggi/...getto-stage/4/ , ma, anche se il principio è lo stesso, non fa esattamente al mio caso.In pratica io ho tre elementi da controllare, il primo è l'area Flash (cioè il contenuto del sito) e quì non ci sono problemi, questa resta sempre al suo posto...poi ho una barra inferiore (con delle scritte e dei pulsanti) che mi si dovrebbe allargare e ristringere a seconda delle dimensioni della finestra del browser, in più, poco sopra questa barra, c'è un altro elemento, un clip, il quale dovrebbe mantenere sempre la stessa posizione rispetto alla finestra, cioè dovrebbe centrarsi e decentrarsi a seconda delle dimensioni della finestra del browser...
    Spero di essermi spiegato bene e di avermi fatto capire, in tal caso ho aggiunto anche uno schizzo in allegato.
    Come potrei fare tutto quanto descritto sopra?
    Immagini allegate Immagini allegate
    • Tipo di file: gif 1.gif‎ (1.5 KB, 146 visualizzazioni)

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ci sono alcune discussioni da cui puoi prendere spunto, in questo sub-forum e in Flash Generale

    http://forum.html.it/forum/search.ph...by=&sortorder=

    http://forum.html.it/forum/search.ph...by=&sortorder=

  3. #3
    ...onestametne non ne ho visti come il mio, cioè con barre ed altri elementi...

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    beh non credo che ne troverai uno identico, quello che dovresti carpire dalle discussioni è la tecnica di utilizzo

  5. #5
    ...a dire il vero le tecniche già le conosco, solo che non riesco a combinarle tre di logo inquanto per centrare il contenuto occorre:

    Codice PHP:
    Stage.align;
    Stage.scaleMode "noScale"
    ...mentre per la barra in basso e l'oggetto a lato:

    Codice PHP:
    Stage.align "TL";
    Stage.scaleMode "noScale"
    ...in questo modo i due "Stage" mi vanno in conflitto, nel senso che o ne centro uno o l'altro...

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ci può essere un solo Stage.align e in base a quello devi gestire le posizioni... un esempio

    Codice PHP:
    Stage.align "TL"// allineo in alto a sinistra le coordinate 0,0 dello Stage
    Stage.scaleMode "noScale"// blocco la scala del filmato

    var resizer = new Object();
    resizer.onResize = function(){
    // azioni per il posizionamento, in base alla dimensione attuale dello stage
    // ad ogni ridimensionamento poi, il codice all'interno di questo evento
    // sposterà in maniera corretta gli oggetti
    //
    oggetto_da_centrare._x = (Stage.width-oggetto_da_centrare._width)/2;
    oggetto_da_centrare._y = (Stage.height-oggetto_da_centrare._height)/2;
    //
    oggetto_da_allineare_in_basso_sinistra._x 0;
    oggetto_da_allineare_in_basso_sinistra._y Stage.height-oggetto_da_allineare_in_basso_sinistra._height;
    //
    oggetto_da_allineare_in_basso_destra._x Stage.width-oggetto_da_allineare_in_basso_destra._width;
    oggetto_da_allineare_in_basso_destra._y Stage.height-oggetto_da_allineare_in_basso_destra._height;
    }
    // attacco il listener all'oggetto Stage
    Stage.addListener(resizer);
    // richiamo una prima volta la funzione onResize, per fare in modo che gli oggetti
    // vadano in posizione alla prima apertura della pagina
    resizer.onResize() 
    questa è la tecnica di base

  7. #7
    ...ah ma nel mio caso non è così semplice (almeno per me), entrando più nello specifico il sito di cui sto parlando esattamente è composto da due filmati, uno contenitore e l'altro esterno, ho scelto questa tecnica perchè quello esterno era già fatto, quindi cercare di spostare o unire il tutto sarebbe un casino...
    Il filmato contenitore, seguendo qualche tutoria, qualche altra discussione e qualche qualche consiglio, sono riuscito a metterlo in piedi, probabilmente anche con qualche errore, ma funge...in pratica il contenitore non fa altro che darmi lo sfondo, una barra in basso e un oggetto in basso a destra, e questo è il codice:

    Codice PHP:
    Stage.align "TL";
    Stage.scaleMode "noScale";
    setBackground = function ()
    {
        
    _root.bg_mc._width Stage.width;
        
    _root.centre_y Math.round(Stage.height 2);
        
    _root.centre_x Math.round(Stage.width 2);
        
    _root.bg_mc._x _root.centre_x _root.bg_mc._width 2;
        
    _root.bg_mc._y _root.centre_y _root.bg_mc._height 2;
        
    _root.bg_bt_mc._width _root.bg_mc._width;
        
    _root.bg_bt_mc._height = (Stage.height _root.bg_mc._height) / 2;
        
    _root.bg_bt_mc._x _root.bg_mc._x;
        
    _root.bg_bt_mc._y _root.bg_mc._y _root.bg_mc._height;
        
    _root.bg_tp_mc._width _root.bg_mc._width;
        
    _root.bg_tp_mc._height _root.bg_bt_mc._height;
        
    _root.bg_tp_mc._x _root.bg_mc._x;
        
    _root.bg_tp_mc._y _root.bg_mc._y _root.bg_tp_mc._height;
        
    _root.footerBar_mc._y Stage.height _root.footerBar_mc._height;
        
    _root.footerBar_mc._width Stage.width;
        
    _root.footerShadow_mc._width _root.footerBar_mc._width;
        
    _root.footerShadow_mc._y _root.footerBar_mc._y;
        
    _root.fineprint_mc._y Math.round(_root.footerBar_mc._y);
        
    _root.fineprint_mc._x Math.round(_root.footerBar_mc._x + (_root.footerBar_mc._width _root.fineprint_mc._width 2));
        
    _root.music_mc._x Math.round(_root.footerBar_mc._width - (_root.music_mc._width 100));
        
    _root.music_mc._y Math.round(_root.footerBar_mc._y 16);
        
    };
    stageListener = new Object();
    stageListener.onResize = function ()
    {
        
    setBackground();
    };
    Stage.addListener(stageListener);
    setBackground(); 
    ...beh, ora il mio problema sarebbe quello di riuscire a richiamare anche il filmato esterno (che sarebbe il contenuto del sito vero e proprio) mantendolo sempre al centro...magari si potrebbe aggiungere un altro oggetto (un clip) mantenedolo sempre al centro e da li richiamare l'swf esterno...ho provato, ma non ci sono riuscito!

    Come si potrebbe fare?

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    dipende da come carichi il filmato esterno... come lo carichi?

  9. #9
    con esattezza con un'altra action che crea un movieclip "sfondo", anche questà è il risultato di ricerche e consigli vari come la prima, ed è la seguente:

    Codice PHP:
    import mx.transitions.*;
    import mx.transitions.easing.*;
    Stage.align "TL";
    Stage.scaleMode "noScale";
    Stage.showMenu false;
    var 
    drawRectangle:Function = function (target:MovieClipname:Stringlevel:Numberwidth:Numberheight:Numbercolor:Number) {
        
    target.createEmptyMovieClip(namelevel);
        
    with (target[name]) {
            
    moveTo(00);
            
    lineStyle(0color0);
            
    beginFill(color100);
            
    lineTo(width0);
            
    lineTo(widthheight);
            
    lineTo(0height);
            
    lineTo(00);
            
    endFill();
        }
    };
    var 
    sfondo:MovieClip this.createEmptyMovieClip("sfondo"1);
    function 
    entra(movie:MovieClip) {
        new 
    Tween(movie"_y"Regular.easeOutMath.round(Stage.height/2)-275Math.round(Stage.height/2)-2753true);
        new 
    Tween(movie"_x"Regular.easeOutMath.round(Stage.width/2)-200Math.round(Stage.width/2)-2001true);
    }
    entra(sfondo);
    var 
    mload:MovieClipLoader = new MovieClipLoader();
    var 
    mlist:Object = new Object();
    mlist.onLoadInit = function(target) {
        
    target._x Math.round((Stage.width-target._width)/2);
        
    target._y Math.round((Stage.height-target._height)/2);
        
    target._alpha 0;
        
    target.onEnterFrame = function() {
            if (
    this._alpha<100) {
                
    this._alpha += 3;
            } else {
                
    delete this.onEnterFrame;
            }
        };
    };
    mload.addListener(mlist);
    mload.loadClip("esterno.swf"sfondo);

    // Permette di aprire tutti i percorsi si "sfondo"...
    sfondo._lockroot true;

    // Setto la posizione iniziale di "sfondo"
    _level0.sfondo._x 0;
    _level0.sfondo._y 60;
    var 
    fluid:Object = new Object();
    fluid.onResize = function() {
        
    _root['resize']();
        var 
    sy:Object = new Tween(sfondo"_y"Regular.easeOutsfondo._yMath.round((Stage.height-sfondo._height)/2), 30false);
        var 
    sx:Object = new Tween(sfondo"_x"Regular.easeOutsfondo._xMath.round((Stage.width-sfondo._width)/2), 30false);
    };
    Stage.addListener(fluid); 
    ...questa è messa su un livello diverso e a dire la verità funziona pure, solo che "esterno.swf" non sempre è al centro in quanto ci sono alcune pagine con delle maschere laterali (in pratica con oggetti nascosti) che in un certo senso me lo decentroano, o meglio lo scrip appena riportato me lo decentra...non so se sono riuscito a spiegarmi bene...

  10. #10
    ...per farti capire meglio ti ho inviato un mess in pvt...

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.