Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    slideshow in actionscript

    ciao a tutti
    ho trovato a questo indirizzo una slideshow che mi carica le immagini in ordine crescente (1.jpg, 2.jpg, ...):
    http://www.v2online.it/articoli/slideshow.html

    il problema è che funziona fino a 10 img: 1.jpg, 2.jpg, ... 10.jpg
    se aggiungo la 11.jpg il loop perde l'ordine dato e dopo l'undicesima praticamente va tutto in random...

    ho provato a modificare qualcosa nello script ma senza trovare il bandolo... :master:
    questo lo script:

    Codice PHP:
    var interceptMovieClip:Function = function (target_mc:MovieClip):MovieClip 
        var 
    temp:MovieClip = (target_mc._name == "firstMC") ? secondMC firstMC
        return 
    temp
    }; 
    var 
    slideShow:Function = function (target:MovieClipindex:Numbershifting:Number) { 
        var 
    other interceptMovieClip(target); 
        var 
    int_index index
        var 
    mclo:MovieClipLoader = new MovieClipLoader(); 
        var 
    mcli:Object = new Object(); 
        
    mcli.onLoadError = function(target:MovieCliperrorCode:String) { 
            if (
    errorCode == "URLNotFound") { 
                
    slideShow(targetindexshifting); 
            } 
        }; 
        
    mcli.onLoadInit = function(target:MovieClip):Void  
            
    trace("img/"+int_index+".jpg"); 
            
    int_index += 2
            var 
    t:Object = new mx.transitions.Tween(target"_alpha"mx.transitions.easing.None.easeNone0100.5true); 
            
    t.onMotionFinished = function() { 
                var 
    setInterval(function () { 
                    
    clearInterval(a); 
                    var 
    t:Object = new mx.transitions.Tween(target"_alpha"mx.transitions.easing.None.easeNone1000.5true); 
                    
    t.onMotionFinished = function() { 
                        
    mclo.loadClip("img/"+int_index+".jpg"target); 
                        
    target.swapDepths(other); 
                    }; 
                }, 
    shifting*1000); 
            }; 
        }; 
        
    mclo.addListener(mcli); 
        
    mclo.loadClip("img/"+int_index+".jpg"target); 
    }; 
    // 
    var time_to_slide:Number 5
    var 
    firstMC:MovieClip this.createEmptyMovieClip("firstMC"1); 
    var 
    index1:Number 1
    var 
    secondMC:MovieClip this.createEmptyMovieClip("secondMC"2); 
    var 
    index2:Number 2
    slideShow(firstMCindex1time_to_slide*2); 
    setTimeout(slideShow5000secondMCindex2time_to_slide*2); 
    mi aiutate?
    grazie!
    solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Inizio con il dirti che il codice non è scritto molto bene e che ci sono almeno un paio di buchi che possono creare problemi. Per questo a suo tempo ho realizzato una classe che facesse uno slide tipo questo associandogli un array.
    Detto questo, ho fatto comunque una prova e il codice ha funzionato correttamente. Il problema di caricamento potrebbe dipendere dal fatto che l'immagine sia stata salvata come jpeg progressiva, possibile solo a partire da flash player 8.

  3. #3
    mmmh, grazie per la replica...
    non so, io per fare una prova ho copiato l'immagine numero 4 (4.jpg) e l'ho rinominata 11.jpg, tutto qui, poi l'swf lo lancio da Flash 2008 con AS2

    solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    E' la stessa cosa che ho fatto io ma a me funziona correttamente :master:

  5. #5
    nessuna speranza?
    solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...

  6. #6
    mmmh...
    ho tenuto il filmato attivo per diversi minuti e verificato che, con 11 img, la finestra di output va in errore solo quando cerca l'immagine 12 e la 13, come se aggiungendone altre 2 il loop debba tornare a funzionare correttamente...
    Error opening URL "file:///img/12.jpg"
    ora ne aggiungo 2 e verifico, anche se mi sarebbero oscure le ragioni...
    :master:
    solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...

  7. #7
    incredibile! ora ne vuole altre 2, la 14 e la 15...
    solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Quello è normale, lo script agisce in quel modo, in pratica quando non trova i file, ripassa al primo. Solo che come ti dicevo, è scritto un po' approssimativo perché è una modifica un tantino forzata dello script originale che usava un solo contenitore.
    Comunque, dovessi riuscire ad aggiustarlo ti farò sapere.

  9. #9
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Usa questo di seguito, il codice è più pulito e in generale funziona meglio.
    L'unica cosa, utilizza le tweener per gestire il tempo e le transizioni, quindi devi scaricarle e mettere la cartella "caurina" con il suo contenuto nella stessa cartella in cui si trova il fla di prova.

    Codice PHP:
    var loader:Object = new MovieClipLoader();
    loader.slideTime 5;
    loader.imageCounter 1;
    loader.timeCounter 0;
    loader.onLoadInit = function (target_mc:MovieClip) {
        var 
    temp:MovieClip target_mc == canvas1 canvas2 canvas1;
        
    caurina.transitions.Tweener.addTween(temp, {_alpha:0time:1transition:"linear"});
        
    caurina.transitions.Tweener.addTween(target_mc, {_alpha:100time:1transition:"linear"onComplete:onComplete});
        function 
    onComplete () {
            
    this.timeCounter 0;
            
    caurina.transitions.Tweener.addTween(loader, {timeCounter:loader.slideTimetime:loader.slideTimetransition:"linear"onComplete:loadOther});
        }
        function 
    loadOther () {
            
    this.imageCounter++;
            
    this.loadClip("img/"+loader.imageCounter+".jpg"temp);
        }
    }
    loader.onLoadError = function(target_mc:MovieCliperrorCode:String) {
        
    this.imageCounter 1;
        
    this.loadClip("img/"+loader.imageCounter+".jpg"target_mc);
    }
    var 
    canvas1:MovieClip this.createEmptyMovieClip("canvas1"this.getNextHighestDepth());
    var 
    canvas2:MovieClip this.createEmptyMovieClip("canvas2"this.getNextHighestDepth());
    canvas1._alpha 0;
    loader.loadClip("img/"+loader.imageCounter+".jpg"canvas1); 

  10. #10
    grazie!!!
    ti segnalo che l'output riporta l'errore nell'apertura della prima foto mancante (ad es. la 11.jpg), ma il loop torna comunque alla prima foto e ricomincia nell'ordine corretto...

    solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...

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.