Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    1

    problema creazione slide

    ciao ragazzi ho un problema, dovrei caricare delle immagini all'interno del mio filmato e far si che queste si ridimensionino e ridispongano a formare una slide automaticamente. premetto che non sono molto esperto...
    cmq, quello che sono riuscito a fare sinora è aggiungere un evento listener in modo da poter ottenere la larghezza delle jpg caricate nell'onLoadInit (prima facevo un semplice loadMovie e al momento della lettura dei valori di _height e _width mi dava zero, perchè suppongo il codice venisse eseguito più velocemente del caricamento delle immagini).
    alla funzione listen passo un valore index (che è un indice di un ciclo for, così da ripetere il caricamento delle immagini ciclicamente) e uno di dimensione per settare l'altezza che voglio per le mie immagini (ho fatto questo arzigogolo perchè in teoria questa funzione mi servirà per più pagine, gestite da arrayimmagini diversi dalla cui lunghezza setto il ciclo i per il richiamo della funzione, e ogni pagina avrà bisogno di fissare le immagini a valori di altezza differenti)
    il problema che nasce ora è io voglio far disporre le immagini a una distanza pari a quella precedente + un determinato valore, per far questo utilizzo la variabile posizioneX (che ho precentemente settato a zero) e nell'evento onLoadInit setto la posizione del filmanto uguale a posizioneX e poi incremento quest'ultima del valore di _width+10 del filmato stesso (cosicchè il clip successivo verrà piazzato in coda a 10 pixel di distanza). il codice funziona, ma la cosa strana è che la disposizione parte dall'ultimo elemento fino al primo (se tipo il mio arrayimmagini ha 5 elementi, il quinto viene messo a posizione 0, il secondo in coda e così via fino al primo, mentre in teoria io vorrei che venisse mantenuto anche l'ordine delle immagini)...quello che posso supporre è che il codice compili il ciclo for velocemente e dia priorità di esecuzione all'ultimo evento rispetto al primo (ma è solo supposizione, sono un pò niubbo).
    avevo anche provato anzichè con un ciclo for di utilizzare un while, con un contatore che veniva aumentato di 1 all'interno dell'onLoadInit per controllare l'interruzione del ciclo a feedback, ma il filmato va in crash (e non so perchè)


    ciclo for(i=0; i<arrayimmagini.length,i++)
    {
    listen(i,270)
    }

    function listen(index,dimensione)
    {

    var loadListener:Object = new Object();
    var mcLoader:MovieClipLoader = new MovieClipLoader();
    mcLoader.addListener(loadListener);
    var mc:MovieClip = this.attachMovie("clip","clip"+index,index);
    mcLoader.loadClip(arrayimmagini[index], mc);
    loadListener.onLoadInit = function(target_mc:MovieClip) {
    larghezza=target_mc._width
    altezza=target_mc._height
    ratio=larghezza/altezza
    target_mc._height=dimensione
    target_mc._width=dimensione*ratio
    target_mc._x=posizioneX
    posizioneX=posizioneX+target_mc._width+10
    }
    }

    aspetto suggerimenti....aiutatemi che ci sto diventando matto

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,695
    Ciao.

    E' il solito problema dell'evento asincrono.

    Ti spiego brevemente: onLoadInit è un evento asincrono, cioè non viene eseguito seguendo il normale flusso di esecuzione dello script. Questo significa che può avvenire in un qualsiasi momento.
    Nel tuo caso il caricamento avviene in ordine inverso perché credo venga data, di volta in volta, priorità sull'ultimo loadClip eseguito, come tu stesso hai supposto.
    Ma a parte questo, l'evento resta sempre asincrono per cui non puoi fidarti comunque dell'ordine di caricamento a meno che non fai in modo di lanciare i loadClip di volta in volta, a caricamento avvenuto.. cioè lanci il primo loadClip e a caricamento avvenuto (onLoadInit) lanci di volta in volta con il successivo loadClip.

    Dovresti quindi rivedere l'impostazione del tuo script.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

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 © 2024 vBulletin Solutions, Inc. All rights reserved.