Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    583

    [AS3] Problema smoothing immagini caricate

    Ciao a tutti,
    sto cercando di creare uno slideshow caricando immagini da un xml.
    Funziona tutto, l'unico neo è che il movimento delle immagini nello slideshow è un po' scattoso. Ho pensato che utilizzando lo smoothing si risolvesse il problema, ma non riesco a farlo funzionare.

    Codice PHP:
    function switchSlide(e:Event):void {
        
    slideLoader = new Loader();
        
    slideLoader.contentLoaderInfo.addEventListener(Event.COMPLETEfadeSlideIn);
        
    slideLoader.load(new URLRequest(xmlSlideshow..image[intCurrentSlide].@src));
    }

    function 
    fadeSlideIn(e:Event):void {
        
    // smoothing delle immagini
        
    smoother_bm Bitmap(e.target.content);
        
    smoother_bm.smoothing true;
        
    currentContainer.addChild(e.target.content);
        
    Tweener.addTween(currentContainer, {x:-48time:TIMER_DELAY/1000transition:"linear"});

    Queste sono le due funzioni (alleggerite) che uso, una richiama l'altra.
    Ho provato anche ad usare il forcesmoothing nel MC che contiene tutto, ma l'animazione continua ad essere scattosa.

    Suggerimenti?
    Grazie in anticipo.

  2. #2
    Utilizzano lo smoothing mi sa che aumenti il carico ^^

    Se sono tante immagini proverei a cambiare piattaforma per le Tween.
    TweenLite credo sia la più veloce.

    (Se invece sono poche immagini, non credo si noti nemmeno la differenza)

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    583
    Grazie per la risposta,
    le immagini non sono molte e non molto pesanti (circa 30 kb l'una).
    Inoltre ho provato a fare una prova non dinamica, inserendo le immagini in libreria e flaggando il "consenti smussatura" e la differenza di fluidità del movimento è notevole.

    Mi basterebbe sapere se il codice che uso è corretto o se ho scritto qualche castroneria.

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Il codice è ok, prova oltre allo smoothing ad impostare anche il cacheAsBitmap e vedi se migliora la situazione.
    Anche io utilizzo Tweener, e seppur TweenLite sia leggermente più performante nel movimento, lo preferisco.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    583
    Col cacheAsBitmap applicato a smoother_bm e al contenitore addirittura peggiora.
    Bah, mistero.

    Quello che non capisco è la differenza abissale fra lo smoothing da codice e quello flaggato nella proprietà delle immagini in libreria.

    Magari il movimento a scatti non dipende dallo smoothing,ma da qualcos'altro nel codice....

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Può essere, ma non nella parte che hai linkato.

  7. #7
    lo smoothing migliora solo la qualità delle immagini quando riscalate, in teoria quindi dovrebbe perfino peggiorare le prestazioni

    in ogni caso nn è lo smooth del movimento
    Photogallery Flash Gratis - http://www.flashfiles.biz -
    Template in Flash con pannello di Amministrazione e deeplinking Guarda il template qui

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    583
    Eccolo qua in tutta (o quasi) la sua fierezza

    Codice PHP:
    import caurina.transitions.Tweener;

    const 
    TIMER_DELAY:int 4000;
    const 
    FADE_TIME:int =    2;

    var 
    smoother_bm:Bitmap = new Bitmap();
    var 
    currentContainer:Sprite;
    var 
    i:int;
    var 
    intCurrentSlide:int = -1;
    var 
    intSlideCount:int;
    var 
    slideTimer:Timer;
    var 
    sprContainer1:Sprite;
    var 
    sprContainer2:Sprite;
    var 
    slideLoader:Loader;
    var 
    strXMLPath:String "xml/slideshow.xml";
    //var strXMLPath:String = this.loaderInfo.parameters.XMLPath;
    var xmlLoader:URLLoader;
    var 
    xmlSlideshow:XML;

    function 
    init():void {
        
    xmlLoader = new URLLoader();
        
    xmlLoader.addEventListener(Event.COMPLETEonXMLLoadComplete);
        
    xmlLoader.load(new URLRequest(strXMLPath));
        
    slideTimer = new Timer(1);
        
    slideTimer.addEventListener(TimerEvent.TIMERswitchSlide);
        
        
    sprContainer1 = new Sprite();
        
    sprContainer2 = new Sprite();
        
    mcSlideHolder.cacheAsBitmap true;
        
    mcSlideHolder.forceSmoothing true;
        
    mcSlideHolder.addChild(sprContainer1);
        
    mcSlideHolder.addChild(sprContainer2);
        
        
    currentContainer sprContainer2;
    }
        
    function 
    onXMLLoadComplete(e:Event):void {
        
    xmlSlideshow = new XML(e.target.data);
        
    intSlideCount xmlSlideshow..image.length();
        
    switchSlide(null);
    }


    function 
    switchSlide(e:Event):void {
        if(
    slideTimer.running){
            
    slideTimer.stop();
        }
        if(
    intCurrentSlide intSlideCount){
            
    intCurrentSlide++;
        }else{
            
    intCurrentSlide 0;
        }

        if(
    currentContainer == sprContainer2){
            
    currentContainer sprContainer1;
        }else{
            
    currentContainer sprContainer2;
        }
        
        
    currentContainer.x=0;        
        
    currentContainer.alpha 0;
        
    mcSlideHolder.swapChildren(sprContainer2sprContainer1);
        
        
    slideLoader = new Loader();
        
    slideLoader.contentLoaderInfo.addEventListener(Event.COMPLETEfadeSlideIn);
        
    slideLoader.load(new URLRequest(xmlSlideshow..image[intCurrentSlide].@src));
    }
        
    function 
    fadeSlideIn(e:Event):void {
        
    smoother_bm Bitmap(e.target.content);
        
    smoother_bm.smoothing true;
        
    currentContainer.addChild(e.target.content);
        
    Tweener.addTween(currentContainer, {alpha:1time:FADE_TIME});
        
    Tweener.addTween(currentContainer, {x:-48time:TIMER_DELAY/1000transition:"linear"onComplete:function() { slideTimer.start(); }});
        
    }

    init(); 
    Capisco chi non lo leggerà tutto...
    Grazie comunque

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.