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

    preloader dinamico implementazione

    Ciao.
    Come avrete capito sono un po
    arruginito con as quindi
    mi vedo costreto a chiedere consigli
    agli esperti.
    Sono dietro a implementare
    una semplice gallery con un file xml
    sono arrivato fino a qua
    Codice PHP:
    var images:Array = [];
    var 
    descriptions:Array = [];
    var 
    totalItems:Number 0;
    function 
    parseXMLData(success:Boolean):Void {
        if (
    success && this.status == 0) {
            var 
    xmlNode this.firstChild;
            
    totalItems xmlNode.childNodes.length;
            for (var 
    0i<totalItemsi++) {
                
    images[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
                
    descriptions[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
            }
            
    init();
        } else {
            
    trace("Problem loading file xml");
            
    trace("The error code is "+this.status);
        }
    }
    function 
    init() {
        
    loader();
    }
    function 
    loader():Void {
        var 
    loadListener:Object = new Object();
        
    loadListener.onLoadComplete = function(target_mc:MovieCliphttpStatus:Number):Void {
        }
        
    loadListener.onLoadInit = function(target_mc:MovieClip):Void {
          
    trace(target_mc.getBytesTotal());    
        }
        for (var 
    0i<totalItemsi++) {
            var 
    mcLoader:MovieClipLoader = new MovieClipLoader();
            
    mcLoader.addListener(loadListener);
            var 
    mc:MovieClip this.createEmptyMovieClip('mc_'+ithis.getNextHighestDepth());
            
    mcLoader.loadClip(images[i], mc);
            
    //_root['mc_'+i]._x = 10*i;
        
    }
    }
    var 
    xmlData:XML = new XML();
    xmlData.ignoreWhite true;
    xmlData.load("gallery.xml");
    xmlData.onLoad parseXMLData;
     
    //_root["particle"+j+"_mc"]._x = _xmouse; 
    sto cercando il modo di intercettare
    la misura tot delle immagini in
    modo da attaccarci un preloader.

    Mi date una mano sono
    benvenuti anche miglioramenti
    nel pur scarno codice





    Ps

    Se mi chiarite anche il modo
    operandi mi fate una cortesia.
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Non ho capito cosa devi intercettare, il numero delle immagini non dovrebbe coincidere con il numero dei nodi presenti nell'xml?

  3. #3
    Ciao.
    Il problema è che non
    so bene come poter
    gestire il preloader.
    Vorrei usare il preloader
    per tutte le immagini
    cioè lo script dovrebbe
    visualizzare il preloader
    finquanto tutte le immagini sono
    caricate.
    E' giusto metter il loadListener
    dove lo messo io ?

    Scusa ma è un po che non
    smanetto con as
    e sto un attimo anaspando

    Se conosci tutorials aggiornati (as2) in merito
    sono i benvenuti.

    Grazie per l'aiuto.



    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Se ho ben compreso, in pratica ti serve ad esempio una barra che si riempia man mano che tutte le immagini vengono caricate, in tal caso ti posso suggerire una classe che ho scritto qualche mese fa, che gestisce esattamente questa situazione.
    La classe si chiama LoaderManager e la trovi tra i miei articoli (link in firma) con un esempio da scaricare (escluse le immagini).
    L'uso è piuttosto semplice, è spiegato nell'articolo e applicato all'esempio utilizzando un trace (ma con la barra sarebbe lo stesso).
    Ora devo andare, dovrei riuscire a collegarmi più tardi, per il momento puoi comunque iniziare a dargli uno sguardo.

  5. #5
    Ok ci do un occhio.
    Ti faccio sapere.

    Grazie ancora.


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  6. #6
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    :master: strano che te lo dia in quel modo
    Il link giusto

  8. #8
    Quello che sono riuscito a
    tirar fuori immagino
    di essermi complicato la vita
    Codice PHP:
    var images:Array = [];
    var 
    descriptions:Array = [];
    var 
    totalItems:Number 0;
    var 
    preloaderWidth:Number preloader_layer_mc._width;
    var 
    chunk:Number 0;
    var 
    duplicate:MovieClip;
    var 
    stepsCount:Number 0;
    function 
    parseXMLData(success:Boolean):Void {
        if (
    success && this.status == 0) {
            var 
    xmlNode this.firstChild;
            
    totalItems xmlNode.childNodes.length;
            for (var 
    0i<totalItemsi++) {
                
    images[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
                
    descriptions[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
            }
            
    init();
        } else {
            
    trace("Problem loading file xml");
            
    trace("The error code is "+this.status);
        }
    }
    function 
    init() {
        
    preLoader();
        
    loader();
    }
    function 
    preLoader() {
        
    chunk Math.floor(preloaderWidth/totalItems);
        var 
    diff preloaderWidth - (chunk*totalItems);
        
    chunk_mc._width chunk;
    }

    function 
    addChunkPreloader(){
        var 
    stepsCount++;
        var 
    spacer:Number 1
        var 
    posX:Number chunk_mc._x;
        var 
    newX:Number * (chunk_mc._width spacer);
        
    /* Metto quel + 10 per metterli ad un livello diverso delle immagini*/
        
    duplicate chunk_mc.duplicateMovieClip("clip-" ii+10, {_x:posX+newX});
        
    trace(i);
    }
    function 
    loader():Void {
        for (var 
    i:Number 0i<totalItemsi++) {
            
    LoaderManager.addLoader(this.createEmptyMovieClip("mc"+ii), images[i]);
        }
    }
    var 
    xmlData:XML = new XML();
    xmlData.ignoreWhite true;
    xmlData.load("gallery2.xml");
    xmlData.onLoad parseXMLData;
    var 
    listener:LoaderManager LoaderManager.getInstance();
    listener.onLoadStart = function(t) {
        
    };
    listener.onLoadProgress = function(tblbt) {
        var 
    car LoaderManager.bytesLoaded;
        var 
    tot LoaderManager.bytesTotal;
        var 
    prc Math.floor((car/tot)*100);
        if(
    tot != car ){
            
    addChunkPreloader();
        }
        
    trace(t);
    };
    listener.onLoadComplete = function(t) {
        
    };
    listener.onLoadInit = function(t) {
        
    };
    listener.onMultipleLoadComplete = function() {
        for (var 
    0i<LoaderManager.loaders.lengthi++) {
            
    LoaderManager.loaders[i]._x i*200;
            
    _root["clip-"+i]._visible false;
        }
        
    trace(_root["clip-"+1]);
    }; 

    A parte la non eccelsa bellezza dell'effetto
    e altri piccoli peccatucci non mi spariscono
    i chunks
    va bè se puoi dacci un occhio.

    C'è qc che mi sfugge ma


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  9. #9
    Quando richiamo addChunkPreloader();
    non entra + in
    Codice PHP:
    listener.onMultipleLoadComplete = function() {
        for (var 
    0i<LoaderManager.loaders.lengthi++) {
            
    LoaderManager.loaders[i]._x i*200;
            
    //_root["clip-"+i]._visible = false;
            
    trace(_root["clip-"+i]._visible);
        }
        
    }; 
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  10. #10
    Qualcosa si muove
    con this.getNextHighestDepth() ho
    risolto il problema dei livelli e del
    perchè non entrava in onMultipleLoadComplete

    Codice PHP:
    var images:Array = [];
    var 
    descriptions:Array = [];
    var 
    totalItems:Number 0;
    var 
    preloaderWidth:Number preloader_layer_mc._width;
    var 
    chunk:Number 0;
    var 
    duplicate:MovieClip;
    var 
    stepsCount:Number 0;
    function 
    parseXMLData(success:Boolean):Void {
        if (
    success && this.status == 0) {
            var 
    xmlNode this.firstChild;
            
    totalItems xmlNode.childNodes.length;
            for (var 
    0i<totalItemsi++) {
                
    images[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
                
    descriptions[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
            }
            
    init();
        } else {
            
    trace("Problem loading file xml");
            
    trace("The error code is "+this.status);
        }
    }
    function 
    init() {
        
    preLoader();
        
    loader();
    }
    function 
    preLoader() {
        
    chunk Math.floor(preloaderWidth/totalItems);
        var 
    diff preloaderWidth - (chunk*totalItems);
        
    chunk_mc._width chunk;
    }

    function 
    addChunkPreloader(){
        var 
    stepsCount++;
        var 
    spacer:Number 0
        var 
    posX:Number chunk_mc._x;
        var 
    newX:Number * (chunk_mc._width spacer);
        
    /* Metto quel + 10 per metterli ad un livello diverso delle immagini*/
        
    duplicate chunk_mc.duplicateMovieClip("clip-" ithis.getNextHighestDepth(), {_x:posX+newX});
        
    //trace(i);
    }
    function 
    loader():Void {
        for (var 
    i:Number 0i<totalItemsi++) {
            
    LoaderManager.addLoader(this.createEmptyMovieClip("mc"+i,this.getNextHighestDepth()), images[i]);
        }
    }
    var 
    xmlData:XML = new XML();
    xmlData.ignoreWhite true;
    xmlData.load("gallery2.xml");
    xmlData.onLoad parseXMLData;
    var 
    listener:LoaderManager LoaderManager.getInstance();
    listener.onLoadStart = function(t) {
        
    };
    listener.onLoadProgress = function(tblbt) {
        var 
    car LoaderManager.bytesLoaded;
        var 
    tot LoaderManager.bytesTotal;
        var 
    prc Math.floor((car/tot)*100);
        if(
    tot != car && bl == bt ){
            
    //addChunkPreloader();
        
    }
        
    };
    listener.onLoadComplete = function(t) {
           
    addChunkPreloader();
    };
    listener.onLoadInit = function(t) {
        
    };
    listener.onMultipleLoadComplete = function() {
        for (var 
    0i<LoaderManager.loaders.lengthi++) {
            
    LoaderManager.loaders[i]._x i*200;
            
    _root["clip-"+i]._visible false;
            
        }
        
    }; 


    Se mi dai qc dritta te ne sarei eternamente
    grato
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

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.