Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    243

    Problema con galleria immagini

    Ciao a tutti, spero possiate aiutarmi.
    Tempo fa ho scariato da qualche parte (o qui o non ricordo dove) un .fla di esempio per una galleria in flash.
    La galleria in questione caricava tutte le foto esternamente e sembrava funzionare bene.
    Mi sono accorto però (oggi che volevo pubblicarla su internet) che mentre in locale visualizzo bene e correttamente tutte le foto, su internet la prima non la vedo mai.
    Potete aiutarmi?
    Ho nel primo frame questo codice:
    codice:
    -----------------------------------------
    // carico con un ciclo le foto in 10 clip con nome clip1, clip2 etc e le foto con nome foto1, foto2 etc
    for ( var i:Number=1 ; i< 11; i++ )
    {
    var clip=root["cont"+i] 
    var foto="foto"+i 
    clip.loadMovie (foto); 
    clip._visible= false 
    }
    // eseguo uan funzione ciclicamente usando onEnterFrame 
    _root.onEnterFrame= checkAllPhotoLoaded 
    
    
    function  checkAllPhotoLoaded ()
    {
    if (_root.clip1.getBytesLoaded () > 0 && _root.clip1.getBytesLoaded () == _root.clip1.getBytesTotal ())
    {
    _root.clip1loaded= true; 
    }
    if (_root.clip2.getBytesLoaded () > 0 && _root.clip2.getBytesLoaded () == _root.clip2.getBytesTotal ())
    {
    _root.clip2loaded= true; 
    }
    if (_root.clip3.getBytesLoaded () > 0 && _root.clip3.getBytesLoaded () == _root.clip3.getBytesTotal ())
    {
    _root.clip3loaded= true; 
    }
    if (_root.clip4.getBytesLoaded () > 0 && _root.clip4.getBytesLoaded () == _root.clip4.getBytesTotal ())
    {
    _root.clip4loaded= true; 
    }
    if (_root.clip5.getBytesLoaded () > 0 && _root.clip5.getBytesLoaded () == _root.clip5.getBytesTotal ())
    {
    _root.clip5loaded= true; 
    }
    if (_root.clip6.getBytesLoaded () > 0 && _root.clip6.getBytesLoaded () == _root.clip6.getBytesTotal ())
    {
    _root.clip6loaded= true; 
    }
    if (_root.clip7.getBytesLoaded () > 0 && _root.clip7.getBytesLoaded () == _root.clip7.getBytesTotal ())
    {
    _root.clip7loaded= true; 
    }
    if (_root.clip8.getBytesLoaded () > 0 && _root.clip8.getBytesLoaded () == _root.clip8.getBytesTotal ())
    {
    _root.clip8loaded= true; 
    }
    if (_root.clip9.getBytesLoaded () > 0 && _root.clip9.getBytesLoaded () == _root.clip9.getBytesTotal ())
    {
    _root.clip9loaded= true; 
    }
    if (_root.clip10.getBytesLoaded () > 0 && _root.clip10.getBytesLoaded () == _root.clip10.getBytesTotal ())
    {
    _root.clip10loaded= true; 
    }
    if (_root.clip11.getBytesLoaded () > 0 && _root.clip11.getBytesLoaded () == _root.clip11.getBytesTotal ())
    {
    _root.clip11loaded= true; 
    }
    /// alla fine fai un if di controllo 
    
    if (_root.clip1loaded && _root.clip2loaded && _root.clip3loaded && _root.clip4loaded && _root.clip5loaded && _root.clip6loaded && _root.clip7loaded && _root.clip8loaded && _root.clip9loaded && _root.clip10loaded && _root.clip11loaded)
    {
    _root.onEnterFrame= null 
    _root.showPhoto (); 
    }
    }
    
    function showPhoto ()
    {
    for ( var i:Number=1 ; i< 11; i++ )
    {
    var clip=root["clip"+i] 
    clip._visible= true 
    }
    play ()
    }
    --------------------------------------------------------------
    nel secondo frame questa stringa:
    codice:
    System.useCodepage = true;
    --------------------------------------------------------------
    Aggiungo che ogni clip si chiama correttamente Clip1 ecc...
    Mentre le foto che stando allo script dovrebbero cominciare tutte per "foto" nel mio filmato nonostante si chiamino diversamente funzionano comunque.
    Qualcuno di voi mi sa dire il perchè della mancata visualizzazione della prima immagine solo se la gallery viene pubblicata su internet?

    Grazie a tutti coloro che risponderanno, e non!
    Ciau!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    243
    Allura, il problema della prima immagine l'ho risolto.
    Quello che però ancora non riesco ad ottenere è un preload visibile che mi mostri lo stato di caricamento ad ogni foto.
    Premetto che ora le foto si chiamano tutte correttamente foto1 ecc...
    Un'altra cosa da precisare è che le foto scorrono automaticamente e non è possibile selezionarle (tra l'altro hanno effetti diversi).
    Potete aiutarmi?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    243
    Evitando di aprire un altro post, replico qui sotto (sperando di venire aiutato... asd!)
    Allora, diciamo che ho cambiato direzione.
    Utilizzando il componente Loader, inserisco questo codice nel primo frame:
    codice:
    // Create a listener object event function. The progress bar is an object so it needs an object function to work
    myProgressBarListener = new Object();
    
    // When the progress bar is complete and has preloaded the loader component content, the listener will call and run this code below:
    myProgressBarListener = function (eventObject) {
    
    // Hide the progress bar now as we don’t need it any more
    myProgressBar._visible = false;
    
    // Closes the above function 
    };
    
    // Sets whether the content being loading into the loader component scales to fit the loader (true), or the loader scales to fit the content (false)
    myLoader.scaleContent = true;
    
    // Set the location of the content to be loaded. Examples are:
    // myLoader.contentPath = "http://www.YourWebSite.com/images/myImage.jpg";
    // myLoader.contentPath = "http://www.YourWebSite.com/myFlashMovie.swf";
    
    myLoader.contentPath = "foto3.swf";
    myLoader.contentPath = "foto2.swf";
    myLoader.contentPath = "foto1.swf";
    
    
    // Declares a listener that detects when the progress bar component has loaded the loader component content and is complete. Then calls the function myProgressBarListener
    myProgressBar.addEventListener("complete", myProgressBarListener);
    
    // Set up the progress bar component variable to polled mode which determines the maths behind the % counter. 
    myProgressBar.mode = "polled";
    
    // The location of the Loader Component
    myProgressBar.source = "myLoader";
    
    // Sets the conversion to 1. This basically means the component divides the current and total values loaded and to be loaded. Then it floors them (works out the difference between them) and displays the converted value in the label property
    myProgressBar.conversion = "1";
    
    // Set the label to display the word 'loading' followed by the percentage value loaded so far
    myProgressBar.label = "LOADING %3%%";
    
    // The direction the progress bar moves when loading
    myProgressBar.direction = "right";
    
    // The location of the label that displays the percentage loaded so far
    myProgressBar.labelPlacement = "bottom";
    
    // Stops the Playhead in the current frame until the Movie has been preloaded
    stop();
    I vari swf a loro volta caricano delle immagini esterne.
    Qual'è il problema?
    Il problema è che:
    1) Vorrei dire a questo script di caricare anche le immagini esterne ma di NON visualizzarle.
    2) So che ho sbagliato a far caricare i vari filmati tutti sotto la stessa variabile, infatti inizialmente mi mostrava solo l'ultimo, poi agendo sui vari swf e dicendo loro che alla fine dovevano riprodurre quello indicato nello script.
    Cosa devo fare per fare eseguire tutto dallo script che ho scritto in questo stesso reply, evitando di mettere mano ai vari swf?

    Grazie per l'attenzione e arrivederci alla prossima puntata.

  4. #4
    Ma ... mi sembra un po eccessivo ripetere un ciclo per 1000 volte se hai 1000 foto, quindi ti propongo di studiare questo codice di esempio

    Supponiamo di dover caricare 100 immagini una vicina all'altra
    e che le foto cmq sia la loro grandezza le riduciamo a 100 x 100

    Supponiamo inoltre che i nomi delle foto siano descritti in un file esterno che sia txt asp o php


    codice:
    this.createEmptyMovieClip("content_miniature",1)
    // lo lascio posizionare automaticamente in (0,0)
    
    function carica_foto(){
         leggo_dati = new Loadvars()
         leggo_dati.onLoad=function(success){
         if(success){
           I=1
           while(this["img]+I] != undefined){
                content_miniature.createEmptyMovieClip("box"+I,I)
                mc=eval(content_miniature["box"+I])
                mc.createEmptyMovieClip("pic",2)
                mc.createEmptyMovieClip("pre_load",1)
                width(mc.pre_load){
                     //clear();
    		 lineStyle(1,0xcccccc,100);
                     moveTo(0,10);
                     lineTo(12.5,10);
    		 moveTo(0,10);
    		 lineTo(0,22.5);
    		 lineStyle(1,0x000000,100);
                     moveTo(12.5,10);
                     lineTo(12.5,22.5);
    		 moveTo(12.5,22.5);
    		 lineTo(0,22.5);
                }
                mc._x=100*I-100
                mc._y=0
                mc.nome=this["img"+I]
                mc.pic.loadMovie(this["img"+I])
                mc.pic._alpha=0
                mc.pre_load._xscale=0
                mc.onEnterFrame=function(){
                   car=this.pic.getBytesLoaded()
                   tot=this.pic.getBytesLoaded()
                   this.pre_load._xscale=Math.floor(car/tot*100)
                   if(car==tot && car >1024){
                     // foto caricata
                     this.pic._width=100
                     this.pic._heigth=100
                     this.pic._alpha=100
                     delete this.onEnterFrame
                   }
                 }
                mc.onPress=function(){
                   this._parent._parent.show_img(this.nome)
                }
            I++
          }
          }
          leggo_dati.load("paginadati.txt")
    }
    carica_dati()
    
    function show_img(nome){
         // dentro nome c'è il nome effettivo della foto
         // la crei come vuoi
    }

    provala perchè te l'ho scritta direttamente

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    243
    Grazie per avermi risposto innanzitutto
    Prima di provare il tuo script volevo chiedereti un paio di cose.
    Ogni foto deve avere un suo effetto (ragion per cui le varie fotografie sono contenute in altrettanti swf che vengono a loro volta caricati).
    Utilizzando il tuo script, mi pare di capire, mi carica solo le foto, io invece devo avere anche la possibilità di caricare gli swf che hanno i vari effetti, che a loro volta sono collegate alle foto.
    E' un bel casino lo so... e sinceramente sto cominciando a sclerare...
    SOS!!! HELP ME!!!

  6. #6
    veramente è + semplice di quello che pensi xchè il loadMovie carica jpg o swf quindi se nel file txt, invece delle foto metti i nomi degli swf flash caricherà i file

    Tipo TXT

    &img1=immagini/cane.jpg&
    &img2=immagini/mamma.jpg&


    oppure

    &img1=swf/file_cane.swf&
    &img2=swf/file_mamma.swf&


    Ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    243
    Umm... quindi potrei dire inserire nel file TXT sia i file swf che le jpg giusto?
    La tua spiegazione cmq è stata chiarissima veramente ^^

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    243
    Ciao scusami ancora, ho provato ad utilizzare il tuo codice, ma flash 8 mi da questi errori:

    **Avvertenze** Scena=Scena 1, livello=Livello 1, fotogramma=1:Linea 5: L'identificatore 'Loadvars' non risolverà l'oggetto incorporato 'LoadVars' durante il runtime.
    leggo_dati = new Loadvars()

    **Errore** Scena=Scena 1, livello=Livello 1, fotogramma=1:Linea 9: Il valore letterale stringa non è stato terminato correttamente
    while(this["img]+I] != undefined){

    **Errore** Scena=Scena 1, livello=Livello 1, fotogramma=1:Linea 10: È previsto ']'
    content_miniature.createEmptyMovieClip("box"+I,I)

    **Errore** Scena=Scena 1, livello=Livello 1, fotogramma=1:Linea 14: Errore di sintassi.
    width(mc.pre_load){

    Totale errori ActionScript: 4 Errori segnalati: 4

    Sinceramente, nn so dove mettere mano per correggerli ;P
    Non avresti un volume sull'AS da consigliarmi?

    Ciauz!

  9. #9
    leggo_dati = new LoadVars()


    mi è scappata la V minuscola invece va maiuscola

    Ciao

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.